Che cosa sarebbe tipicamente considerata un'entropia di stringa accettabile per le password?

1

Mi sono interessato alla creazione di un modo per controllare la forza della password (si pensi ai misuratori della forza della password - sì - un altro). Ho trovato molti modi per assegnare un punteggio a un approccio basato sulla politica (un capitale, un personaggio speciale - lo capisci), ma ho anche iniziato a esaminare entropia della stringa. In particolare, ho trovato questa implementazione JavaScript dell'entropia di Shannon

Nel loro esempio, "1223334444" assegna 1.8464393446710154 in bit di entropia per carattere. Suppongo, quindi, che l'entropia per la stringa sia il numero di caratteri moltiplicato per la lunghezza - quindi essendo 18.464393446710154

La mia domanda è, comunque, in termini reali, che cosa significa questo valore? È decente? povero? Dove inizia e finisce il tasso di accettabilità scarso / decente / strong per valori come questo? Allo stesso modo, che cosa è considerato "eccessivo" per un'aspettativa accettabile per l'utente?

    
posta scniro 23.10.2015 - 06:39
fonte

2 risposte

4

A quanto ho capito, la quantità di entropia in una password rappresenta il numero di tentativi necessari per sapere qual è la password. Ogni bit è una singola decisione sì o no e, idealmente, l'autore dell'attacco otterrebbe un risultato "password corretta" o "password errata" (quindi, devono indovinare l'intera faccenda, tutto in una volta). Per n bit di entropia, ciò richiede 2 ^ n ipotesi.

La forza desiderata dipende dal tipo di minaccia che ti aspetti di affrontare. In particolare, dipende dalla velocità con cui l'attaccante può indovinare e da quanto tempo ci si aspetta che l'attaccante continui a provare.

Una volta che hai quei numeri, la tua entropia minima di destinazione (in bit) dovrebbe essere:

n = log_2(totalGuesses) = log_2(guesses/sec * durationInSeconds)

La persistenza dell'attaccante è qualcosa che non so come valutare. Per ragioni, supponiamo che tu voglia che la tua password sia sicura per 1 settimana dopo che l'hacker ha iniziato a indovinare.

Il numero di ipotesi al secondo dipende dal modo in cui la password è protetta e dal tipo di accesso che ha l'utente malintenzionato. Per un attacco online (ad esempio, provando il modulo di accesso di un sito Web), è possibile limitarlo ad un valore piuttosto basso; 10 al secondo sarebbe raggiungibile. Per MD5 non salato, è più sicuro assumere miliardi di ipotesi al secondo. Per un algoritmo di hash strong come bcrypt, sarà in qualche modo intermedio (MOLTO più lento di MD5, in ogni caso).

Quindi, con 1 miliardo di hash al secondo (cracking MD5 offline), dovresti difenderti da circa 6 * 10 ^ 14 ipotesi, richiedendo circa 49 bit di entropia. A 10 ipotesi al secondo (online, attacco a tasso limitato), devi difenderti da circa 6 * 10 ^ 6 ipotesi, quindi hai bisogno di circa 22. bit di entropia.

Naturalmente, le stime per carattere dell'entropia di Shannon non stimano accuratamente la difficoltà di crackare una password e l'errore percentuale varierà in modo selvaggio a seconda di vari fattori. L'approccio che stai prendendo fornirà solo risultati ragionevolmente accurati per le password generate dal computer, NON per le password generate dagli utenti.

    
risposta data 23.10.2015 - 07:16
fonte
1

Questa raccomandazione NIST è 80 bit di entropia per le password.

A 350 miliardi di tentativi / sec, tale password impiegherà al massimo 109.528 anni per crack , 54.764 anni su media.

Sebbene sia possibile garantire che le proprie password siano di una tale forza, puoi solo guidare i tuoi utenti a selezionare tale password.

I checker di rafforzamento della password come zxcvbn possono aiutarti, tuttavia questi sono validi solo come i loro elenchi di parole precaricati o i metodi di controllo (come l'Entropia di Shannon). In un attacco mirato, potrebbe già essere noto che il metodo di generazione della password è un metodo non standard utilizzato solo dalla vittima. In tal caso, i misuratori di forza della password non possono essere d'aiuto: l'entropia qui è basata sul numero di possibilità che quel particolare metodo può codificare, e non quelli su cui è basato il misuratore di forza della password.

    
risposta data 23.10.2015 - 10:36
fonte

Leggi altre domande sui tag