[Divulgazione: lavoro per AgileBits, i creatori di 1Password]
Uno dei motivi per cui ho sostenuto uno schema simile a XKCD (prima che fosse chiamato così) in Toward Better Master Password nel 2011 è proprio perché la sua forza non si basa sul fatto che l'aggressore sappia quale schema hai utilizzato. Se posso citare me stesso
La cosa grandiosa di Diceware è che sappiamo esattamente quanto sia sicuro anche supponendo che l'attaccante conosca il sistema utilizzato. La sicurezza deriva dalla genuina casualità del lancio dei dadi. L'uso di quattro o cinque parole dovrebbe essere sufficiente contro gli attacchi plausibili nei prossimi anni data la velocità osservata dei cracker di password [contro 1Password Master Password]
Cosa XKCD Il fumetto non comunica efficacemente è che la selezione delle parole deve essere (uniformemente) casuale . Se chiedi agli umani di scegliere parole a caso, ottieni un forte pregiudizio per i nomi concreti. Tali pregiudizi possono e saranno sfruttati.
Quanta forza vuoi
In un mondo perfetto, vorremmo che la forza della nostra password sia forte quanto le chiavi con cui stiamo proteggendo esso. Dì 128 bit. Ma nonostante queste tecniche, gli umani non ci riusciranno. Quindi guardiamo realisticamente agli attacchi e a cosa possiamo far fare ai nostri piccoli cervelli.
Con l'elenco di parole Diceware originale di 7776 voci, ottieni circa 12,9 bit per parola che usi. Quindi, se vuoi almeno 64 bit per la tua password, allora cinque parole lo faranno.
Indovinare le password è più lento che indovinare le chiavi
In questa sezione arrivo a un resoconto molto approssimativo della busta stima che per un importo costante di dollari è 2 ^ 13 volte più lento testare una password rispetto a testare una chiave AES.
Nota che testare una password è molto più lento del testare una chiave. Se vengono utilizzati i tipi corretti di schemi di hashing delle password, è possibile mantenere la maggior parte degli aggressori al di sotto di 100.000 tentativi al secondo. Quindi, anche se potremmo non voler mai usare chiavi a 50 bit, usare password a 50 bit potrebbe comunque avere senso.
Se non ci limitiamo a tirare i dadi come nello schema originale di Diceware di Arnold Reinhold dal 1995, quindi possiamo utilizzare un elenco di parole più lungo. Il generatore di password complesse in 1Password per Windows utilizza un elenco di 17679 parole inglesi comprese tra 4 e 8 lettere incluse (prive di parole tabù e parole che implicano un apostrofo o trattini). Ciò fornisce circa 14 bit per parola. Quindi quattro di questi ti danno 56 bit, cinque ti danno 70.
Ancora una volta, devi prestare attenzione alle velocità di cracking. Deep Crack nel 1997 era in grado di eseguire 92 miliardi di test DES al secondo. Supponendo che un PC specializzato di fascia alta possa eseguire un milione di tentativi al secondo contro una password con hash ragionevolmente corretto potrebbe fare 1 milione di tentativi al secondo, allora le password oggi sono circa 16 bit più difficili da decifrare rispetto alle chiavi DES nel 1997.
Quindi diamo un'occhiata a questa stima di Stack Exchange per un processore dual core a 3,8 GHz: 670 milioni di chiavi al secondo. Se dovessimo ipotizzare $ 5000 in hardware, possiamo facilmente superare i 10 miliardi di chiavi al secondo. Pertanto, a un costo hardware simile, il cracking delle chiavi è ancora 2 ^ 13 volte più veloce del cracking delle password.
Obiettivi di sicurezza delle password rivisti
Lavorando sulla mia stima che è 2 ^ 13 volte più costoso testare una password con hash corretto rispetto a testare una chiave AES, dovremmo considerare una password con hash ragionevolmente ben 13 bit più forte della sua effettiva entropia rispetto al cracking. Se vogliamo ottenere 90 bit di "forza effettiva", allora dovrebbero bastare 77 bit di forza della password. Ciò si ottiene con una password Diceware di sei parole (77,5 bit) dall'elenco originale e 84,6 bit con sei parole tratte da un elenco di 17679 parole.
Non mi aspetto che la maggior parte delle persone utilizzi password che lungo. Mi aspetto che le persone useranno cose lunghe 4 o 5 parole. ma se sei veramente preoccupato che l'NSA insegua le tue password, sei parole dovrebbero essere sufficienti supponendo che tu usi uno schema di hashing delle password decente.
Solo stime molto approssimative
Non l'ho fatto spendere molto tempo a ricercare costi e benchmark. Ci sono molte cose nelle mie stime su cui cavillare. Ho tentato di essere conservatore (pessimista sullo schema che sto sostenendo). Sono stato vago anche sulle "password ben codificate". Di nuovo, sono molto conservatore riguardo all'hashing della password in 1Password. (Per il nostro nuovo formato di dati, gli aggressori sono stati tenuti a meno di 20.000 tentativi al secondo e per il nostro vecchio formato di dati hanno raggiunto 300.000 tentativi al secondo per macchine multi-GPU. Nelle mie stime qui, ho scelto 1 milione di tentativi per secondo per una "password con un hash ragionevolmente corretto".)
Qualche altra nota storica
L'idea generale per le password "simili a XKCD" risale almeno al S / Key password una tantum dei primi anni '80. Questi utilizzavano un elenco di 2048 parole da una a quattro lettere. Una password S / Key di sei parole ti ha portato a 66 bit. Non so se questa idea di utilizzare parole selezionate a caso da un elenco per una passphrase sia precedente a S / Key.
Nel 1995 Arnold Reinhold ha proposto Diceware. Non so se all'epoca fosse a conoscenza di S / Key. Diceware è stato proposto nel contesto dello sviluppo di passphrase per PGP. È stato anche prima che la maggior parte dei computer avesse generatori di numeri casuali crittograficamente appropriati. Quindi in realtà si tratta di tirare i dadi. (Anche se mi fido dei CSPRNG sulle macchine che uso, mi piace ancora "creare una nuova password").
Nel giugno 2011, ho ravvivato l'interesse per Diceware in Toward Better Master Passwords con qualche modifica aggiuntiva. Ciò ha portato ai miei 15 minuti di fama. Dopo l'uscita del fumetto XKCD, ho prodotto una edizione geek che trattava un po 'di matematica.
Nel luglio 2011, Randall Monroe aveva ripreso schemi simili a Diceware e pubblicato il suo ora famoso fumetto. Dato che non sono l'inventore dell'idea, non mi dispiace affatto essere messo in ombra dal fumetto. Infatti, come ho detto nel mio articolo di follow-up
Ciò che mi ci sono volute quasi 2000 parole per dire in termini non tecnici, Randall Monroe è stato in grado di riassumere in un fumetto. Questo mostra solo il potere della matematica ...
Ma c'è una cosa su come il fumetto è stato interpretato che mi preoccupa. È chiaro a me e alle persone che hanno già compreso lo schema che le parole devono essere scelte attraverso un processo casuale uniforme e affidabile. Scegliere parole "a caso" dalla tua testa non è un processo uniforme e affidabile .