Mantenere segrete le parole di recupero è essenziale. Ma c’è un altro requisito altrettanto importante: nessuno deve essere in grado di indovinarle. Un wallet generato a partire da un insieme limitato di possibili segreti può essere vulnerabile anche se il suo backup non lascia mai il tuo cassetto.

Dopo la vulnerabilità relativa alla generazione dei seed di Coldcard, abbiamo ricevuto molte domande sull’entropia e su come i wallet generano valori casuali. I wallet creati su un BitBox02 o un BitBox02 Nova non erano interessati da quel problema. La questione di fondo, però, riguarda tutti gli utenti Bitcoin: cosa rende davvero difficile indovinare il segreto alla base di un wallet?

Cos’è l’entropia?

Partiamo da questo termine un po’ insolito di cui si sente parlare spesso. In parole semplici, l’entropia misura la quantità di informazioni o, vista dall’altro lato, il livello di incertezza quando si cerca di indovinare qualcosa. Nel contesto di un wallet Bitcoin, indica quanto sia difficile indovinarne la seed phrase.

L’entropia si misura in bit. Visto che anche i computer utilizzano i bit, è una scelta naturale, ma c’è anche una ragione pratica. Immagina di lanciare una moneta, dove testa e croce hanno la stessa probabilità. Comunemente diremmo che le probabilità sono 50 e 50. gli esperti di teoria dell’informazione parlano invece di un bit di entropia.

Se lanci la moneta due volte e ogni lancio è indipendente dall’altro, ottieni 2², cioè quattro possibili sequenze con la stessa probabilità: testa-testa, testa-croce, croce-testa e croce-croce. Hai quindi due bit di entropia.

Ogni ulteriore lancio indipendente e imparziale raddoppia il numero di sequenze possibili. Quattro lanci danno 16 possibilità. Con 256 lanci, le possibilità diventano 2²⁵⁶, un numero enorme che rende praticamente impossibile indovinare il risultato semplicemente provando.

Questo vale per il lancio di una moneta perché ogni lancio aggiunge lo stesso livello di incertezza, ma non si può applicare lo stesso ragionamento a tutto. L’entropia non dipende necessariamente dalla lunghezza di un numero.

Immaginiamo di nuovo 256 bit, ma questa volta con tutti i bit impostati a zero oppure tutti impostati a uno. Il numero è molto lungo, ma l’entropia è di appena 1 bit, perché ci sono soltanto due possibilità: tutti zero o tutti uno.

Allo stesso modo, una sequenza di cifre ripetute non dimostra da sola che un generatore di numeri casuali sia difettoso: anche in un risultato realmente casuale possono comparire dei pattern. Ciò che conta è come il numero è stato generato e quali informazioni può conoscere un attaccante sul processo.

In altre parole, non puoi valutare la qualità della casualità di un wallet semplicemente osservando le sue parole di recupero.

Non basta che sembri casuale

I computer sono molto bravi a seguire istruzioni precise. Sono progettati per essere deterministici: se chiedi loro di ripetere la stessa operazione più volte con le stesse condizioni, otterrai sempre lo stesso risultato. Proprio per questo, non sono naturalmente bravi a generare casualità e hanno bisogno di fonti esterne di entropia.

Vediamo due dei metodi più comuni utilizzati dai computer per generare e utilizzare numeri casuali.

Generatori di numeri pseudocasuali

Un generatore di numeri pseudocasuali, o PRNG, genera esattamente ciò che suggerisce il nome: numeri che non sono realmente casuali. Utilizza un algoritmo per produrre una sequenza di numeri a partire da un valore iniziale e da uno stato interno. Il valore iniziale viene spesso chiamato seed. In questo caso parliamo del seed del PRNG, non del seed di un wallet Bitcoin.

Se avvii lo stesso generatore con lo stesso stato, produrrà sempre la stessa sequenza. Questo è utile, ad esempio, per riprodurre una simulazione o un test software. Un normale PRNG, però, non è progettato per rendere impossibile prevedere il valore successivo a qualcuno che ne osserva i risultati precedenti.

Per ottenere valori diversi a ogni utilizzo, i PRNG vengono spesso inizializzati con informazioni legate all’ambiente di lavoro del momento, invece di utilizzare sempre un valore statico. L’esempio più semplice è usare data e ora correnti come seed.

Può funzionare bene se hai semplicemente bisogno di valori diversi per fare un test, ma dal punto di vista della sicurezza è chiaramente insufficiente: basta provare a indovinare l’intervallo di tempo in cui è stato avviato il PRNG per tentare di riprodurre gli stessi numeri “casuali”.

Generatori pseudocasuali crittograficamente sicuri

La pseudocasualità non è necessariamente inadatta alla sicurezza. Un generatore pseudocasuale crittograficamente sicuro, generalmente abbreviato in CSPRNG, è progettato in modo che sia praticamente impossibile prevederne i risultati senza conoscere il suo stato interno segreto. Deve però essere inizializzato con un livello di entropia sufficiente e il suo stato deve essere protetto.

Questi generatori possono produrre molti valori apparentemente casuali partendo da un segreto molto più piccolo. Non possono però creare nuova entropia dal nulla.

Se l’unico input segreto di un generatore è un seed casuale di 32 bit, le possibili condizioni iniziali rimangono soltanto 2³², anche se il risultato finale è lungo 256 bit.

Ed è proprio questo il meccanismo alla base della vulnerabilità relativa all’entropia di Coldcard emersa nell’agosto 2026: la creazione del wallet si basava su un CSPRNG inizializzato con un livello di entropia insufficiente.

Il punto fondamentale è questo: i PRNG, che siano crittograficamente sicuri o meno, non creano vera casualità. Sono funzioni matematiche che derivano valori apparentemente casuali a partire da un segreto iniziale.

Generatori di numeri realmente casuali

Un generatore di numeri realmente casuali, o TRNG, ricava entropia da un processo fisico. I circuiti elettronici possono, ad esempio, misurare il rumore termico generato dal movimento casuale delle cariche elettriche oppure piccolissime variazioni nei tempi. Questi fenomeni fisici vengono poi trasformati in bit.

Poiché questi eventi non seguono uno schema prevedibile o un ciclo ripetibile, i dati non possono essere riprodotti o indovinati in anticipo, anche conoscendo il funzionamento del dispositivo.

Anche una sorgente fisica richiede però una progettazione accurata. Il risultato potrebbe essere sbilanciato e l’hardware potrebbe presentare malfunzionamenti. Per questo, i sistemi che generano numeri casuali utilizzano controlli sul corretto funzionamento e tecniche che elaborano le misurazioni grezze prima di utilizzarle.

Un esempio più intuitivo, spesso citato quando si parla di fonti di entropia, sono le lava lamp. I loro movimenti e le loro forme cambiano continuamente e sono difficili da prevedere.

Cloudflare ha persino un’intera parete di lava lamp nella propria sede e le riprende continuamente con delle telecamere per utilizzarle come fonte di entropia. È un tipo diverso di TRNG, ma il principio è lo stesso: osservare un processo fisico che è praticamente impossibile prevedere.

The Wall of Entropy

Prima di ordinare delle lava lamp per creare il tuo prossimo wallet Bitcoin, torniamo a vedere come il BitBox utilizza diverse fonti di entropia per generare un wallet.

Perché combinare più fonti?

Affidarsi a una singola fonte di entropia può essere sufficiente, purché funzioni correttamente. Ma se, ad esempio, un difetto hardware rende poco affidabile il TRNG, potrebbe esserci un problema.

La casualità ha però una proprietà molto utile: non viene annullata combinandola con una fonte più debole. Possiamo quindi combinare diverse fonti di entropia senza preoccuparci del fatto che una sia meno affidabile delle altre. Ciò che conta è che almeno una di esse sia realmente casuale.

In altre parole, se combini un numero casuale debole, ad esempio dieci numeri scelti da un amico, con un numero realmente casuale, come il risultato di 256 lanci indipendenti di una moneta imparziale, il risultato finale rimane realmente casuale.

Le cinque fonti utilizzate dal BitBox

Durante la normale creazione di un wallet, il BitBox combina cinque diversi input. Hanno funzioni differenti e non tutti offrono necessariamente lo stesso livello di casualità. L’aspetto fondamentale è che siano indipendenti tra loro e offrano ulteriori livelli di protezione.

  • TRNG sul microcontrollore: il microcontrollore, o MCU, è il chip che esegue il firmware BitBox. Il suo generatore hardware di numeri casuali fornisce nuova entropia.
  • TRNG sul secure chip: si tratta di una seconda fonte hardware, separata e indipendente dall’MCU. Il BitBox02 utilizza un secure chip ATECC608B, mentre il BitBox02 Nova utilizza l’OPTIGA Trust M V3.
  • Un valore casuale assegnato in fabbrica: ogni BitBox riceve un proprio valore casuale durante la produzione. Questo valore rimane invariato per tutta la vita del dispositivo, quindi rappresenta un input aggiuntivo, ma non una nuova fonte di casualità per ogni wallet.
  • Entropia dal computer o smartphone collegato: la BitBoxApp ottiene dati casuali dal generatore crittografico del sistema operativo, ad esempio /dev/urandom su Linux, e li fornisce al BitBox. Si tratta quindi di una fonte esterna e indipendente dall’hardware wallet.
  • Un hash derivato dalla password del dispositivo: il BitBox combina anche un hash crittografico della password scelta dall’utente durante la configurazione. Questa fonte è indipendente sia dal dispositivo host sia dall’hardware wallet.

Ricorda: finché almeno una di queste fonti è realmente casuale, anche se le altre quattro fossero sbilanciate, la qualità della casualità del wallet risultante non ne risentirebbe.

Questa architettura è descritta anche nella nostra pagina dedicata alla sicurezza e, per chi vuole approfondire, può essere verificata direttamente nel codice open source del firmware. In questo modo, la generazione del wallet non dipende dal fatto che l’utente scelga una password estremamente casuale, né dal computer collegato come unica fonte di entropia.

Generare entropia con i dadi

Per la maggior parte degli utenti, il modo migliore è lasciare che sia il BitBox a generare il wallet durante la normale configurazione. È infatti ciò che consigliamo generalmente. Gli utenti più esperti che preferiscono generare personalmente la casualità possono invece utilizzare i dadi, sfruttando un processo fisico che possono eseguire e verificare autonomamente.

La nostra guida alla generazione del seed con i dadi spiega come utilizzare dei dadi e una tabella stampata per generare le parole di recupero. Con il metodo da 24 parole, generi autonomamente le prime 23, le inserisci direttamente sul BitBox tramite la normale procedura di ripristino e scegli poi una delle otto possibili parole finali mostrate dal dispositivo. L’ultima parola contiene un checksum, motivo per cui è necessario utilizzare il BitBox per selezionarne una valida.

È importante seguire l’intera procedura senza improvvisare. Dadi sbilanciati, un ordine incoerente dei risultati, errori nella trascrizione o la scelta di parole che “sembrano casuali” possono compromettere il risultato. Mantieni privata l’intera procedura e conserva le parole offline.

Tieni presente che questo metodo sostituisce la normale generazione delle parole di recupero con la casualità prodotta da te come unica fonte. I lanci dei dadi non vengono combinati con le altre cinque fonti di entropia utilizzate normalmente dal BitBox.

Aggiungere una propria fonte di entropia

Il BitBox non prevede un passaggio specifico per aggiungere lanci di dadi o di una moneta a un wallet generato automaticamente. Gli utenti più esperti possono però contribuire con una propria fonte di entropia attraverso la password iniziale del dispositivo.

Una password lunga e generata in modo indipendente, ad esempio una sequenza di parole scelta con i dadi, viene utilizzata come una delle fonti di entropia durante la creazione del nuovo wallet. In altre parole, se vuoi aggiungere una tua fonte di entropia, puoi farlo tramite la password del dispositivo. Dopo aver creato il wallet e completato il backup, puoi sostituire questa password con una più pratica dalle impostazioni del dispositivo. A quel punto il wallet è già stato generato, quindi modificare la password non influisce più sulla sua entropia.

Una passphrase opzionale, spesso citata nello stesso contesto, ha invece uno scopo diverso. Una passphrase forte e generata in modo indipendente aggiunge un ulteriore segreto in una fase successiva della derivazione delle chiavi private, creando di fatto un wallet separato.

Non modifica le parole di recupero e non ne aumenta l’entropia. La protezione aggiuntiva riguarda esclusivamente il wallet associato alla passphrase, purché quest’ultima sia sufficientemente robusta.

Si tratta di opzioni avanzate che citiamo per completezza, non di requisiti necessari per una configurazione sicura. Prima di utilizzare una passphrase, consigliamo di approfondirne vantaggi e rischi.

Conclusione

L’entropia è probabilmente uno degli aspetti più importanti per la sicurezza di qualsiasi wallet Bitcoin. Se il valore casuale utilizzato per crearlo non è davvero casuale, un attaccante potrebbe riuscire a ricostruire il wallet senza aver mai visto le parole di recupero.

Il BitBox combina diverse fonti di entropia per non dipendere da una sola. I due TRNG indipendenti e il valore casuale assegnato in fabbrica forniscono fonti interne al dispositivo. Il computer o smartphone collegato aggiunge un’altra fonte indipendente dal BitBox. Infine, l’hash della password del dispositivo aggiunge un input scelto dall’utente, indipendente sia dal BitBox sia dal dispositivo host.

Per la maggior parte degli utenti, ciò che bisogna fare è molto semplice: lasciare che sia il BitBox a generare il wallet, verificare il backup e conservarlo in modo sicuro offline. La generazione tramite dadi è un’opzione per chi comprende bene il funzionamento del processo, ma non è necessaria.

E ricorda: nessuno può verificare la qualità della casualità del tuo wallet chiedendoti di condividere le parole di recupero. BitBox non te le chiederà mai. Oggi esistono molte campagne di phishing che sfruttano il tema dell’entropia per creare paura e urgenza. Non inserire mai le parole di recupero su un sito web, in un “entropy checker” o in una chat di supporto.

Quanto è difficile indovinare una seed phrase?
Creare un bitcoin wallet già esistente è teoricamente possibile, ma quanto è probabile?

Non hai ancora un BitBox?

Mantenere le tue criptovalute al sicuro non deve essere complicato. Gli hardware wallet BitBox conservano le chiavi private delle tue criptovalute offline, così puoi gestire i tuoi fondi in modo sicuro.

Sia il BitBox02 Nova che il BitBox02 sono disponibili anche in una versione dedicata solo a Bitcoin, con un firmware radicalmente ottimizzato: meno codice significa meno punti vulnerabili, migliorando ulteriormente la sicurezza quando conservi solo Bitcoin.

Ordina il BitBox02 Nova o il BitBox02 nel nostro shop!


Shift Crypto è un'azienda privata con sede a Zurigo, in Svizzera. Il nostro team di contributori di Bitcoin, esperti di criptovalute e ingegneri della sicurezza crea prodotti che consentono ai clienti di godere di un percorso senza stress dal livello principiante a quello di padronanza nella gestione delle criptovalute. BitBox02, il nostro hardware wallet di seconda generazione, consente agli utenti di memorizzare, proteggere e effettuare transazioni in Bitcoin e altre criptovalute con facilità - insieme al suo compagno software, la BitBoxApp.