Vai al contenuto

Brainwallet

Da BitcoinWiki.
Brainwallet
Brainwallet.

Un brainwallet è un metodo per derivare chiavi di criptovaluta da informazioni che una persona tenta di ricordare. Nella sua classica forma Bitcoin, un utente sceglie una parola, una citazione o una passphrase e la sottopone ad hashing per ottenere una chiave privata. Questo metodo non è sicuro perché il testo scelto dall'uomo è molto meno imprevedibile di una chiave crittografica e può essere testato dagli aggressori senza interagire con il proprietario.

Il termine viene talvolta utilizzato anche per memorizzare una frase di recupero generata dal portafoglio. Questa è una costruzione diversa: una frase di recupero codifica l'entropia casuale generata dal software del portafoglio, mentre un classico brainwallet inizia con le parole scelte dall'utente. Affidarsi alla memoria come unico backup crea ancora un serio rischio di perdita permanente.

Avviso di sicurezza: Non creare o finanziare un classico brainwallet. Non testare una passphrase, una frase di recupero, un seed o una chiave privata reale su un sito web. Gli esempi pubblicati in articoli, video, codice sorgente o dimostrazioni devono essere considerati compromessi.

Come funzionano i classici Brainwallet

I primi strumenti brainwallet applicavano comunemente un hash come SHA-256 a una frase selezionata dall'utente e interpretavano il risultato come una chiave privata Bitcoin. La chiave pubblica e l'indirizzo associati potrebbero quindi essere calcolati in modo deterministico. Il processo non richiedeva alcun file chiave memorizzato, il che lo faceva sembrare resistente alla perdita o al furto del dispositivo.

Il design sposta il problema della sicurezza nella frase memorizzata. Un utente malintenzionato può assemblare dizionari, citazioni, titoli di brani, password trapelate, varianti ortografiche, schemi di tastiera ed elenchi di parole specifiche della lingua; derivare ciascuna chiave candidata; e controlla la presenza di fondi nella blockchain pubblica. Queste ipotesi vengono eseguite offline e ad alta velocità. Una frase lunga o dall'aspetto insolito non è necessariamente imprevedibile e l'aggiunta di alcune sostituzioni o segni di punteggiatura non fornisce entropia crittografica misurabile.

Prove di sfruttamento

Vasek, Bonneau, Castellucci, Keith e Moore hanno condotto uno studio su larga scala sull'uso del portafoglio cerebrale Bitcoin. Dopo aver valutato circa 300 miliardi di password candidate ed escludendo l'attività di ricerca, hanno identificato 884 brainwallet utilizzati tra settembre 2011 e agosto 2015. Tutti tranne 21 erano stati prosciugati; molti furono svuotati in pochi minuti e la maggior parte entro 24 ore. I ricercatori hanno osservato più drenatori in competizione per spendere fondi da chiavi deboli.[1]

Ryan Castellucci ha dimostrato pubblicamente il modello di attacco al DEF CON 23 e ha rilasciato brainflayer, uno strumento di prova di concetto che testa le frasi candidate utilizzando la derivazione a chiave pubblica secp256k1 di Bitcoin.[2] Lo strumento non ha rotto la crittografia di Bitcoin: ha automatizzato ipotesi tratte dallo spazio molto più ristretto delle scelte umane.

Perché rafforzare l'hash non è sufficiente

Alcuni progetti successivi hanno aggiunto sali o funzioni di derivazione di password difficili da memorizzare per rendere ogni ipotesi più costosa. Tali controlli possono rallentare materialmente un utente malintenzionato quando vengono specificati e implementati correttamente, ma non rendono una frase prevedibile equivalente a un segreto uniformemente casuale. La loro protezione dipende dalla frase, dai parametri, dal sale, dall'implementazione e dalle risorse dell'aggressore.

Gli schemi personalizzati aggiungono un altro rischio: se si dimenticano l'esatta normalizzazione, la codifica dei caratteri, le maiuscole, il sale o i parametri, le stesse parole potrebbero derivare da una chiave diversa. Una costruzione privata potrebbe anche ricevere poche revisioni e diventare impossibile da riprodurre dopo la scomparsa del suo software. Per questi motivi, un “brainwallet rafforzato” non dovrebbe essere presentato come un sostituto dell’entropia del portafoglio generata in modo sicuro e di un backup testato.

Le frasi di recupero sono diverse

Le frasi di recupero BIP 39 codificano da 128 a 256 bit di entropia generata dal portafoglio più un checksum e derivano un seed utilizzando PBKDF2-HMAC-SHA512. La specifica descrive esplicitamente le parole come un mezzo di trasporto per la casualità generata dal computer, non come un modo per elaborare le frasi create dall'utente.[3] Altri portafogli utilizzano schemi di codici di ripristino diversi. In tutti i casi, la sicurezza deriva dall'entropia casuale del portafoglio e dal processo di derivazione rivisto, non da una persona che inventa parole memorabili.

Padroneggiare Bitcoin distingue i codici di recupero dai brainwallet su questa base: le parole di recupero vengono create casualmente dal portafoglio, mentre le parole del brainwallet vengono selezionate dall'utente.[4] Una frase di recupero è un backup segreto completo e non deve mai essere divulgata.

Una passphrase BIP 39 opzionale crea un seme diverso per ogni valore immesso. Può quindi fornire un ulteriore segreto, ma crea anche un altro rischio di perdita permanente: non esiste un servizio universale di recupero dell’account e una passphrase errata può aprire un portafoglio apparentemente valido ma diverso. Non deve essere confuso con la scelta delle parole stesse per il recupero.

Rischi per la memoria umana e la continuità

Anche un segreto che inizialmente aveva abbastanza entropia può andare perduto attraverso gli eventi umani ordinari. Il ricordo esatto può cambiare con il tempo, la malattia, l'infortunio, lo stress, l'invecchiamento, i cambiamenti nel linguaggio o un aiuto mnemonico frainteso. La custodia della sola memoria crea anche difficili problemi di eredità e di incapacità. Al contrario, la coercizione può sconfiggere il presupposto che un segreto memorizzato non lasci nulla da rubare.

Memorizzare il materiale di recupero generato dal portafoglio può rappresentare un'ulteriore tutela personale, ma non dovrebbe essere l'unico metodo di recupero testato a meno che il proprietario non abbia deliberatamente accettato i rischi di dimenticanza, incapacità, morte, coercizione e fallimento dell'eredità. Un piano duraturo normalmente separa la generazione casuale sicura dal ripristino ridondante, protetto fisicamente e testato.

Pratica più sicura

  • Utilizzare un software di portafoglio gestito o un dispositivo di firma hardware che generi entropia in modo sicuro.
  • Registra il materiale di recupero del portafoglio esattamente come indicato e mantienilo offline in un archivio fisicamente protetto.
  • Non fotografare, inviare tramite e-mail, caricare o incollare mai una frase di recupero in un sito Web, in una conversazione di supporto o in un sistema di intelligenza artificiale.
  • Testa il processo di ripristino utilizzando la procedura documentata del portafoglio e un ambiente sicuro prima di fare affidamento sul backup.
  • Conserva il tipo di portafoglio e altri metadati non segreti necessari per il ripristino.
  • Considerare la perdita, il furto, l'incendio, la coercizione, l'incapacità e l'eredità come parti separate del modello di minaccia.
  • Se un classico brainwallet o un esempio esposto pubblicamente ha mai detenuto fondi, considera la sua chiave come compromessa e sposta tutti i fondi rimanenti in un portafoglio appena generato.

Valore storico ed educativo

I Brainwallet sono un esempio importante della differenza tra dimensione della chiave matematica e sicurezza effettiva. Lo spazio della chiave privata di Bitcoin è estremamente ampio, ma una chiave derivata da una citazione comune occupa un piccolo insieme di ipotesi prioritarie definite dall'aggressore. L'episodio illustra anche perché le affermazioni sulla sicurezza devono esaminare la generazione di entropia, il comportamento del backup, la compatibilità del software e le interfacce utente piuttosto che i soli algoritmi crittografici.

I tutorial più vecchi spesso includevano una frase elaborata, una chiave derivata e un indirizzo. Ripetere una simile procedura fornisce poco valore enciclopedico e crea una chiave prevedibile che i lettori potrebbero erroneamente finanziare. La lezione utile è il modello di attacco e le prove storiche, non una ricetta riutilizzabile per la generazione di segreti.

Vedi anche

Riferimenti