In che modo la grammatica corretta influisce sulla sicurezza della password?

13

Quando si utilizza la metodologia della password XKCD , l'entropia viene calcolata esclusivamente sulla base di singole parole, assumendo che le singole parole siano indipendenti. Questo, naturalmente, non è necessariamente un presupposto valido, a meno che non lo si assicuri specificatamente quando si generano password; e una password composta da quattro parole casuali e indipendenti è ancora più difficile da ricordare di una frase grammaticalmente corretta. zxcvbn riporta analogamente l'entropia basata solo sulle singole parole trovate, senza apparentemente effettuare alcun calcolo di frequenza relativa.

Presumibilmente, con un database di grammi sufficientemente grande, è possibile generare un modello statistico ragionevolmente sofisticato degli usi di parole dell'inglese corretto e ordinare le ipotesi di password del modulo XKCD di conseguenza. Quindi, la domanda: quanta entropia viene persa se si utilizza una frase grammaticale memorabile per una password, confrontandola con lo stesso numero di parole selezionate in modo indipendente? Per quanto tempo deve essere una password grammaticale per fornire entropia / sicurezza equivalenti? I cracker di password utilizzano effettivamente questo metodo?

    
posta Tom Hunt 19.09.2015 - 00:28
fonte

3 risposte

8

In generale, qualsiasi informazione che può restringere lo spazio di ricerca per una password lo farà ridurre la forza di tale password. Quindi, in teoria, avrebbe senso presumere che le password grammaticalmente corrette sono potenzialmente più deboli di quelle che sono a raccolta di parole non correlate o errori grammaticali deliberati. Però, calcolare esattamente quali sarebbero le differenze è estremamente difficile.

Molti programmi di cracking delle password ti permetteranno di definire schemi complessi. Per Ad esempio, è stato osservato che le persone usano spesso le date come modo di includere numeri in una password, ad esempio password1961 o anche password171067 (o password101767 per US data), quindi alcuni cracker di password cercheranno cose come [parola-dictonary] [anno] e [dizionario-parola] [data], dove i numeri nel anno / data sarà limitato a cifre che sarebbero valide e all'interno di un 'atteso' intervallo (ad esempio, l'anno / data è correlato al periodo corrente / recente o alla data dell'utente di nascita ecc.). Allo stesso modo, gli studi sulle password indicano che le persone tendono a fare cose come put caratteri "speciali" ai boarder dei componenti della password, ad es. password: 1972. Questo potrebbe suggerire che sarebbe una buona idea non utilizzare le cifre di questo formato e prendere in considerazione utilizzando numeri a 3, 5, 7 cifre anziché 4 o 6 e aggiungendo caratteri speciali / punteggiatura personaggi, fallo in / insolito / posizioni, ad esempio pas sword1972 (e, naturalmente, non usare 'password': - (

Come cracker, la sfida di usare la grammatica sarebbe come modellarla. Per Ad esempio, l'inglese ha una grammatica molto complessa. Questo è in parte il motivo per cui il linguaggio naturale l'elaborazione è una tale sfida. Teoricamente, se potessi definire la grammatica con sufficiente precisione e un dizionario abbastanza grande, è possibile generare un sistema che potrebbe produrre un dizionario di / valid / frasi. Tuttavia, questo sarebbe ancora rappresentano uno spazio di ricerca molto ampio. Se sai esattamente quanti caratteri ci sono nella password, questo aiuterebbe a ridurre lo spazio di ricerca, ma sarebbe molto grande. Ciò che dovrebbe essere determinato è quanto più piccolo sarebbe un simile dizionario essere paragonato a un dizionario simile costituito da parole casuali concatenate insieme. Sarebbe più piccolo, ma se fosse sufficientemente più piccolo da realizzare nessuna differenza pratica è sconosciuta. Se il dizionario basato sulla grammatica significava una media tempo di ricerca di 50 anni e il dizionario della parola casuale rappresentava una ricerca media tempo di 500 anni, in realtà, nessun approccio sarà utile (assumendo non ci sono altre ottimizzazioni che potrebbero ridurre il tempo a un livello che sarebbe pratica).

Piuttosto che un dizionario basato su grammatica, probabilmente compilerei un dizionario basato tra virgolette, poesie famose e testi di canzoni. La mia teoria è che quando le persone usano a frase come password, quella frase sarà qualcosa che è facile da ricordare e quindi probabilmente basato su una canzone, poesia o citazione preferita. Questo sarebbe un pari dizionario più piccolo. La sfida sarebbe nel costruire il database e assicurarlo è sufficientemente completo Probabilmente qualcosa che sta diventando più facile dato tutto i repository digitali di citazioni, canzoni, poesie ecc. là fuori.

Personalmente, non mi preoccuperei troppo di questo. Ovviamente, sarebbe meglio non farlo usare frasi ben note e sarebbe abbastanza importante non usare una frase che qualcuno potrebbe essere in grado di identificarsi tramite tecniche di ingegneria sociale. Se il tuo a militare, non usare citazioni / discorsi militari famosi, se sei un cristiano, evitare di usare citazioni dalla Bibbia, se sei un fan ossessivo di alcuni cantante / attore / qualunque cosa, evitare di usare citazioni da quella persona. In sostanza, evitare di usare tutto ciò che qualcuno che fa qualche ricerca su di te potrebbe essere in grado di usare per restringere lo spazio di ricerca. Suggerirei anche di usare una frase il più lunga possibile. Un molto la citazione lunga nota è probabilmente più strong di un insieme più breve di parole casuali semplicemente perché lo spazio di ricerca è più grande.

Se riesci a ricordare un insieme casuale di parole, fallo. Tuttavia, se non puoi, allora usa una frase grammaticalmente corretta, ma fallo il più a lungo possibile. Ricordando il la password è probabilmente così importante da garantire che sia strong. Ho trovato spesso il la parte più debole di molti sistemi è il processo di recupero della password e pensate che dovreste fai tutto il possibile per evitare di dover utilizzare un simile processo. Inserisci la frase in ordine inverso (o qualche altro motivo che puoi ricordare), inserisci caratteri speciali e numeri nelle parole, non tra loro ed evitare modelli numerici come 2, 4 e 6 cifre e stare lontano da citazioni / frasi che qualcuno potrebbe associare tu.

    
risposta data 30.10.2015 - 23:18
fonte
4

Il documento di ricerca Effetto della grammatica sulla sicurezza delle password lunghe risponde alla tua domanda. Quello che segue è l'abstract del documento.

L'uso di password lunghe come frasi o frasi come "abiggerbetterpassword" e "thecommunistfairy" sta aumentando. In questo articolo, studiamo il ruolo delle strutture grammaticali alla base di tali password nel diminuire la sicurezza delle password. Dimostriamo che i risultati dello studio hanno un impatto diretto sulla progettazione di politiche di password sicure e su password cracker utilizzati per rafforzare la sicurezza delle password. Usando un modello analitico basato su tag Parts-of-Speech mostriamo che la diminuzione dello spazio di ricerca a causa della presenza di strutture grammaticali può essere superiore al 50%. Un risultato significativo del nostro lavoro è che la forza delle password lunghe non aumenta in modo uniforme con la lunghezza. Mostriamo che l'uso di un dizionario migliore, ad es. Google Web Corpus, possiamo crackare password più lunghe di quelle precedentemente mostrate (20,5% contro 6%). Sviluppiamo un algoritmo di cracking proof-of-concept basato sulla grammatica per migliorare l'efficienza cracking delle password lunghe. In una valutazione delle prestazioni su un set di dati di password lunghi, il 10% del set di dati totale è stato escluso esclusivamente dal nostro algoritmo e non da password cracker all'avanguardia.

    
risposta data 16.01.2016 - 06:10
fonte
3

Prima di tutto: se stai selezionando le parole in modo non casuale (per seguire le regole grammaticali, per esempio), allora questa non è affatto una password in stile XKCD . Dalla mia comprensione, "stile XKCD" significa solo diceware con un elenco di parole più piccolo.

Un problema con frasi grammaticalmente corrette è che, a meno che non siano prive di senso, probabilmente sono abbastanza prevedibili. Non so esattamente come sia prevedibile, ma so che in pratica qualsiasi cosa nella stampa non è sicura come base per una password . Quindi, dovrai in qualche modo generare una frase unica che nessuno avrebbe pronunciato prima.

Detto questo, dovresti comunque essere in grado di creare una passphrase sicura che (liberamente) segue le regole grammaticali facendo frasi senza senso casuali come un Mad-Lib. Basta fare diceware utilizzando un diverso elenco di parole per ogni parola. Ad esempio, il tuo passphrase generator potrebbe generare password nel formato:

{article} {adjective} {noun} {adverb} {verb} {article} {adjective} {noun}, {exclamation}{punctuation}

Ad esempio, "L'elegante aardvark lancia stupidamente un dirigibile bitorzoluto, yikes!"

Penso che una "frase" del genere sarebbe molto più facile da ricordare di 6 parole completamente casuali tutte mescolate insieme, ma ovviamente il tuo elenco di parole totale deve essere più grande per ottenere una sicurezza simile.

Potresti avere una lista di 4096 ciascuno di nomi, avverbi, verbi e aggettivi (cioè 16384 parole in totale). Lo renderemo semplice e diciamo che hai 2 segni di punteggiatura (. O!) E 32 esclamazioni comuni ("oh mio", "uh-oh", "ratti", ecc.). Quindi puoi calcolare l'entropia come:

1 + 12 + 12 + 12 + 12 + 1 + 12 + 12 + 5 + 1 = 80

Si noti che è la dimensione degli elenchi di parole per ogni posizione di parola che determina completamente l'entropia. L'utente malintenzionato potrebbe sapere esattamente come generare la tua password e, a meno che tu non sia davvero sfortunato e riesci a generare un testo di canzone comune, puoi comunque prevedere quanto sia sicura la password come la regola dello stile XKCD.

La chiave è che ogni parola deve essere veramente casuale, e ogni lista di parole deve essere grande o devi fare frasi molto lunghe.

Probabilmente è più facile ottenere elenchi di parole di grandi dimensioni che non suddividano le parole per parte del discorso, ed è più facile distribuire UN elenco di parole e una regola facilmente comprensibile, ma la matematica dovrebbe essere esattamente la stessa.

Dichiarazione di non responsabilità: non sono un esperto in sicurezza, ma penso capisco la matematica e i concetti coinvolti qui.

    
risposta data 04.12.2015 - 17:56
fonte

Leggi altre domande sui tag