Passphrase: tutto ciò che devi sapere
Un piccolo riassunto su chiavi private e wallet
Prima di addentrarci nell'argomento, esaminiamo brevemente gli standard delle chiavi private di Bitcoin e come si sono evoluti nel tempo. Una chiave privata è un numero a 256 bit, scelto a caso e definito da una curva ellittica, in particolare secp256k1. Alla fine di questo processo, si ottiene una stringa molto lunga di cifre (64 cifre esadecimali). Esistono anche altri formati per rappresentare una chiave privata, come WIF e WIF-Compressed.
Per rendere tutto questo un po' più comodo da leggere, viene utilizzata la codifica Base58 per accorciare la stringa di numeri e lettere, oltre a limitare quelli che vengono utilizzati per evitare confusione all'occhio umano.
È possibile utilizzare uno qualsiasi dei formati di cui sopra come rappresentazione della chiave privata. Tuttavia, ci sono differenze notevoli nella loro rispettiva generazione e rappresentazione della chiave pubblica e indirizzi quando si tratta di wallet:
Wallet non deterministici (casuali)
Inizialmente, i wallet generavano diverse chiavi private a caso, ognuna con il proprio indirizzo pubblico. Avresti usato ogni indirizzo/chiave una volta e ne avresti generati dei nuovi quando fosse stato necessario. Avresti dovuto fare il backup di ogni chiave, altrimenti avresti perso i fondi associati a ciascuna di esse. Di conseguenza, le persone tendono a riutilizzare lo stesso indirizzo al fine di ridurre la quantità di sforzo richiesto per utilizzare i loro Bitcoin, ma questo solleva problemi di privacy. Bitcoin Core include questo tipo di wallet, tuttavia il suo uso non è raccomandato poiché ora ci sono alternative migliori. Questo tipo di wallet è anche conosciuto come wallet Type-0 non deterministico.
Wallet deterministici (con Seed)
Questo tipo di wallet ti permette di avere un unico backup (chiave privata) da cui puoi ricavare più chiavi, ognuna con il proprio indirizzo Bitcoin. Ciò significa che se il tuo wallet non funziona più per qualsiasi motivo e hai il backup iniziale, puoi recuperare tutti i tuoi fondi in una volta sola.
HD Wallet (BIP-32/BIP-44)
Un wallet HD (Hierarchical Deterministic, ovvero gerarchico deterministico), introdotto attraverso le BIP 32 e 44, genera anche chiavi multiple da una singola chiave privata, come il wallet deterministico sopra indicato. La differenza è che ciascuna di queste chiavi può generare ulteriormente il proprio sottoinsieme di chiavi e così via. In sostanza, hai una chiave master o genitore, che può quindi generare chiavi figlio, che possono quindi generare seed nipoti.
BIP-39
In tutti questi wallet differenti, abbiamo ancora a che fare con lunghe stringhe di lettere e numeri che sono difficili da conservare ed elaborare per gli esseri umani. Poi viene introdotta BIP-39, una proposta che offre come soluzione un modo per convertire quelle lunghe stringhe di cifre binarie o esadecimali in qualcosa che è molto più facile per gli esseri umani da leggere e trasportare. Questa è l'implementazione più popolare per le chiavi private: la maggior parte di voi ha probabilmente già interagito con essa.
La tua chiave privata è ora rappresentata come un insieme di parole, di solito 12 (128 bit di entropia) o 24 (256 bit di entropia) prese da un elenco predefinito di 2048 parole.
BIP-39 definisce la creazione di un codice mnemonico e di un seed come segue:
Crea una sequenza casuale (entropia) da 128 a 256 bit.
Crea un checksum della sequenza casuale prendendo i primi bit del suo hash SHA256.
Aggiunge il checksum alla fine della sequenza casuale.
Divide la sequenza in sezioni di 11 bit, usandole per indicizzare un dizionario di 2048 parole predefinite.
Produce da 12 a 24 parole che rappresentano il codice mnemonico (Antonopoulos 2017, cap.4).
Che cos'è una passphrase?
Ora che abbiamo coperto le basi, possiamo capire meglio cos'è una passphrase e come funziona quando si parla del tuo wallet Bitcoin.
Grazie a BIP-39, che ha introdotto lo standard di chiavi private composto da parole comprensibili dall’uomo, e grazie alla sua compatibilità con BIP-32, possiamo usare le passphrase come misura di sicurezza aggiuntiva.
In sostanza, la passphrase è un insieme di caratteri, parole, numeri o anche spazi che estende la nostra chiave privata mnemonica. La passphrase può essere interamente decisa dall'utente che controlla la chiave privata, non è qualcosa che il tuo wallet genera per te quando inizialmente viene creata la tua chiave privata.
Una volta implementata, puoi accedere ai fondi detenuti all'interno di quel wallet solo inserendo la tua passphrase, poiché l'aggiunta di una passphrase alla tua seed phrase genera un wallet completamente nuovo.
Non è come una password o un PIN, poiché non esiste una passphrase non valida. Ogni volta che inserisci una passphrase diversa, ottieni un nuovo portafoglio.
Se modifichi un singolo carattere, modifichi una maiuscola in minuscolo o viceversa o aggiungi uno spazio, otterrai un nuovo portafoglio.
Di seguito, esploreremo i vari usi di una passphrase.
Perché usare una passphrase?
Se utilizzata e conservata correttamente (approfondiremo questo aspetto in seguito), la passphrase può aiutare a prevenire che i fondi vengano compromessi. Se qualcuno dovesse trovare la tua seed phrase, normalmente sarebbe in grado di prelevare il contenuto del wallet e trasferire i fondi dove preferisce.
Se la passphrase è abilitata, il ladro non sarà in grado di farla franca, dal momento che avrebbe bisogno di inserire anche questa stringa aggiuntiva di informazioni per accedere ai fondi.
Un altro caso d'uso interessante per la passphrase è che può agire come un sistema di rilevamento delle minacce. Affinché questo funzioni, dovresti prima mettere una piccola percentuale dei tuoi fondi nel tuo wallet standard di 12 o 24 parole, con il resto dei tuoi fondi protetti dalla passphrase. Se il tuo backup dovesse essere compromesso, si noterebbe in quanto non si disporrebbe più di fondi in quel portafoglio, dando così la possibilità di creare un nuovo wallet e backup e trasferire i fondi rimanenti lì.
Questo sistema offre anche una “negazione plausibile”. Se qualcuno dovesse cercare di costringerti a dar loro i tuoi bitcoin, dovrai solo rinunciare al wallet standard, sperando di farla franca con la maggior parte dei tuoi fondi (protetti dalla passphrase) e la tua integrità fisica. Puoi spingerti oltre implementando una seconda passphrase che contiene anch’essa dei fondi, nel caso in cui il tuo aggressore sia tecnicamente esperto.
Come funziona una passphrase BIP-39?
BIP-39 funziona con BIP-32, la proposta che consente di costruire alberi complessi di chiavi pubbliche e private. Quando aggiungi una passphrase alle tue seed words, stai generando una chiave master del wallet BIP-32.
Questo nuovo wallet può essere identificato dalla sua impronta digitale estesa (XFP, extended fingerprint), una breve stringa di lettere e numeri. È importante notare questa impronta digitale poiché è l'unico modo per assicurarsi di aver inserito la passphrase corretta.
Suggerimenti su come utilizzare una passphrase
Come aggiungerne una?
Implementare una passphrase varia da wallet a wallet. Farlo su Coldcard è abbastanza semplice. Hai anche la possibilità di aggiungere parole dall'elenco di parole BIP-39 direttamente invece di scriverne i singoli caratteri. Dai un'occhiata alla guida qui!
Quando usarne una?
Questo è consigliato se si dispone di una quantità importante di Bitcoin e si desidera una configurazione che offre più sicurezza di un semplice wallet standard, ma che è molto più semplice da creare, utilizzare e conservare rispetto ad un wallet multisig.
Se stai muovendo i primi passi, allora è meglio acquisire familiarità con un wallet normale. Man mano che il tuo stack di Bitcoin, la conoscenza ed il comfort utilizzando Bitcoin aumentano, allora diventerebbe saggio esplorare questa funzionalità. L'opzione passphrase è sempre disponibile sulla schermata iniziale del Coldcard, basta non dimenticare che aggiungendone una, si otterrà un portafoglio completamente nuovo e si dovranno spostare i fondi lì!
Considerazioni finali
Le passphrase sono incredibilmente utili per aumentare il livello di sicurezza della tua chiave privata Bitcoin. Tuttavia, ci sono alcuni elementi importanti da tenere a mente quando si decide di utilizzarne una:
Assicurati che sia abbastanza lunga da non poter essere facilmente brute-forced, ovvero hackerata. Se qualcuno dovesse mettere le mani sulla tua seed phrase, non vorresti che indovinasse facilmente anche la tua passphrase.
È importante salvaguardare correttamente la tua passphrase, poiché perderla porterebbe effettivamente alla perdita totale di fondi associati a quel wallet.
Non conservare la passphrase nello stesso posto in cui conserveresti la seed phrase, il PIN del wallet o la password.
Non dire a nessuno che hai una passphrase (tuttavia, ci possono essere eccezioni con una persona cara di cui ti fidi in modo che possano recuperare i tuoi fondi facilmente nel caso in cui ti succedesse qualcosa).
Riferimenti
Antonopoulos, Andreas M. 2017. Mastering Bitcoin: Programming the Open Blockchain. N.p.: O’Reilly.
A HEARTFELT THANKS TO THE STAFF OF COINKITE FOR ALLOWING ME TO TRANSLATE THEIR ARTICLE.
UN SENTITO RINGRAZIAMENTO ALLO STAFF DI COINKITE PER AVERMI PERMESSO DI TRADURRE IL LORO ARTICOLO.
Se questo materiale ti è stato utile, fammelo sapere con un tip via Lightning Network a:
bitbaldo@ln.tips
⚡️bitbaldo@getalby.com
Utilizza RELAI per comprare i tuoi Bitcoin!
Scarica l’app cliccando qui e utilizza il codice MATT per risparmiare lo 0,5% in commissioni.
Grazie!