Password: attacchi dizionario esteso vs dizionario

1

Prendendo spunto da Diceware e dagli altri generatori di passphrase, ho preso un dizionario di 20k parole inglesi e ho usato uno script per generare errori di battitura, ottenendo 7M "parole", dando 22,7 bit di entropia per parola rispetto a 12.9 di Diceware. 5 di questi sono diventati parte della mia nuova password principale (è più facile da ricordare di 9 parole senza errori di battitura ed è solo leggermente più debole). L'installazione dietro i ponti TOR mi ha dato un'idea, e ho pensato di portare tutto all'estremo e costruire un generatore di passphrase con un dizionario così grande che è indistruttibile ... continua a leggere per la stampa fine.

Proprio per rendere ovvia la domanda, chiedo quanto sarebbe efficace nella pratica. Se vale la pena, infetterò i miei amici e li sostituirò con i loro corretti ferri per la batteria del cavallo.

L'idea è che ogni utente prenda una copia del dizionario già grande delle parole inglesi comuni (o di un'altra lingua) come dizionario personale, quindi aggiunge le proprie parole: parole, errori di battitura, nomi, parole non comuni in altre lingue , frasi brevi, numeri, pseudowords, qualsiasi cosa a cui possano pensare (è il loro personale dictonary, se non è memorabile è colpa loro). Ovviamente, i singoli utenti avranno difficoltà a trovare un numero sufficiente di parole per aumentare l'entropia del loro dizionario personale di qualsiasi importo significativo, motivo per cui vorremmo andare a mixare i nostri dizionari con i nostri amici per renderli più grandi - aggiungono alcuni dei nostri parole al loro dizionario e aggiungiamo alcuni dei nostri al nostro. Ci sarà uno spettro di parole rare, con una grande porzione di parole che si trova nei dizionari di molti utenti e alcune poche parole sono uniche, almeno finché non le condividi con altre persone.

Alla fine della giornata, con tutto questo mixaggio, potremmo essere riusciti ad aggiungere qualche bit di entropia al nostro dizionario personale. Questo potrebbe essere stato equivalente a 1 parola Diceware in più. Ma diventa un po 'meglio se guardiamo ad attacchi mirati:

  • Se conoscono il nostro dizionario personale, contiene ancora il dizionario standard, quindi è almeno altrettanto strong di un numero equivalente di parole Diceware, che è già sicuro *. Il principio di Kerckhoff è ancora rispettato e l'impostazione può essere rafforzata nel tempo con l'aggiunta di più parole.

  • Se non conoscono il nostro dizionario personale ... Se nella nostra passphrase abbiamo anche una sola parola rara e non è inclusa nel dizionario usato dall'attaccante, non indovinerà mai la nostra password. Per aggirare questo problema, l'attaccante può impadronirsi dei dizionari di altre persone nella speranza di trovarne uno che includa le nostre rare parole. Non sanno quali parole sono le parole rare, quindi non hanno modo di filtrare il dizionario combinato. Questo dizionario combinato conterrà anche molte più parole che non sono nel nostro dizionario personale e rallenterà solo l'attacco del dizionario. L'entropia di indovinare si basa su quanto sia difficile indovinare la passphrase, e quindi in questo caso non si basa sul nostro dizionario personale ma sulla dimensione (stimata) del dizionario combinato necessario per craccarlo, e questo dizionario combinato sarebbe molto più grande rispetto al nostro dizionario personale.

* Ma se è già sicuro, perché aggiungere ulteriore sicurezza? Possiamo ottenere abbastanza entropia per essere sicuri mentre si usano ancora le parole 6, 5 o anche 4 (con un dizionario enorme), che altrimenti sarebbe sopra o sotto la soglia per ciò che è attualmente considerato sicuro. È equivalente a Diceware solo se il dizionario standard ha le stesse dimensioni e non vengono aggiunte parole utente.

Faccio riferimento a Diceware poiché sembra essere il generatore di passphrase più popolare, o almeno è quello a cui sono stato indirizzato.

    
posta EPICI 14.09.2017 - 05:15
fonte

1 risposta

3

Questo approccio aggiungerebbe una complessità inutile. Ancora più importante, sconfiggerebbe anche uno scopo principale delle password in stile Diceware: dovevo solo ricordare singole parole, non strane cose aggiuntive su di loro.

In primo luogo, per illustrare la complessità, facciamo i calcoli. (Per ogni schema di password proposto, se comunichi la matematica con un modello del rischio, riceverai automaticamente la maggior parte della risposta.)

Supponendo il caso peggiore estremo - a partire dal tuo dizionario di base di 20.000 parole e assumendo che l'utente malintenzionato possa indovinare 100 trilioni di password al secondo (che è quasi certamente oltre le attuali capacità dello stato nazionale), e Supponendo inoltre che desideri che la tua password resista a cracking per 100 anni, ti servirà solo:

ceil (log base 20000 di (100000000000000 * 100 * 31556926))

... sei parole comunque . (Grazie a Jeremi Gosney per insegnandomi come illustrare la matematica ).

E questo è per un futuro aggressore di stato nazione ipoteticamente avanzato - che non è quasi certamente quello di cui dovresti preoccuparti. Sulla base delle nostre attuali conoscenze di matematica e fisica, milioni di parole in un dizionario Diceware sono completamente inutili per la maggior parte dei modelli di rischio reali.

In secondo luogo, l'intero punto di Diceware è di creare password facili da ricordare. L'introduzione di milioni di errori di battitura renderebbe il carico cognitivo ingestibile. Provare a ricordare quegli errori di battitura sarebbe stato tanto difficile quanto tentare di ricordare quale lettera hai capitalizzato, quale 'A' hai trasformato in un '@', ecc. Semplicemente non vale il trade-off - e precisamente ciò che l'inventore di Diceware Art Reinhold voleva evitare.

Invece, per il tuo dizionario di 20.000 parole, faresti molto meglio con semplicemente aggiungendo una parola . Non solo è più facile memorizzare accuratamente ... automaticamente (e semplicemente!) Aumenta il costo di cracking della passphrase di 20.000 volte .

In alternativa, puoi usare il dizionario americano-inglese-grande che è distribuito con alcuni Linux, che è 163.730 parole. Ciò ridurrebbe il nostro caso estremo a 5 parole. E invece di sprecare energia nel memorizzare le variazioni di battitura, puoi migliorare il tuo vocabolario! :)

    
risposta data 14.09.2017 - 17:21
fonte

Leggi altre domande sui tag