Perché esiste una preferenza per le lunghe passphrase invece di aumentare le iterazioni di hashing?

1

Sembra esserci un accordo sul fatto che quando si tratta di password brute-forzante offline, password lunghe ma semplici sono meglio che brevi quelli complessi . Recentemente ho visto una domanda relativa a aumentando il numero di iterazioni di crittografia in GPG e alcune persone sembravano suggerire di venire solo invece con una password sicura, ad esempio perché l'altra opzione comporterebbe il rallentamento delle implementazioni ARM. Ci sono altri argomenti per non aumentare il numero di iterazioni e abbreviare la password?

    
posta d33tah 04.06.2015 - 15:35
fonte

3 risposte

3

Aumentare il numero di iterazioni rende la funzione più costosa da calcolare, sia per l'attaccante (questo è il punto), ma anche per il difensore. Quindi, si nutre della risorsa molto scarsa conosciuta come "pazienza dell'utente"; il numero di iterazioni non può essere reso arbitrariamente alto. Questo è particolarmente vero se uno dei sistemi su cui la password deve essere sottoposta a hash è sotto-alimentato (ad esempio uno smartphone economico).

Utilizzare una password più casuale di solito significa usare una password più lunga (la password non è resa più strong attraverso la sua lunghezza, ma a causa della sua casualità, tuttavia, è necessaria una maggiore lunghezza per fare spazio a un eccesso di casualità). Una password più lunga implica ulteriori sforzi di digitazione, quindi ancora una volta la pazienza dell'utente è un problema, ma almeno questo è un utente attivo : gli utenti umani sono più tolleranti delle procedure di sicurezza quando fanno qualcosa durante la procedura. / p>

Concettualmente hai bisogno di entrambi un numero elevato di iterazioni e una password complessa piena di casualità. La casualità è ciò che sconfigge l'attaccante; le iterazioni sono lì per contrastare gli effetti della legge di Moore .

    
risposta data 04.06.2015 - 16:16
fonte
1

Un'idea di esempio: perché per definizione l'algoritmo è noto pubblicamente che non c'è alcun problema a costruire tabelle arcobaleno e usarle per decrittografare il messaggio. Dall'altra parte della costruzione di tali tabelle per la password lunga non è fattibile / possibile nella maggior parte dei casi

    
risposta data 04.06.2015 - 16:14
fonte
1

Forza brutale ruota attorno a indovinare il tipo di caratteri nella stringa. Assumiamo una password con 5 caratteri nelle seguenti classi: - lettere inglesi minuscole (26) - lettere inglesi maiuscole (26) - Cifre da 0 a 9 (10)

Questo ci fornisce un totale di 62 opzioni per ogni posizione, ovvero:

62 x 62 x 62 x 62 x 62 = 916 132 832

916 132 832 Combinazioni possibili. Ora aggiungiamo un altro carattere:

62 x 62 x 62 x 62 x 62 x 62 = 56 800 235 584

Aumenta logaritmicamente con ogni carattere aggiunto. In questo caso non contiamo i simboli che renderebbero un salto ancora più ripido. Invece di avere bisogno di 10 ore per indovinare una password di 7 caratteri, potrebbero essere necessari 40 giorni per indovinare una password di 8 caratteri.

Quando indovini una password per mezzo della forza bruta di solito non conosci la lunghezza, o le classi coinvolte, quindi devi cercare anche i simboli (e, si spera, caratteri non accentuati). Anche con la potenza di elaborazione di oggi, su un computer desktop, il tempo impiegato per provare tutte queste combinazioni è in genere troppo. (Ho pubblicato ulteriori informazioni su password cracking qui se sei interessato).

L'hashing di una password più volte aumenterà il tempo impiegato per round, ad esempio invece di richiedere 1 secondo per password ci vorrebbe 1.5 (di nuovo, questo è solo un esempio), quindi attenua efficacemente l'attacco. Tuttavia, aggiunge anche i consumi di risorse al sistema, in un servizio occupato potrebbe essere abbastanza considerevole da accettare il rischio di implementare un meccanismo di autenticazione inferiore.

    
risposta data 04.06.2015 - 16:24
fonte

Leggi altre domande sui tag