Randstorm: recupero dei portafogli BitcoinJS del periodo 2011–2015
Se non riesci più ad accedere a un portafoglio Bitcoin che hai creato su un browser dieci anni fa, la stessa vulnerabilità che rende vulnerabili quei portafogli — Randstorm — a volte può aiutarti a recuperare l'accesso ai tuoi fondi. Ecco di cosa si tratta, chi è interessato e come funziona il recupero.
La sicurezza di una chiave privata dipende interamente dalla casualità utilizzata per generarla. Randstorm è il nome dato a una serie di difetti che, in un certo periodo storico dei browser web, hanno reso tale casualità molto più debole di quanto previsto, lasciando un gran numero di portafogli Bitcoin generati tra il 2011 e il 2015 con chiavi che sono, in misura variabile, prevedibili. Per un hacker questa rappresenta una minaccia; per il legittimo proprietario di un portafoglio a cui è stato negato l’accesso, può invece essere proprio ciò che rende possibile il recupero.
Cos’è Randstorm
Randstorm è stato identificato e reso pubblico dalla società di recupero dati Unciphered nel novembre 2023 (era stato riscoperto nel 2022 mentre la società aiutava un cliente che non riusciva più ad accedere al proprio portafoglio su Blockchain.com). La causa principale è da ricercarsi nella funzione SecureRandom() della libreria JavaScript JSBN, unita alle vulnerabilità presenti nell’implementazione di Math.random() da parte dei principali browser web di quel periodo. Insieme, queste due fattori hanno generato chiavi private con un’entropia molto inferiore a quella richiesta da un portafoglio sicuro.
La popolare libreria BitcoinJS si è basata su quel codice JSBN fino a marzo 2014, quando i responsabili del progetto hanno deciso di abbandonarlo. Poiché molti portafogli per browser erano stati realizzati su BitcoinJS o ne avevano copiato il codice iniziale, la vulnerabilità si è diffusa in tutto l’ecosistema. È fondamentale sottolineare che l’effetto non è uniforme: le chiavi generate in precedenza sono le più prevedibili — i portafogli precedenti al marzo 2012 sono i più facili da violare — mentre il lavoro necessario aumenta notevolmente per i portafogli creati successivamente, nel 2014 e nel 2015.
Quali portafogli sono interessati
Randstorm colpisce i portafogli generati per la prima volta in un browser web tra il 2011 e il 2015 utilizzando BitcoinJS o un progetto basato su di esso. Tra questi figurano:
- I primi portafogli cartacei e browser di bitaddress.org e BrainWallet
- Progetti di portafogli basati su browser come CoinPunk e QuickCoin (ora non più attivi)
- I primi portafogli web di Blockchain.info / Blockchain.com di quel periodo
- Altri portafogli Bitcoin e, in alcuni casi, Dogecoin generati con la stessa libreria
Ciò che in genere non è interessato dal problema: i portafogli creati tramite dispositivi hardware (Trezor, Ledger), tramite software desktop come Bitcoin Core o tramite strumenti più recenti e aggiornati. L'indicatore più importante è il periodo di creazione: se il portafoglio è stato creato in un browser nella prima metà degli anni 2010, vale la pena controllarlo.
Sono coinvolto?
Poniti tre domande: il portafoglio è stato creato per la prima volta tra il 2011 e il 2015? È stato creato in un browser web (anziché su un dispositivo hardware o tramite un software desktop)? È stato generato su un sito o con uno strumento noto per l’utilizzo di BitcoinJS? Se la risposta a tutte e tre le domande è sì, consideralo potenzialmente a rischio. Esistono strumenti di verifica indipendenti che consentono di testare un indirizzo; quanto più il tuo portafoglio è stato creato all’inizio di quel periodo, tanto maggiore è la probabilità che la vulnerabilità sia presente.
Randstorm e il recupero del portafoglio
È qui che la falla si rivela un’arma a doppio taglio. Se sei il legittimo proprietario e ti sei semplicemente trovato impossibilitato ad accedere a un portafoglio interessato dal problema — una password smarrita, un portafoglio che non si riesce a importare, un servizio non più attivo — la ridotta casualità può talvolta consentirci di ricostruire la chiave privata a partire dalle informazioni pubbliche da te fornite, restituendoti il controllo dei tuoi fondi. Si tratta della stessa matematica che preoccupa i ricercatori di sicurezza, applicata a favore della persona che possiede effettivamente le monete.
Due precisazioni importanti. Innanzitutto, ci occupiamo esclusivamente di recuperi autorizzati dal proprietario: interveniamo solo su portafogli di cui possiate dimostrare di essere i titolari, mai a carico di terzi. In secondo luogo, la fattibilità dipende in larga misura dall’anno di creazione: un portafoglio del 2012 presenta caratteristiche molto diverse rispetto a uno del 2015, e alcuni casi sono semplicemente irrisolvibili. Valutiamo onestamente la situazione prima di accettare un incarico e addebitiamo i nostri onorari solo in caso di esito positivo.
Se hai ancora il controllo del portafoglio: trasferisci i tuoi fondi
La sicurezza prima di tutto. Se riesci ancora ad accedere a un portafoglio che ritieni sia stato generato con una casualità insufficiente, non lasciarci dentro fondi. Crea un nuovo portafoglio utilizzando un software moderno e affidabile (un portafoglio hardware aggiornato è l’ideale) e trasferisci subito tutto al nuovo portafoglio. Una chiave prevedibile rappresenta un rischio costante, indipendentemente da chi abbia individuato la vulnerabilità: il recupero è previsto per i portafogli a cui non riesci più ad accedere, non è un motivo per lasciare fondi in un portafoglio compromesso.
In che modo ciò si inserisce nel nostro lavoro sulla “casualità debole”
Randstorm è uno dei numerosi problemi legati alla casualità debole su cui lavoriamo. La stessa metodologia — capire esattamente come un determinato strumento abbia generato le proprie chiavi e trasformare tale informazione in una ricerca gestibile — si applica ai portafogli della prevendita di Ethereum del 2014 (il cui codice iniziale utilizzava la funzione Math.random() del browser come vettore di inizializzazione) e ad altri generatori storici. Non abbiamo reso pubblico Randstorm; ciò che offriamo sono anni di esperienza nel trasformare queste vulnerabilità in fondi recuperati per i proprietari dei portafogli.
Domande frequenti
Il mio portafoglio Bitcoin è stato colpito da Randstorm?
È possibile che ciò avvenga se il portafoglio è stato generato per la prima volta tra il 2011 e il 2015 in un browser web utilizzando la libreria BitcoinJS o un sito basato su di essa, come le prime versioni di bitaddress.org, BrainWallet, CoinPunk, QuickCoin o i primi portafogli di Blockchain.info. I portafogli creati all’inizio di quel periodo, in particolare prima del marzo 2012, sono quelli più colpiti. I portafogli provenienti da dispositivi hardware, da software successivi o da generatori offline non sono generalmente interessati dal problema.
Randstorm può aiutarmi a recuperare il mio portafoglio bloccato?
A volte. Se sei il proprietario e non riesci ad accedere a un portafoglio del periodo 2011-2015 interessato dal problema, la stessa ridotta casualità che rende questi portafogli vulnerabili può, in alcuni casi, consentirci di ricostruire la chiave privata sulla base delle informazioni pubbliche da te fornite. Si tratta esclusivamente di un recupero dei tuoi fondi autorizzato dal proprietario; la difficoltà aumenta notevolmente per i portafogli creati in un periodo successivo a quello indicato.
Ho ancora il controllo di un portafoglio compromesso. Cosa devo fare?
Sposta i tuoi fondi. Se un portafoglio è stato generato con un livello di casualità insufficiente, la cosa più sicura da fare è crearne uno nuovo utilizzando un software moderno e affidabile e trasferirvi immediatamente tutti i fondi. Non lasciare fondi in un portafoglio che ritieni possa essere compromesso.
Chi ha scoperto Randstorm?
La vulnerabilità Randstorm è stata individuata e resa nota dalla società di recupero dati Unciphered nel novembre 2023, sulla base di precedenti scoperte relative alla scarsa casualità della funzione SecureRandom. KeychainX è un servizio di recupero dati, non l’ente che ha reso nota la vulnerabilità; applichiamo l’analisi della scarsa casualità per aiutare i proprietari a recuperare i propri portafogli compromessi.
Quanto costa il servizio di recupero dati di Randstorm?
Basato sul risultato: una percentuale sul valore recuperato solo in caso di esito positivo, nulla in caso di esito negativo. Non chiediamo mai pagamenti anticipati e interveniamo solo su portafogli di cui puoi dimostrare di essere il proprietario.
Non riesci ad accedere a un vecchio portafoglio del periodo 2011–2015?
Indicaci il tipo di portafoglio, l'anno approssimativo di creazione e l'indirizzo. Valuteremo in modo onesto se sia fattibile un recupero in stile Randstorm — e pagherai solo se riusciremo a recuperare i tuoi fondi.
