Supponendo una decente funzione di hash, l'unico modo per trovare la password in questa situazione è indovinarlo . Questo è vero per qualsiasi funzione di hash crittografica : è il significato della proprietà di resistenza preimage. Questo è vero per qualsiasi hash crittografico; le funzioni di hash della password hanno proprietà aggiuntive ( sale e lentezza ) che lo rendono più costoso per verificare ipotesi.
Rainbow tables funzionano in base al precomputing l'hash di molte password e la memorizzazione in un modo che consente di trovare rapidamente la password dall'hash se la password è nel set precompilato. In altre parole, fai molte supposizioni in anticipo.
"Forza bruta convenzionale" è un termine ambiguo. Può riferirsi a provare le password in un ordine ingenuo (ad esempio aumentando la lunghezza). Ma sei libero di fare supposizioni in qualsiasi ordine. Ad esempio, ha senso provare 123456
, password
e iloveyou
prima di quszoy
e nyoktw
. Quindi assicurati di provare le ipotesi in un intelligent ordine .
Non puoi trovare la password in altro modo con mezzi computazionali, ma potresti trovarla con mezzi esterni , come ad esempio:
- Snooping: attendi che l'utente inserisca la sua password e tieni sotto controllo le loro battute, ...
- Spyware: installa un keylogger (fisico o software) sul computer dell'utente e attendi fino a quando non inseriscono la loro password.
- Perdita di dati: leggi il post-it sul loro monitor, oppure apri la cassastrong e apri la busta.
- Man-in-the-middle: ascolta la comunicazione tra il computer dell'utente e il server protetto da password mentre stanno digitando la loro password.
- Phishing: fingi di essere l'amministratore di sistema del server o altra figura di autorità e fai in modo che l'utente digiti la sua password sul tuo computer invece che su quella legittima.
- Social engineering: offri all'utente un sacco di soldi o una barra di cioccolato . Se fallisce, applica chiave crittografia (o un tubo di gomma se sei un fanatico della tradizione).