Se dovessero penetrare nel sistema e scaricare il file di password con hash, potrebbero, con difficoltà, trovare password che funzionerebbero.
Mentre nessuno è stato in grado di trasformare l'output dell'hash MD5 nel testo originale. La cattiva notizia è che MD5 non richiede molto tempo per la CPU.
"Aspetta, sono cattive notizie?" In realtà lo è. Quando si calcolano i valori hash, si desidera prendere più tempo della CPU, piuttosto che meno. Più velocemente i cattivi possono testare milioni e miliardi di password, più velocemente possono arrivare a quello che stai cercando di mantenere segreto.
Ho eseguito un test di cinque milioni di password di nove caratteri e ho ottenuto i seguenti risultati sulla mia macchina (usando openssl, risultati in millisecondi):
- MD5: 2449
- SHA1: 2620
- SHA256: 3884
Se vogliono testare circa 5 miliardi di password, che coprono quasi tutte le possibili password di sei caratteri, il tempo della CPU dovrebbe variare da circa 28 giorni per MD5 a 44 giorni per SHA256. Questo è con un singolo thread su un computer non molto veloce. Se hanno investito poche centinaia di dollari per una mezza dozzina di schede grafiche, questo potrebbe essere fatto in poche ore.
È normale che il processo di hashing calcoli l'hash più volte. Calcoleremo l'hash della password "abc123" e otterremo "8be8efb0bfa ..." Se calcoleremo l'hash dell'hash, otterremo "98dead38ed2 ...". Puoi vedere che se lo facciamo dieci o cento volte, difficilmente noteremo la differenza nel tempo, ma i cattivi dovranno prendere non ore ma giorni o mesi.
Non dimenticare, devi solo trovare una stringa che si blocca sul valore memorizzato nella tabella della password, non necessariamente sul valore originale. Qualsiasi collisione farà. Ci sono modi per attaccare l'hash stesso per trovare collisioni che potrebbero essere più semplici di questo attacco di forza bruta. Per quello che vale, dubito che ci siano moltissime coppie di stringhe di caratteri stampabili con hash allo stesso valore.
Non sono sicuro che questo risponda esattamente alla tua domanda ma sembra pertinente.