it-swarm.dev

Quanto è affidabile un correttore di password?

Ho testato lo strumento di Microsoft disponibile qui che verifica la validità della password e le valuta. Per una password come "Pranzerò stasera", lo strumento valuta la sua forza come "MIGLIORE" e per una password come "th1 $ .v4l" la valuta come "Media".

Mi chiedo quanto sia importante la lunghezza della password. In questo caso la prima password è migliore in base al loro strumento ma è davvero migliore? È basato su parole del dizionario e non ha combinazioni di numeri e altri caratteri oltre agli spazi, e sembra molto facile da decifrare (senza considerare la forza bruta).

Questo strumento dà la precedenza alla lunghezza anziché alla forza effettiva?

74
iijj

"Non considerare la forza bruta" - questo è esattamente ciò che misurano questi strumenti.
Ovviamente non provano ingegneria sociale, né cercano di scoprire se è il compleanno del cane della prima ragazza dell'utente. L'attaccante potrebbe saperlo, ma questi strumenti no.

Quello che misurano è semplicemente la difficoltà per uno strumento di bruta forzatura di spezzarlo. Nemmeno l'entropia della password, che è un attributo del metodo di generazione, è solo una stima di quanto tempo impiegherebbe uno strumento di bruteforcing per trovare con successo la password corretta.
Ovviamente, l'entropia ha un effetto su questo, ma è solo totale entropia che conta, non entropia per personaggio. Quindi sì, avere molte opzioni equi-probabili per ogni personaggio si aggiunge all'entropia, ma la lunghezza può svolgere un ruolo ancora più importante nel rendere una password non crackabile, aumentando l'entropia per personaggio a un potere superiore, per carattere contare. Questo rende molto più alto entropia totale, che è l'unica cosa che conta.

Quindi, nel tuo caso - sì, la passphrase di soli 32 caratteri alfa è molto più forte della password di punteggiatura di 8 caratteri.


Proverò a fare un po 'di matematica qui per un po': (per favore, correggimi quando sbaglio):

Se assumiamo la tastiera standard in stile americano, ci sono 85 possibili caratteri stampabili (possibilmente essere in grado di raschiare qualche altro, ma lasciamo andare per questo per ora): lettere minuscole + lettere maiuscole + numeri + punteggiatura standard + spazio.
Ciò garantisce una resistenza di ~ 6,3 bit per personaggio; a 8 caratteri di lunghezza la password ti dà una forza di ~ 50,4 bit.
Nota davvero molto forte ... Anche se aggiungessimo altri personaggi "speciali", non lo aggiornerai molto.

Ora, per i tuoi 32 caratteri, passphrase solo alfa ...
Supponiamo solo lettere minuscole e maiuscole (anche se non ne hai usata nessuna), più uno spazio (U + 32). Neanche numeri ...
Questo ti dà 54 possibili caratteri, circa ~ 5,8 bit per carattere. Con una lunghezza di 32 caratteri, la resistenza supera i 185 bit. Sostanzialmente più forte. E questo è anche senza numeri, che di solito sono accettati anche in schemi di password "semplici".


Bruce Schneier parla spesso di come passare a passphrase memorabili sarebbe molto più sicuro delle password brevi e casuali dall'aspetto strano.
Ora capisci perché.

60
AviD

Sei preoccupato che, poiché la passphrase utilizza le parole del dizionario, potrebbe essere più facile decifrare di qualcosa che deve essere forzato brutalmente.

tl; dr: questa è una preoccupazione teorica valida, ma in questo momento non è una preoccupazione pratica.

"Stasera pranzerò" è una frase di cinque parole che usa parole tra le 5000 più comuni in lingua inglese. Ingenuamente, indovinare è isomorfo indovinare una password di 5 lettere in un alfabeto di 5000 lettere, che è 3x10 ^ 18 possibilità. È quasi uguale a una password di 10 caratteri che utilizza lettere maiuscole e minuscole, numeri e simboli.

Naturalmente, un programma di cracking abbastanza intelligente potrebbe ridurlo notevolmente. La frase è una prosa inglese standard, che segue regole così rigide che ha un tasso di entropia delle informazioni di circa 1 bit per lettera . Ciò significa che la tua frase ha 33 bit di entropia, rendendola complessa solo come una password perfettamente casuale di 5 caratteri stampabili ASCII.

Non è molto complesso.

Tuttavia, per sfruttare questa mancanza di complessità, avresti bisogno di un "cracker passphrase inglese" specializzato in grado di ottimizzare qualcosa come markov chain modelling in kernel per l'elaborazione GPGPU. Per quanto ne so, nulla di simile è in fase di sviluppo in questo momento. Quindi, a meno che qualcuno con le risorse per creare quel software desideri la tua passphrase, dovresti essere al sicuro per un bel po '.

17
user502

L'entropia è una cosa strana da misurare.

Pubblicazione speciale NIST 800-63, Linee guida per l'autenticazione elettronica include le guide per la stima della validità della password:

L'entropia varia notevolmente a seconda che una password sia selezionata da un utente o sia generata casualmente. Statisticamente, indovinare il primo carattere di una password selezionata da un utente è difficile, ma indovinare il secondo è più facile e il terzo è ancora più facile. Le linee guida del NIST danno al primo carattere 4 bit di entropia quando si usano i 94 caratteri disponibili sulle tastiere standard, ma solo 2 bit per ciascuno dei successivi sette caratteri e così via.

Le password selezionate casualmente non visualizzano i pattern, quindi ogni personaggio ha lo stesso livello di entropia, circa 6,6 bit.

Ciò significa che una password di otto caratteri selezionata da un utente ha 18 bit di entropia, mentre una password casuale della stessa lunghezza ha circa 52,7 bit.

In altre parole, se è possibile determinare i primi 3 caratteri della mia password sono

Soggezione

Quindi le probabilità che il prossimo personaggio sia s sono molto più alte di *.

Quindi, quando diciamo che un carattere password può essere any carattere, non è proprio vero; la maggior parte delle persone usa parole che hanno schemi forti e riducono implicitamente l'insieme possibile dei seguenti caratteri, producendo così una password con entropia inferiore (casualità).

15
Jeff Atwood

Non sono sicuro di come "pranzerò stasera" è vulnerabile dal dizionario, è una frase di sette parole. Dove "th1 $ .v4l" è una frase di due parole con un carattere unito e la sostituzione del personaggio è qualcosa che i cracker di password hanno affrontato da sempre.

Alcuni tester di password usano cracklib + ajax come test con una piccola base di regole per eliminare la password "this.val".

14
hpavc

La domanda del affidabilità dei controlli di sicurezza della password si estende anche al sicurezza del controllo in generale. È spaventoso vedere una proliferazione di misuratori di forza delle password online. Stai esponendo inutilmente la tua password ad alcuni siti là fuori su Internet! Anche le applicazioni locali per il controllo della password possono essere nefaste. Afferma che il sito utilizza javascript e non trasmette mai la password su Internet non può essere considerato attendibile. Alcuni siti di test sulla sicurezza delle password sono sicuramente gestiti da cappelli neri, che li aggiungono semplicemente ai loro dizionari insieme a qualsiasi altra informazione che possano raccogliere su di te. Altri siti sono gestiti da persone con buone intenzioni, ma possibilmente cattive implementazioni, come un server vulnerabile o mancanza di https. E altri ancora sono vulnerabili agli attacchi di "autorità" che hanno modi di convincere il sito a rivelare ad es. le password inviate da determinati intervalli di indirizzi IP.

Suggerisco a chiunque utilizzi tale sito di non inviare mai una password che intende effettivamente utilizzare.

8
nealmcb

La lunghezza è quasi tutto quando si cerca di difendersi dagli attacchi di forza bruta.

Anche i cracker di password di base consentono sostituzioni in stile 1337, quindi nel tuo esempio stai confrontando efficacemente una passphrase di 7 parole con una passphrase di 2 parole.

Finché si dispone di passphrase lunghe (in cui la definizione esatta di long può variare in base alle proprie esigenze, ma dovrebbe essere almeno superiore a 13 caratteri per ridurre al minimo le probabilità di un attacco da tavolo arcobaleno) si forza un attaccante a provare altre forme di attacco , come l'ingegneria sociale; scoprire dove hai scritto la passphrase; tenendo in ostaggio il tuo gatto ecc.

7
Rory Alsop

Teoricamente, i "misuratori di forza della password" non possono funzionare . Lo strumento vede solo il risultato del processo di generazione della password, mentre la "forza" della password è in realtà una proprietà del processo. Vedi questa risposta e quindi quella risposta per i dettagli.

Il meglio che un'applicazione misuratore di forza della password può darti è quanto tempo ci sarebbe voluto per infrangere la tua password - in altre parole, si presume che l'attaccante esegua esattamente lo stesso codice e non sappia più nulla di te. In pratica questo non è un presupposto ragionevole: l'attaccante, quando ti attacca, ti sta cercando bene. Affidarsi a un misuratore di password per la sicurezza è come pregare che tutti gli aggressori siano incompetenti: è una specie di "salto di fiducia".

7
Thomas Pornin

Guardando il Javascript per quello strumento Microsoft sembra che abbia solo un elenco limitato di parole del dizionario (vedere le righe 264 in poi nel file js ), quindi ciò potrebbe spiegare perché la tua passphrase sta ottenendo un punteggio più alto di quanto forse dovrebbe.

Personalmente consiglierei questo tester di sicurezza della password fornisce una buona suddivisione degli elementi che compongono la tua password e ti dice come può essere migliorata. Valuta la tua password "sto andando a pranzo stasera" al 56% e la tua seconda password "th1 $ .v4l" al 74% che sembra più realistica.

Tuttavia, questo strumento non usa alcun elenco di parole: la tua passphrase è contrassegnata come minuscola solo per essere tutta minuscola, mentre "stasera pranzerò!" ottiene il 98%. Puoi trarre le tue conclusioni sull'utilità della percentuale di età.

Per quanto riguarda l'effetto sulla lunghezza del checkout del tempo di cracking questo articolo . Si noti che risale al 2009, tuttavia, e i cracker di password basati su GPGPU ora possono gestire 10 ^ 9/sec (il livello più alto di attacco di "classe F" nell'articolo) su un singolo PC da gioco/workstation con una GPU da $ 500 carta.

5
Mark Davidson

Di recente ho visto un fumetto sul giornale. O forse era una copia digitale online di un fumetto, non ricordo.

Ha illustrato proprio questo dibattito. E ora ti spiegherò il punto che ha fatto:

Solo perché una password è breve non significa che sia facile da indovinare, come nel caso di "th1 $ .v4l". Ma solo perché una password è lunga non significa neanche che sia facile da indovinare, come nel caso di "stasera pranzerò".

Il fatto è che nessun hacker umano serio siederà lì e indovinerà la tua password. Potrebbero usare le parole del dizionario, ma quei dizionari non contengono tutte le frasi possibili. Solo parole.

No, ciò che fanno gli hacker (quando hanno esaurito un tipico dizionario di WORDS), è che di solito fanno passare sistematicamente il computer attraverso ogni possibile combinazione. Cominciando a finire. Se vengono forzati lungo questo percorso, più breve è la password, peggio. Più a lungo, meglio è. Indipendentemente se ci sono cifre o simboli. Cifre e simboli contano solo per gli umani che ricordano e per gli indovinelli. Per un computer, sono la stessa cosa ... una sequenza di 1 e 0 ... e non fa differenza.

Fatti un favore. Mantenerlo lungo ma semplice. Brevi e complessi potrebbero costare tempo agli hacker, ma lunghi e semplici faranno la stessa cosa. La domanda è: vuoi una password facile da ricordare o difficile da ricordare?

4

La forza della password può essere stimata solo da solo tu o da qualcun altro se dici loro come crei le tue password. Ad esempio, se uso un generatore di password casuale che utilizza un set di 50 caratteri e la mia password è lunga 8 caratteri, la mia password sarà 1 tra circa 3,9 × 1013 o 245. Se uso password basate su Pinyin cinese e la mia password è una frase di 4 parole, dato che ogni parola è fuori da un possibile 2.05 , la mia password è 1 su un possibile 1,8 × 1013. La romanizzazione Pinyin media di un carattere cinese è lunga da 3 a 4 caratteri e fa una password "4 parole" di circa 16 caratteri. Tuttavia, questa password di Pinyin è più debole della password di 8 caratteri generata da un set di caratteri di 50.

Se un utente malintenzionato sa come è stata generata una password (diciamo esaminando le password di testo semplice rubate da alcuni siti non sicuri) da una determinata persona, ha le conoscenze necessarie per ridurre la difficoltà della forzatura bruta di molto ! Poiché sanno che non stai più utilizzando tutti i possibili caratteri sulla tastiera, possono eliminare combinazioni impossibili e risparmiare tempo.

La prossima volta che generi una password, pensa all'algoritmo/metodo che stai usando per generarne una. Utilizzo di Password Safe per generare una password di 21 caratteri da un set di 72 caratteri ([email protected]#$%^&<>/~\?abcdefghijkmnopqrstuvwxyzandABCDEFGHJKLMNPQRTUVWXY346789), ottieni circa 1,0 × 1039 possibili combinazioni o 130 bit di sicurezza.

3
Kevin Li

Bene, tutti gli strumenti di controllo della forza della password verificano quanto sforzo sarà necessario per trovare la password usando la forza bruta e l'attacco del dizionario.

come se si confrontano i risultati qui di entrambe le password.

http://www.passwordmeter.com/

"th1 $ .v4l" è

Password complessa con il 74%

"Pranzerò stasera" è

Buona password 56%

questa password impiegherà meno tempo a decifrare usando la forza bruta.

3
mr_eclair

Bene, se definisci la forza di una password come la sua difficoltà o probabilità di essere violata, quindi quasi in modo intuitivo, la forza di una password è più una funzione della sua lunghezza che della sua difficoltà da ricordare.

Quando un potenziale aggressore non sa nulla della tua password e può usare solo la forza bruta per decifrare la tua password, una password più lunga che è molto più facile da ricordare, come

"stasera pranzerò"

ci vorrà più tempo per craccare di

"Th1 $ .v4l"

semplicemente perché ci sono più personaggi che l'attaccante dovrebbe indovinare correttamente per decifrare la password. Le password più lunghe presentano uno spazio di ricerca più ampio da esaurire, danno al tuo ago (password) un molto più grande pagliaio per nascondersi.

3
Daniel Miladinov

I controlli di sicurezza della password non sono generalmente affidabili. Tendono a fare affidamento su calcoli eccessivamente semplicistici che presuppongono che gli aggressori tenteranno solo di tentare di indovinare la tua password provando ogni possibile combinazione di caratteri, un'ipotesi che raramente è vera nella pratica.

In realtà, un utente malintenzionato motivato può escogitare una serie di strategie diverse per indovinare la tua password, alcune delle quali non è mai stato programmato di prendere in considerazione nessun programma di controllo della sicurezza della password.

Ad esempio, la password "! QAZXSW @ # EDC" potrebbe sembrare piuttosto casuale, fino a quando non ti rendi conto che l'ho scritta premendo un modello molto semplice di tasti su una tastiera inglese standard. Un utente malintenzionato che utilizza un programma progettato per indovinare le password basate sul layout di tastiera potrebbe facilmente decifrare tale password in pochi minuti. (E in effetti, sono stato Pwned's Pwned Passwords Checker indica che questa password esatta è già stata utilizzata e decifrata più volte.) Allo stesso modo, "vado a pranzo stasera" potrebbe sembrare forte per il tuo tipico controllo della forza della password, ma potrebbe essere facilmente decifrato da un utente malintenzionato utilizzando un programma progettato per indovinare frasi inglesi comuni.

There are controllori della sicurezza della password che sono migliori in questo genere di cose rispetto ad altri ( ZXCVBN , ad esempio, può rilevare il password basata su pattern di tastiera che ho fornito sopra e dare una stima della forza più realistica) ma alla fine non è sempre possibile dire quanto sia forte una password semplicemente analizzando la password stessa . Non è sicuro supporre che solo perché il controllo della sicurezza della password che stai usando non può indovinare quale metodo hai usato per scegliere la tua password, che un attaccante che prova a indovinare la tua password non lo farà. Tale presupposto è noto come "sicurezza per oscurità" ed è considerato una cattiva pratica su cui fare affidamento nella comunità della sicurezza delle informazioni.

Quindi cosa dovresti fare invece? Scegli le tue password in modo casuale, preferibilmente usando una fonte di casualità come i dadi che non possono essere indeboliti da pregiudizi umani naturali. In questo modo, anche se supponi che l'attaccante sappia esattamente come hai generato la tua password, puoi comunque facilmente calcolare quante ipotesi l'attaccante dovrebbe provare prima di indovinare correttamente la tua password.

Diceware è un buon esempio di tale metodo per generare password. Quattro parole Diceware casuali impiegheranno 77764/ 2 = ~ 1,83 quadrilioni di ipotesi in media da indovinare per un aggressore, anche se conoscono l'elenco esatto di parole da cui hai scelto la password. Le password generate da un gestore di password sono valide per motivi simili.

Per ulteriori informazioni su come scegliere le password in modo sicuro, consiglio la risposta di Thomas Pornin a "XKCD # 936: password complessa breve o passphrase lunga del dizionario?", Che fornisce dettagli sull'entropia delle password e su come calcolare la forza di una password generata casualmente.

1
Ajedi32