La forza di una password dipende dal processo che ha generato la password?

3

In questa domanda , discutendo se link è sicuro da usare, @ThomasPornin ha commentato

"Mathematically, the strength of a password depends on the process which generated the password, and cannot be measured on the password alone"

È vero? Se è così, qualcuno può spiegare perché?

[Aggiornamento] Dopo aver visto la risposta di @ Pascal, il centesimo è caduto.

L'avevo interpretato come "per ogni password data, come sei arrivato a fare la differenza", piuttosto che "i diversi metodi hanno risultati diversi, alcuni più sicuri di altri".

    
posta Mawg 04.02.2017 - 11:11
fonte

3 risposte

3

Questo è principalmente corretto.

La forza della password viene misurata in base alla grandezza dello spazio di ricerca per la password specificata (supponendo che ogni password nello spazio di ricerca sia ugualmente probabile, ne parleremo più avanti). Lo spazio di ricerca per una password di una sola cifra è molto piccolo {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} e un attacco di forza bruta (che prova ogni combinazione) da un umano può trovare la tua password in circa cinque secondi. Un computer veloce o appositamente costruito può farlo in meno di un nanosecondo.

Una password composta solo da cifre lunghe 100 cifre fornisce uno spazio di ricerca molto più ampio. Ci sono 10 ^ 100 combinazioni possibili, quindi un attacco di forza bruta, in media, dovrà provare metà di queste combinazioni per trovare la tua password. Ci vorrà molto, molto tempo, anche se hai un computer in grado di provare un milione di combinazioni al secondo.

Tuttavia, se scegli il numero di 100 cifre in modo non casuale, ad es. se preferisci una combinazione di 100 cifre che consiste di alternare 1 e 0 perché è più facile da ricordare, lo spazio di ricerca più ampio non ti proteggerà. Un attaccante che tenga conto del comportamento umano programmerà il suo computer per provare prima combinazioni come questa e quindi troverà la tua password molto prima che se avessi scelto le tue 100 cifre in modo casuale.

Quindi il processo attraverso il quale si arriva alla tua password è rilevante. Se non si utilizza un processo veramente casuale, è probabile che la password sarà debole e facilmente incrinata.

Se mi dai una password da guardare, a volte posso determinare che si tratta di una password errata in una volta. Se la tua password è "123456", o "password", o qualsiasi altra delle password più comuni che le persone usano in questi giorni, è ovviamente una pessima password, e posso determinarla guardando la password da sola, semplicemente perché vedo che non è affatto casuale. Ma se mi dai qualcosa come "15-L-s-04-02", è più difficile per me determinare se questa è una password sicura o meno. Se hai una figlia chiamata "Liv Sarah" che è nata il 2 aprile 2015, la password è molto debole se abbiamo a che fare con un aggressore che conosce e ti indirizza in modo specifico, anche se lo spazio di ricerca non è poi così male ( cifre, un carattere speciale, caratteri minuscoli e maiuscoli, 12 caratteri lunghi - > spazio di ricerca di dimensioni 2 ^ 73 o una password con una forza di 73 bit, che non è molto buona, ma comunque abbastanza decente).

Quindi, le cattive password possono essere determinate semplicemente guardando la password. È molto più difficile determinare se una password è buona semplicemente guardandola, perché è importante sapere se ha un qualche tipo di significato per te che un'altra persona potrebbe in definitiva indovinare.

Tuttavia, di solito possiamo determinare se una password è buona o cattiva solo guardandola perché conosciamo la maggior parte delle abitudini di password delle persone, quindi anche se non conosco il nome o il compleanno di tua figlia, so ancora che un sacco di le persone usano nomi, iniziali e componenti della data come parti delle loro password, quindi programmerei il mio computer per provare prima alcune migliaia di password più comuni, poi provate combinazioni con componenti o iniziali data, quindi mescolare questi componenti in combinazioni diverse ecc. e il "15-Ls-04-02" sarebbe ancora trovato molto, molto prima rispetto a quando avessi provato tutte le possibili combinazioni di 12 caratteri.

    
risposta data 04.02.2017 - 11:42
fonte
4

Un controllore della forza della password non può sapere in che modo la tua password è casuale, ciò che fa un controllore della forza è provare una combinazione di metodi di generazione / indovinello preprogrammati e provare a valutare la forza di una determinata password basata su quelli.

Ad esempio, se inserisci la password:

correct horse battery staple

Il sito ti offre 15 milioni di anni, il che è fuorviante perché ho generato quella password in modo non casuale leggendo un certo fumetto .

O una password come:

passwordpasswordpasswordpassword

afferma di essere 2 miliardi di anni, nonostante la password ovviamente non casuale.

Il punto è che, se il metodo di generazione della password che usi non è preprogrammato al calcolatore della forza, allora un correttore forza può dare l'impressione che una password sia più strong di quanto sia in realtà.

I correttori di password migliori come zxcvbn hanno più schemi preprogrammati da controllare, ma è ancora limitato dallo stesso problema fondamentale.

    
risposta data 04.02.2017 - 11:56
fonte
1

La definizione pratica della forza di una password è quanto tempo impiega uno strumento per craccare la password per craccarla, cioè quante sono le ipotesi sbagliate che farà il cracker prima di trovare la password corretta.

Non c'è modo di ottenere un valore preciso da questa definizione, poiché dipende dallo strumento di cracking. Diversi strumenti proveranno le password in un ordine diverso, possibilmente anche casuale, e non potrai conoscere tutti gli strumenti di cracking in circolazione, per non parlare dei nuovi strumenti e configurazioni che le persone useranno sulla tua password in futuro.

for any given password, how you arrived at it makes a difference

C'è un nucleo di verità in questo. Se pubblichi una password, il suo punto di forza diventa essenzialmente 0 - i cracker lo inseriranno nella loro lista. La forza della password è ciò che viene tenuto segreto dai cracker. Finché non hai pubblicato la password, sai qual è la sua forza precisa, il meglio che puoi fare è ottenere un'approssimazione. E l'unico modo per ottenere tale approssimazione è conoscere il processo con cui sei arrivato alla password. Se c'è qualcosa nel processo di generazione della password che è segreto, così che i cracker non sanno come lo hai prodotto, allora la tua password è strong almeno quanto quella di indovinare quel segreto.

Il segreto migliore è un input completamente casuale. Quanta incertezza c'è in un'informazione è chiamata entropia , e l'input casuale ha entropia massima. Se generi una password in modo casuale tra un insieme di 2 scelte N e mantieni la scelta segreta, allora la tua password ha entropia di N bit. Ciò garantisce che la forza della password sia almeno 2 N : poiché un cracker non ha informazioni sulla tua scelta casuale, la cosa migliore che può fare è provarli tutti, e in media riuscirà dopo 2 tentativi N -1 . Qualunque cosa nella password che non sia puramente casuale aumenta le probabilità che il cracker abbia successo prima, perché possono applicare la stessa selezione non casuale che hai fatto, mentre non possono ripetere una selezione casuale e ottenere lo stesso risultato eccetto per coincidenza .

Dato solo la password stessa, non c'è modo di sapere quanta segretezza è andata alla sua generazione, quindi non c'è modo di stimarne la forza (tranne "0, dato che mi hai appena detto di cosa si tratta").

Vedi anche le nostre numerose domande sull'argomento, tra cui:

risposta data 04.02.2017 - 17:04
fonte

Leggi altre domande sui tag