Quanto tempo occorrerebbe per decifrare password lunghe fino a 10 lettere se sapessi che gli hash erano MD5 con un sale (che conosci)?
Il calcolo è abbastanza semplice, anche se ci sono alcune ipotesi nascoste.
In questo sito , è possibile trovare benchmark per alcuni sistemi di cracking basati su GPU. Uno di questi, dotato di ben otto GPU AMD R9 290X, può calcolare 93,8 miliardi di MD5 al secondo.
Ci sono 26 10 = 141167095653376 sequenze possibili di 10 lettere. A 93,8 miliardi al secondo, possono essere tutti sottoposti a hash in circa 1500 secondi, ovvero 25 minuti . In media, trovare la password giusta impiegherà metà tempo (a volte sei fortunato, a volte non lo fai).
Tuttavia, attenzione ai dettagli:
MD5 è una funzione di hash. La sua definizione standard non parla di password o di sali. Quando hai "hash password passate con MD5 e un salt", allora stai usando un algoritmo non specificato che usa MD5 come uno dei suoi elementi interni. Se il costo computazionale dell'algoritmo può essere ridotto a "un solo MD5" dipende da tale algoritmo. Alcune funzioni di hashing della password basate su MD5 implicano in realtà diverse invocazioni MD5, probabilmente molto (in questo senso, PBKDF2 con HMAC / MD5 è un algoritmo "basato su MD5" e può coinvolgere miliardi di invocazioni per ciascuna password ).
Il calcolo sopra assume 10 lettere lettere minuscole . Se la password può includere lettere minuscole e maiuscole e vengono trattate in modo diverso, il numero di combinazioni sale a 52 10 = 144555105949057024, per un tempo di forza bruta corrispondente di 17,8 giorni . Se usiamo caratteri stampabili (i 95 segni ASCII, escludendo i caratteri di controllo ma includendo lo spazio), il numero di combinazioni aumenta ancora, fino a 95 10 = 59873693923837890625, per un bruto tempo di forza di circa 20 anni (di nuovo, questo è per l'esplorazione spaziale completa, il tempo di attacco sarà metà di quel valore in media).
Al contrario, quando si suppone che utenti umani normali generino una password, escono con parole d'ordine "spiritose" e non "casuali". Tra le possibili password di 10 lettere, alcune sono molto più probabili di altre. Gli attaccanti proveranno le password iniziando con quelle più probabili, e questo riduce parecchio il tempo di attacco.
Il sistema usato qui come esempio è abbastanza grande in termini amatoriali (8 grandi GPU ...), ma un attaccante industrioso può accumulare più potenza. Può anche affittarlo (da sistemi cloud commerciali), che può essere redditizio. Non esiste una risposta assoluta alla tua domanda se prima non definisci il budget dell'attaccante.
Leggi altre domande sui tag passwords brute-force hash md5