Punti chiave
- Un lancio equo di un dado a sei facce fornisce circa 2,585 bit di entropia, secondo la formula di Claude Shannon.
- La documentazione di Coinkite afferma che 50 lanci di dadi soddisfano lo standard a 128 bit richiesto per il seed di un portafoglio Bitcoin.
- L’analisi “Wizard Sardine” di Kevin Loaec ha evidenziato rischi negli strumenti Coldcard che vanno oltre il seed principale.
Perché il risultato di un lancio di dadi è così difficile da prevedere
Claude Shannon, il matematico che ha fondato la teoria dell’informazione, ha utilizzato l’entropia per misurare il grado di incertezza di un risultato. Con un dado a sei facce equo, ogni faccia ha la stessa probabilità di uscire, pari a una su sei. Ciò conferisce a ogni lancio circa 2,585 bit di entropia. Il lancio di una moneta produce 1 bit, mentre un dado a otto facce ne produce 3.
Le recenti polemiche su Coldcard hanno portato la generazione di seed basata sui dadi a diffondersi sui social media. Alcuni utenti ora la considerano essenziale, altri sostengono che abbia protetto i loro fondi, mentre gli operatori esperti sottolineano che la maggior parte dei nuovi arrivati non tollererà un processo di configurazione lento e soggetto a errori.
La cosa importante non è che un dado che rotola si comporti in modo casuale a livello atomico. Non è così. Il risultato è governato dalla fisica, ma troppe piccole variabili cambiano contemporaneamente perché qualcuno possa calcolare l’esito in modo affidabile. Il dado lascia la mano con una certa velocità, angolazione, altezza e rotazione, poi colpisce il tavolo e cambia direzione a ogni rimbalzo.
In pratica, anche una minima variazione nel lancio può produrre un risultato completamente diverso. Una posizione delle dita leggermente diversa o un lancio appena più forte altera la traiettoria al punto che il numero finale non può essere previsto osservando il movimento. Il risultato può essere deterministico in teoria, ma per la generazione di portafogli, ciò che conta è che un malintenzionato non possa riprodurlo o calcolarlo.
Trasformare i lanci di dadi in dati utilizzabili
Un computer non può utilizzare direttamente un elenco di risultati dei dadi. I lanci devono prima essere convertiti in dati binari, e il metodo di conversione è importante. Un metodo di base basato sul pari o dispari è facile da comprendere, ma spreca gran parte dell’entropia disponibile. Ogni lancio viene ridotto a un singolo bit, anche se il dado ha prodotto circa 2,6 bit di informazione. Metodi più efficienti raccolgono una lunga sequenza di lanci ed elaborano l’intera stringa, solitamente tramite una funzione hash crittografica. Ciò preserva una quantità di casualità molto maggiore.
Lo stesso principio si ritrova in Diceware, un metodo consolidato per la creazione di passphrase sicure, e nella generazione manuale dei portafogli Bitcoin. Una tipica frase di recupero del portafoglio composta da 12 parole è costruita a partire da 128 bit di entropia. A circa 2,6 bit per lancio, circa 50 lanci equi forniscono informazioni grezze sufficienti per superare tale soglia.
Coinkite, il produttore del portafoglio hardware Coldcard, raccomanda 99 o più lanci agli utenti che desiderano avvicinarsi ai 256 bit di entropia. Ciò non rende il portafoglio due volte più difficile da usare, ma conferisce al segreto generato un margine di sicurezza matematica molto più ampio.
Un test nel mondo reale dei semi generati dai dadi
Tale distinzione è diventata importante dopo che Coinkite ha reso noto un problema di firmware risalente al 2021. Su alcuni dispositivi Coldcard, il software poteva bypassare il generatore di numeri casuali interno all’hardware e utilizzare invece un processo più debole collegato a informazioni non segrete del dispositivo.
Poiché alcune parti di tale processo potevano essere ricostruite, gli aggressori erano in grado di restringere il campo delle possibili chiavi del portafoglio anziché setacciare l’intero spazio delle chiavi. La vulnerabilità è stata collegata al furto di circa 1.128,6633 BTC da circa 1.100 indirizzi, alle ore 13:00 ora della costa orientale.
I seed dei portafogli creati interamente da un numero sufficiente di lanci di dadi indipendenti non sono stati esposti attraverso lo stesso percorso. Quegli utenti avevano fornito la propria entropia, quindi il generatore hardware difettoso non era responsabile della creazione del segreto primario del portafoglio.
Tale protezione, tuttavia, si applicava solo al seed generato dai dadi. Non proteggeva automaticamente ogni altro segreto generato dal dispositivo.
Wizard Sardine esamina le clausole scritte in piccolo
Il ricercatore di sicurezza Kevin Loaec ha pubblicato una valutazione dell’exploit di Coldcard sul sito web di Wizard Sardine il 1° agosto. La sua osservazione più importante riguardava le funzionalità di Coldcard che generavano i propri segreti separatamente dal seed principale del portafoglio.
«Ritengo sia estremamente importante sottolineare che anche gli utenti che hanno importato o generato un seed con i dadi sono vulnerabili, se utilizzano le seguenti funzionalità», ha scritto Loaec su X, prima di presentare un diagramma del sistema interessato.
Il diagramma mostra il generatore di numeri casuali difettoso che alimenta diverse funzioni secondarie di Coldcard. Tra queste figuravano la creazione di portafogli cartacei, la clonazione del dispositivo, la crittografia delle sessioni USB, la funzione di trasferimento «Secret Teleport», la creazione di chiavi di co-firma, il generatore di password integrato e i codici di autenticazione del modulo di sicurezza hardware.
Un portafoglio principale creato con 99 lanci di dadi rimaneva in una parte separata del sistema. Il problema era che gli altri strumenti potevano comunque richiedere nuova casualità dal generatore difettoso. Di conseguenza, un seme sicuro non garantiva che ogni password, backup, codice di autenticazione o chiave secondaria creata sullo stesso dispositivo fosse altrettanto sicura.
Perché la maggior parte dei nuovi utenti non lancerà i dadi
L’entropia generata dai dadi è tecnicamente valida se eseguita correttamente, ma non rappresenta un’impostazione predefinita realistica per la maggior parte dei nuovi utenti. Lanciare un dado 50 o 99 volte, inserire accuratamente ogni risultato e confermare che nessun lancio sia stato saltato o duplicato richiede pazienza e molta concentrazione. Un solo numero digitato erroneamente può modificare completamente il wallet finale, e la maggior parte dei dispositivi non è in grado di distinguere se l’errore derivi da un lancio errato, da un errore di inserimento o da un fraintendimento delle istruzioni.
Il processo introduce inoltre rischi che non sussistono con un generatore hardware correttamente funzionante. Gli utenti potrebbero annotare i risultati su carta, fotografarli, inserirli in uno strumento online o lasciare l’elenco in un luogo accessibile a terzi. Alcuni lanciano il dado in modo ripetitivo o controllato, utilizzano un dado truccato o danneggiato, oppure interrompono il processo prima del tempo perché lo ritengono eccessivo. La matematica alla base può essere solida, ma la sicurezza del risultato dipende esclusivamente dalla procedura seguita dall’utente.
Ecco perché il lancio dei dadi non è sempre considerato il metodo migliore da molte persone, anche tra gli utenti esperti di bitcoin. Sostituisce la fiducia in un dispositivo con la fiducia in un processo manuale. Per un utente attento dal punto di vista tecnico che comprenda l’entropia, verifichi il metodo e mantenga privata la sequenza dei lanci, tale scelta può avere senso. Per un acquirente medio che configura un portafoglio per la prima volta, ciò aggiunge diverse possibilità di commettere un errore irreversibile, oltre a rappresentare al contempo un processo fastidioso.
È inoltre difficile immaginare un’adozione diffusa del bitcoin che dipenda dal fatto che le persone si siedano a un tavolo e registrino i risultati di 99 lanci di dadi prima di poter ricevere fondi e farlo in modo sicuro. Le pratiche di sicurezza devono resistere alla realtà domestica, agli impegni frenetici, alle distrazioni e agli utenti che non vogliono studiare la crittografia. L’entropia manuale dovrebbe rimanere disponibile come opzione avanzata, ma l’obiettivo a lungo termine è un hardware e un software in grado di generare correttamente una forte casualità, spiegare chiaramente cosa sta succedendo e richiedere il minor numero possibile di conoscenze specialistiche.
Cosa dovrebbero verificare i possessori di Coldcard
I possessori dei dispositivi Coldcard interessati dovrebbero innanzitutto verificare la versione del firmware installata sul dispositivo. Dovrebbero poi esaminare quali funzionalità hanno utilizzato mentre utilizzavano il firmware precedente, piuttosto che concentrarsi solo su come è stato generato il seed del portafoglio principale.
Chiunque abbia utilizzato il dispositivo interessato per generare un portafoglio cartaceo, un segreto di clonazione, una password, una chiave di co-firma o un codice di autenticazione potrebbe dover sostituire immediatamente tale materiale. L’installazione dell’aggiornamento impedisce che lo stesso problema influisca sui nuovi segreti, ma non ripara nulla di quanto creato in precedenza.
L’incidente rafforza inoltre la validità pratica delle configurazioni di portafogli multi-vendor. In una configurazione multi-firma, per approvare una transazione possono essere richiesti dispositivi hardware separati di produttori diversi. Tale struttura non rende impossibili i bug del firmware, ma può impedire che un singolo generatore di numeri casuali difettoso esponga da solo l’intero portafoglio.
#Adessonews seleziona nella rete articoli di particolare interesse.
Se vuoi leggere l’articolo completo clicca sul seguente link
Alan Inman
Source link



