Quanto dura una passphrase per essere sicura come una raccolta casuale di lettere, cifre, punteggiatura, ecc.?

0

Se si utilizza una passphrase che è grammaticale, come "Ho messo le mie chiavi sotto lo zerbino perché sono al sicuro lì." ... quante parole (in media) deve contenere per essere sicuro come una password con ~ 14 caratteri, come 28fjha9; 582g-jg? (diciamo che ammettiamo 26 lettere minuscole, 26 maiuscole, 10 cifre e 10 segni di punteggiatura, quindi totale di 72).

Ho sentito dire che solo poche migliaia di parole inglesi sono comunemente usate, quindi diciamo che ci sono 5000 parole possibili. Se la passphrase non fosse grammaticale, usare 8 parole ci darebbe una migliore entropia rispetto a una password di 14 caratteri (assumendo che le parole non fossero tutte super brevi).

5000^8 = 3.906*10^29 and 72^14 = 1.006*10^26

Tuttavia, se la nostra passphrase è grammaticale, penserei che questo limiti severamente il numero di combinazioni.

Data questa restrizione sulla passphrase, quanto tempo deve essere per essere sicuro come una password di 14 cifre composta casualmente di ~ 72 caratteri? Che dire se applichiamo qualche restrizione sulla password, prevedendo che sarà composta principalmente da parole del dizionario e qualche carattere in più?

EDIT: Ho appena realizzato che il mio calcolo di 5000 ^ 8 non tiene conto della punteggiatura e delle lettere maiuscole, quindi presumibilmente sarebbe molto meglio.

    
posta AmadeusDrZaius 15.08.2014 - 22:35
fonte

4 risposte

2

Purtroppo non penso che il nostro settore abbia le informazioni di cui avremmo bisogno per rispondere alla tua domanda. Mentre hai ragione che passare da una sequenza casuale di parole a una sequenza di parole grammaticamente valida offre molte meno combinazioni, non è una risposta facile determinare quante combinazioni possono essere prodotte. Ed è davvero capire che ti permette quindi di confrontarli con password casuali.

Man mano che aumenti il numero di parole in una sequenza, aumenti anche in modo esponenziale il numero complessivo di possibilità da controllare, il che comporta il problema di non avere abbastanza tempo / potenza di calcolo per controllarle tutte. Quindi, mentre è possibile controllare una sequenza specifica abbastanza velocemente, non è possibile controllare tutte le sequenze possibili molto velocemente una volta raggiunto un certo numero di parole (6, forse 7?). Pre-tagging delle parole con la loro parte di discorso pertinente e costruendo le possibilità di frase basate sulla selezione di tag appropriati sarebbe più veloce di un approccio a forza bruta, ma non so quanto più velocemente. Non credo che raggiungeremo le combinazioni accettabili da 1.006 * 10 ^ 26 prima di colpire il muro computazionale. Potrei sopravvalutare il peso di questo lavoro, ma questo è il mio primo sospetto.

Poiché il documento CMU (Effetto della grammatica sulla sicurezza delle password lunghe) di cui parla @ Steve-dl, ha anche il problema che gli aggressori riducano ulteriormente quella serie di sequenze grammaticali accettabili a probabili sequenze grammaticali. Questo è il posto dove ho visto focalizzata la maggior parte delle ricerche sulla crackphrase cracking. Usando entrambe le sequenze di parole tratte direttamente da fonti pubbliche (titoli di canzoni / testi, passaggi di libri, citazioni famose, frasi di wikipedia, ecc.) O attacchi combinatori di frasi parziali ("iloveto" + voce di elenco di parole) cercano di concentrarsi sulle scelte probabili. Ma il numero di combinazioni di parole che questo produce varierà da attaccante a malintenzionato, quindi è ancora difficile dire esattamente quali numeri possono produrre questi approcci.

Quindi, per avere una frase di accesso "sicura" grammaticalmente corretta, non dovrai solo assicurarti che sia formata da una combinazione di parole sufficientemente lunga, ma assicurati anche che non sia apparsa sui media popolari che potrebbero far parte di una persona malintenzionata lista di parole.

    
risposta data 16.08.2014 - 00:50
fonte
8

Il testo originale di Shannon sull'argomento e ulteriori ricerche danno all'inglese grammaticale circa 1,3 bit di entropia per carattere. È possibile calcolare l'entropia di una password casuale aumentando lo spazio dei caratteri alla potenza della lunghezza della password e quindi prendendo la base di registro 2 di tale valore, ad es. una password di n -character creata usando i 96 caratteri ASCII stampabili avrà un'entropia di log2 (96 ^ n).

Da questo, è possibile calcolare la lunghezza del testo inglese necessario per ottenere la stessa sicurezza. Ad esempio, una password casuale di otto caratteri è equivalente a (log2 (96 ^ 8) /1.3) o una frase di 40 caratteri.

    
risposta data 16.08.2014 - 00:20
fonte
1

Stai confrontando mele e arance.

Proprio come si può capire che cosa una parola del dizionario rischia di essere basata su quali lettere sono state digitate prima (o una parola che fa parte del 'linguaggio delle password', come fa Telepathwords, che è fondamentalmente lo stesso problema di NLP con un corpus migliore per allenare le tue previsioni), puoi capire quali saranno le prossime parole di una frase non appena avrai un corpus su cui basare le tue previsioni.

Assumendo ciò puoi considerare la lingua dei tuoi obiettivi, il dominio del servizio in cui il fattore è in uso e qualsiasi perdita di credenziali preventiva come informazione precedente e motivo in termini di perdita di informazioni. Di tutte le possibili combinazioni di parole (grammaticalmente corrette) quante sono suscettibili di essere semanticamente corrette (analisi semantica latente di base sul corpus di una lingua) e quali sono più rilevanti per il tuo utente (che è una sorta di problema di apprendimento della disambiguazione del significato)? / p>

Ciò che intendo è che, in pratica, l'alfabeto della passphrase rende più facile per gli utenti creare passphrase significative e mentre ciò è utile per l'usabilità, significa che è più probabile trovare informazioni pregresse che reali password (al contrario delle password effettivamente scelte dall'utente). È molto bello voler mettere i punteggi su credenziali diverse con le metriche "oggettive", ma l'ambiente e il modo in cui vengono utilizzati contribuisce molto di più alla loro sicurezza relativa e alla loro usabilità rispetto alla loro stessa forma.

    
risposta data 15.08.2014 - 23:30
fonte
1

Ho effettuato un'analisi per Google sulla base di un campione di 15 milioni di password con hash non salate utilizzate dagli utenti effettivi per gli account Google. Alcune slide basate sui risultati sono pubblicate qui, "Limits to Anti phishing".

link

Se si guarda a pagina 14, il grafico a bolle mostra la frequenza delle password comuni. Una delle più grandi conclusioni è che un dizionario di appena 1000 password viene utilizzato dal 6,1% degli account. Circa 1 milione di password sono utilizzate dal 50% degli account. Pertanto, gli attacchi di forza bruta a un hash salato noto sono abbastanza banali e persino gli attacchi di indovinuazione delle password online possono avere relativamente successo contro una frazione di account, a meno che il tuo sistema di login non rilevi tentativi di indovinare la password online (che tutti i sistemi sicuri dovrebbero).

Nella misura in cui 1000 password sono condivise da una frazione di account, 1000 ~ 2 ^ 10, che è coerente con la stima 8 x 1,3 = 10,4 bit.

    
risposta data 16.08.2014 - 04:55
fonte

Leggi altre domande sui tag