Due hacker decifrano una password vecchia di 11 anni e recuperano 3 milioni di dollari in bitcoin

Un utente non ha più potuto accedere al suo wallet di criptovalute per aver perso la password. Due hacker lo hanno aiutato con successo, in una storia che evidenza i rischi della custodia di criptovalute
di Andrea Bai pubblicata il 30 Maggio 2024, alle 11:31 nel canale WebBitcoin
35 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoPremesso che solo per il fatto di italianizzare salt meriti la sedia elettrica.
Ma ti sei perso tutto il lavoro di reverse engineering che si è dovuto fare per arrivare a capire come generasse le password prima, che usasse la data e ora dopo e se usasse o meno char speciali alla fine. Poi certo alla fine di tutto sto tram tram si è andato di bruteforce. E comunque non un bruteforce classico dove aumenti un carattere di uno e provi la parola successiva... ma avranno immagino generato delle rainbow tables con una lista di password gia pronte da provare, saltandone quindi milioni non valide già in partenza.
La pwd è questa:
;S0noV€RamÉnt3Stp1t0che~CISIANoRi|sc11ti,Cr1bbi@_
Si nota subito che ha un carattere speciale all'inizio e uno alla fine, quindi è una pwd piuttosto prevedibile, molti utenti hanno questo comportamento.
Stimiamo il numero di simboli pari a 20 (non ho voglia di fare il conto esatto).
Poi si nota che sono state usate delle comuni parole e un dizionario comune ha circa 3 mila parole. Però sono state usate sia lettere maiuscole che minuscole in modo casuale. Visto che «Ad esempio, se si stima che nella scrittura della lingua italiana la lunghezza media delle parole è di 6 caratteri» (Fonte Wikipedia), si ha che con la parola media l'aggravio di questo trucco è di un fattore 2^6 = 64, per una parola di 10 lettere l'aggravio è di 2^8 =256 e quindi non è lineare. Comunque stimiamo l'aggravio di 256 per tutto il vocabolario. Allora il numero di tentativi da fare è:
3'000*256
Quindi si comprende: "Ciao", "cIao", "ciAo", "ciaO", CIao", ecc, ecc, in tutte le combinazioni possibili che sono 2^4=16 (perchè "ciao" è lungo 4 lettere).
Visto che le parole sono 8 le combinazioni sono:
(parole del dizionario)^8
Inoltre si nota che sono state sostituite alcune lettere con dei simboli un uno schema che in Rete si trova spesso e che sicuramente è già stato codificato con delle tabelle apposite:
o => 0, @
e=> €, è, È, É
i => |, ì, Ì
ecc, ecc.
Non ho la tabella ma stimiamo che riguardo solo le vocali che sono 5 e che per ogni vocale ci siano 3 varianti. Se prendiamo una parola generica del vocabolario da 8 caratteri (la parola media è di 6 caratteri) e consideriamo l'alternanza comune Consonante-Vocale, abbiamo:
cVcVcVcV
quindi 4 volcali ogni una delle quali può assumere 3 valori diverse quando sostituite con i simbolo, fanno un numero di combinazioni (stimato) per parola pari a:
3^4 =81
Quindi siamo arrivati a:
(3'000*256 *81)^8
Aggiungiamo il simbolo all'inizio e alla fine (i simboli sono 20):
20² =400
Adesso siamo arrivati a un numero di combinazioni pari a:
(3'000 * 256 *81)^8 * 400
Si nota che l'utente ha introdotto alcuni errori nella pwd, gli errori sono molto limitati:
;S0noV€RamÉnt3Stp1t0che~CISIANoRi|sc11ti,Cr1bbi@_
sono una sostituzione di una lettera con un simbolo qualsiasi, visto che la lunghezza della frase con 8 parole da 6 lettere medie è di:
8*6 =48
se sostituiamo una sola lettera con uno dei 20 simboli abbiamo un fattore di 48*20 = 960
(3'000 * 256 *81)^8 * 400 * 960
se togliamo una lettera abbiamo il fattore 48:
(3'000 * 256 *81)^8 * 400 * 960 * 48
e si può andare avanti togliendo altre lettere in tutte le combinazioni e altri simboli:
(3'000 * 256 *81)^8 * 400 * 960² * 48²
Con la pwd dell'utente basta andare poco avanti.
Che numero abbiamo ottenuto con l'ultima combinazione? Facciamo il conto:
1.9*10^74 combinazioni diverse da provare
Come confronto "A novembre 2023, la rete Bitcoin funziona con un hash rate di circa 460.000.000 Th/s.".
Il numero di hash della Rete Bitcoin è di 4.6*10^20 al secondo
Se paragoniamo i due brute force e calcoliamo il tempo per scoprire la pwd dell'autente, abbiamo un tempo pari a:
4*10^53 secondi
Che è un tempo elevatissimo ma non tanto se consideriamo che con 3 parole invece di 8 e un dizionario elementare di 1000 parole (come quello usato dall'utente) la pwd è quasi exploitabile da tutta la Rete bitcoin mondiale:
7.6 *10^33 sono le combinazioni della pwd con 3 parole
in 500 mila anni la pwd è exploitabile.
Quindi si capisce che riducendo ai simboli più probabili (che sono meno di 20 da me ipotizzati) e altre efficienze che sono quelle del provare prima quello che l'utente ricorda più facilmente, si arriva a scovarla in tempi brevi con tutta la potenza del mining mondiale.
Ma ti sei perso tutto il lavoro di reverse engineering che si è dovuto fare per arrivare a capire come generasse le password prima, che usasse la data e ora dopo e se usasse o meno char speciali alla fine. Poi certo alla fine di tutto sto tram tram si è andato di bruteforce. E comunque non un bruteforce classico dove aumenti un carattere di uno e provi la parola successiva... ma avranno immagino generato delle rainbow tables con una lista di password gia pronte da provare, saltandone quindi milioni non valide già in partenza.
Insomma alla fine "questa è la via", gli insegnamenti del Sensei Loris Batacchi della Scuola del Cobra , "VIA DI SPATOLA, COLPIRE FORTE, SENZA PIETA'" valgono anche per il settore IT !
Veramente appassionante la tua analisi.
[B][SIZE="4"]0aZ_#f!(fYBs2$سلامNnè1~d°0تهرانd问候语tÉ░2c[/SIZE][/B]
Trovi?
Sei per caso tu l'autore della pwd? devo andare a vedere i commenti della prima pagina...
Comunque aggiorno il calcolo della stima del numero di combinazioni con un dizionario elementare da 1000 parole, un numero di simboli di 10, una lunghezza media per parola di 6 lettere, 3 parole, si ottiene un numero di combinazioni da provare pari a:
160*10^24
che non è molto distante dalla potenza di mining mondiale che c'è in 1 secondo:
«Il numero di hash della Rete Bitcoin è di 4.6*10^20 al secondo»
Infatti la differenza è di soli 350 mila secondi ovvero 4 giorni.
Facendo i calcoli precisi sono sicuro che il numero è di molto inferiore e provando prima i simboli e le parole più comuni e poi quelle meno comuni sono sicuro che in pochi secondi si fa l'exploit.
Certo stiamo parlando dell'intera potenza di hash mondiale, da non dimenticare. Però tra 4 o 5 anni potremmo averla sotto il tavolo o quasi.
[B][SIZE="4"]0aZ_#f!(fYBs2$سلامNnè1~d°0تهرانd问候语tÉ░2c[/SIZE][/B]
Certo che non sei bastardo, di più
Assolutamente si !
Ancora si, inventata senza perderci troppo tempo sopra, era tanto per. Ti garantisco che dove è necessario imposto password di altra fattura !
160*10^24
che non è molto distante dalla potenza di mining mondiale che c'è in 1 secondo:
«Il numero di hash della Rete Bitcoin è di 4.6*10^20 al secondo»
Infatti la differenza è di soli 350 mila secondi ovvero 4 giorni.
Facendo i calcoli precisi sono sicuro che il numero è di molto inferiore e provando prima i simboli e le parole più comuni e poi quelle meno comuni sono sicuro che in pochi secondi si fa l'exploit.
Certo stiamo parlando dell'intera potenza di hash mondiale, da non dimenticare. Però tra 4 o 5 anni potremmo averla sotto il tavolo o quasi.
Concordo ! E secondo me sono pure stime forse al ribasso...però per stasera fammi dormire un sonno tranquillo, speriamo che l'intera potenza non si metta di punta per craccare proprio la mia roba e le mie pwd !
Aahhhhhh.....ora si che "si è raddrizzato" !
Godo nel leggere questi malvagi apprezzamenti !
[B][SIZE="4"]0aZ_#f!(fYBs2$سلامNnè1~d°0تهرانd问候语tÉ░2c[/SIZE][/B]
Devo sempre andare a vedere se sei tu l'autore della pwd piena di trucchi. Però io ho già scritto un articolo che risponde alla tua domanda implicita nella pwd che mi hai scritto qui sopra. Riassumendo il mio articolo è che se generi casualmente una password magari senza usare un algoritmo ma tirando i dadi (basta una coppia di dai da 6 che si possono comprare al mercatino delle pulci o su Temu), fai un numero di lanci come questi:
5315563245256154225623
Poi converti questi numeri in una serie di lettere minuscole del tipo:
sdkfsdfiwlaojndf
magari togli le lettere dell'alfabeto inglese
poi costruisci una filastrocca con le iniziali delle lettere che hai ottenuto e calcoli il numero di combinazioni che è:
20^20 = 10^26
per 20 lettere ovvero una filastrocca da 20 parole che si può ricordare, invece la tua pwd non la ricorderai mai.
10^26 è usabile perché la si può ricordare a memoria e sicura per molti usi. Se poi si aggiunge un numero casuale di 3 o 4cifre dopo allora diventa anche abbastanza sicura.
Questo il mio articolo:
https://www.kensan.it/articoli/Password_sicurezza.php
5315563245256154225623
Poi converti questi numeri in una serie di lettere minuscole del tipo:
sdkfsdfiwlaojndf
magari togli le lettere dell'alfabeto inglese
poi costruisci una filastrocca con le iniziali delle lettere che hai ottenuto e calcoli il numero di combinazioni che è:
20^20 = 10^26
per 20 lettere ovvero una filastrocca da 20 parole che si può ricordare, invece la tua pwd non la ricorderai mai.
10^26 è usabile perché la si può ricordare a memoria e sicura per molti usi. Se poi si aggiunge un numero casuale di 3 o 4cifre dopo allora diventa anche abbastanza sicura.
Questo il mio articolo:
https://www.kensan.it/articoli/Password_sicurezza.php
Leggerò con molto interesse e attenzione.
p.s. entrambe le password sono farina del mio sacco !
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".