I portafogli crypto che non generano nonce di firma sufficientemente casuali, nel 2025, vanno oltre la negligenza.
Tansel Kaya
Tansel Kaya29 nov, 04:47
L'"estrazione della chiave dalle firme" menzionata nell'hack di Upbit è un attacco crittanalitico avanzato all'algoritmo Elliptic Curve Digital Signature Algorithm (ECDSA) utilizzato in Solana (e in molti altri blockchain). Gli aggressori hanno catturato un modello nascosto all'interno delle firme a causa del nonce (numero casuale usa e getta k) prevedibile generato dal software del portafoglio di Upbit, riuscendo così a calcolare matematicamente la chiave privata del portafoglio. 1. Come funziona semplicemente l'ECDSA? Quando si firma ogni transazione: Chiave privata: d (mai condivisa) Numero casuale usa e getta: k (nonce) → deve essere completamente casuale e segreto per ogni firma La firma risultante: coppia (r, s) (visibile a tutti sulla blockchain) Se k non è casuale o ha un modello prevedibile, la chiave privata d può essere recuperata da più firme. 2. La vulnerabilità di Upbit Il software del portafoglio di Upbit non generava valori nonce sufficientemente casuali. Questo ha creato un pregiudizio statistico (bias) nei valori delle firme (r, s). Gli aggressori hanno raccolto decine/hundreds di transazioni effettuate dal portafoglio hot di Upbit, analizzando queste firme per scoprire quali bit dei nonce erano prevedibili, calcolando la chiave privata in pochi secondi/minuti con metodi matematici (attacco a reticolo). 3. Tipi di attacchi matematici utilizzati Hidden Number Problem (HNP) + Riduzione a reticolo (algoritmi LLL/BKZ) Anche solo 3–8 bit di prevedibilità sono sufficienti per rompere completamente la chiave con 20–100 firme. Anche se c'è un bias più debole (1–2 bit), può comunque essere rotto con migliaia di firme. 4. Perché si dice "Solo Lazarus può farlo"? Questo attacco richiede: conoscenze a livello di dottorato in crittografia (HNP, crittanalisi a reticolo) esperienza nell'analisi dei dati blockchain risorse di calcolo potenti (cluster GPU) pazienza e monitoraggio a lungo termine. 5. Lezioni da apprendere e precauzioni La generazione di nonce deve essere effettuata utilizzando RFC 6979 (deterministico ma sicuro) o una vera fonte di casualità hardware (HWRNG). Le firme devono essere sottoposte a test di casualità (NIST, Dieharder).
Non sono sicuro di quali siano i dettagli qui. Come alcuni hanno sottolineato, Solana dovrebbe utilizzare Ed25519 che ha nonce deterministici. Ma quella è una firma Schnorr e ha la stessa vulnerabilità se qualcuno ha implementato in modo errato il processo per campionare i nonce in modo uniforme.
Voglio anche dire: se trovassi un difetto di casualità/uniformità del nonce in uno schema di firma utilizzato in un portafoglio crypto, specialmente uno sfruttato da un gruppo sponsorizzato dallo stato, non salterei necessariamente a "incidente" come unica spiegazione.
11,86K