Bruteforce Passphrase delle parole del dizionario

0

Considera la passphrase tutto in minuscolo:

"trattato di lazy fox haggles"

Supponi che tutte e quattro le parole siano in un dizionario del 2000.

Combinazioni di parole bruteforcing, quanto tempo ci vuole per decifrare questa password a 1000 / s?

Come cambia questo se ci sono maiuscole / minuscole?

Come cambia questo se c'è un dizionario di 10000 parole?

Modifica:

L'attaccante non è limitato, contesto locale.

    
posta Dan Kanze 14.05.2013 - 17:06
fonte

2 risposte

5

4 campioni da un dizionario di 2000, fornisce una cardinalità spazio-passphrase del 2000 4 .

Tempo di crack a 1000 tentativi al secondo;

2000 4 / 1000 = 1,6E10 secondi = 507 anni.

Con i primi caratteri maiuscoli possibili hai una cardinalità di 4.000 4 (il doppio di parole per slot). Il che è un po 'più grande e richiederebbe 8.117 anni a 1000 tentativi al secondo.

Un dizionario di 10.000 parole produrrebbe 0,3 milioni di anni tempi di crack a 1000 al secondo.

Se questo è un modello di minaccia realistico dipende interamente dalla tua situazione. Se stai parlando di cracking della passphrase offline dopo che è stata sottoposta a hashing con una singola iterazione di MD5, un determinato attacker può raggiungere oltre 100 miliardi di tentativi al secondo, il che ti dà solo 27 ore piuttosto che 0.3 milioni anni nell'ultimo esempio.

    
risposta data 14.05.2013 - 17:17
fonte
1

Se le parole sono selezionate casualmente, allora si applica la risposta di Iynks , ma potrebbe essere molto peggio se la passphrase forma una frase [grammaticamente valida]. Data una parola di partenza (dal set di 2000 parole), non ogni altra parola (incluso se stessa) potrebbe seguirla e produrre comunque una frase valida, quindi le scelte sono molto più strette. Se lasci che gli utenti scelgano le loro password, probabilmente succederebbe. E anche gli attaccanti probabilmente provano prima quelle combinazioni.

Per quanto riguarda il tempo di crack, per rispondere è necessario conoscere meglio il tuo modello di minaccia. Vedo dalla tua modifica che stai cercando di proteggere qualcosa installato offline, ma sei preoccupato che solo gli utenti "comuni" siano interessati a scansionare quelle password o ti aspetti un aggressore più determinato e abile? Un PC commovente che cerca di decifrare le password con la CPU (o anche con la GPU) si comporta in modo molto peggiore di quello che un hacker può ottenere con un cluster o con un hardware dedicato.

Come spiegato meglio in questa domanda , la tua migliore la difesa dovrebbe essere un buon algoritmo di hashing con un fattore di lavoro configurabile. PBKDF2, bcrypt o scrypt dovrebbero andare bene (fai riferimento a questa domanda per una spiegazione più approfondita dei pro e contro di ciascuno). Per quanto riguarda il tempo di crack, tutto dipenderà dal fattore lavoro: puoi sceglierne uno in cui è possibile effettuare un solo tentativo al secondo (o meno) o uno in cui sono possibili milioni o miliardi. Si riduce a ciò che il ritardo è tollerabile dai legittimi utenti ogni volta che tentano di inserire la password. (per i numeri duri, l'unico modo per essere sicuri è il benchmarking su una particolare macchina)

    
risposta data 14.05.2013 - 18:22
fonte

Leggi altre domande sui tag