Non sicuro di richiedere numeri nelle password?

4

In precedenza, sono andato in un sito che richiedeva un numero e un carattere speciale, e mi ha fatto pensare: non renderebbe la password più facile alla forza bruta? Se si assume che la maggior parte delle password abbia circa 12 caratteri, non richiederebbe che un numero rimuova circa il 90% delle possibili password, rendendo la forza bruta molto più veloce?

    
posta tkbx 08.02.2013 - 01:03
fonte

4 risposte

8

Rimuove un sacco di password solo se si considera che tutte le combinazioni di 12 lettere erano possibili password. In pratica, gli utenti non considerano password casuali; vogliono usare password con un significato e non ce ne sono molte.

In altre parole, ciò che conta non è il numero di password che si adattano al campo di immissione della password, ma il numero di password distinte che l'utente sceglie tra (il "processo di generazione"). Richiedere una cifra aggiuntiva ingrandisce quello spazio per la maggior parte degli utenti. Gli utenti per i quali la cifra forzata riduce lo spazio delle possibili password sono gli utenti che scelgono password davvero casuali e anche a 11 lettere e 1 cifra, queste saranno forti.

    
risposta data 08.02.2013 - 01:11
fonte
4

Da un punto di vista puramente teorico, sì. L'insieme di tutte le stringhe di una determinata lunghezza sarà maggiore dell'insieme di tutte le stringhe con qualsiasi ulteriore restrizione su di esse.

Ma la banca scommette che lo spazio di password che l'utente praticamente sceglie è in realtà molto più piccolo dell'insieme di tutte le password possibili, e che richiedendo un numero e un carattere speciale sono aumentando il set di password che l'utente sceglierà dal momento che l'utente potrebbe non aver incluso tali restrizioni per conto proprio. (Tutte le altre cose uguali.)

E anche se una ragionevole percentuale delle password disponibili verrà effettivamente eliminata dai requisiti, ciò non importa, praticamente o teoricamente, poiché la forza della password viene misurata logaritmicamente e il 90% non cambia molto sulla scala logaritmica. Supponendo che il set di password con restrizioni sia solo del 90% * di ciò che altrimenti avrebbe potuto essere, questa è solo una differenza di circa 3,3 bit di informazione. Con una lunghezza di 10 caratteri totali e circa 72 possibilità per carattere (52 caratteri alfabetici, 10 numeri e 10 caratteri speciali), l'insieme di tutte le stringhe di caratteri possibili ha circa 63 bit di spazio. Quindi con le restrizioni abbiamo 59.7 bit di spazio per la password invece di 63 bit. Non è un grosso problema.

(* La stima del 90% dell'OP è una sovrastima molto ampia di quanto lo spazio della password è ridotto.Vedi questi commenti o altre risposte per una migliore approssimazione di come lo spazio della password è effettivamente ridotto.)

    
risposta data 08.02.2013 - 01:36
fonte
3

Le mie risposte sono "forse" e "no". Se si considera un tentativo di forza bruta che copre il set completo possibile di password:

  • se l'attaccante conosce la restrizione, allora molte password possono essere scartate, in un certo senso questo non rende il set più piccolo, deve ancora scorrere da "" a "~~~~~~~~~~ ~ 9 "(per esempio), lo rende scarso
  • la restrizione elimina il "frutto basso appeso", cioè le parole d'ordine dirette del dizionario

Quindi, rigorosamente, sì, se guardi le parti ideali di entropia per personaggio, ma in realtà solo forse. Puoi trovare un'analisi più empirica di questo in NIST SP-800 -63-1 (Appendice A).

Il calcolo corretto delle permutazioni con restrizioni è complicato. Se assumiamo 96 caratteri validi:

 96^12      ~= 2^79   ~= 6.13E+23
 96^11 * 10 ~= 2^75.8 ~= 6.38E+22
 (96^11 * 10 )/96^12  ~= 0.104

Quel rapporto indica una perdita di ~ 89,5% (con un set più realista di 64 caratteri è circa l'85%) - ma non è il calcolo corretto , questo è il numero di permutazioni per una cifra in una posizione specifica .

(A parte: sto ignorando le password più brevi di 12 caratteri per semplicità poiché influisce a malapena sui numeri:

96^1 + 96^2 + 96^3 + 96^4 + 96^5 + 96^6 + 96^7 + 96^8 + 96^9 + 96^10 + 96^11
 ~= 6.45E21

che è ~ 1% del totale: per le password da 1 a 12 caratteri, i 12 caratteri rappresentano il ~ 99%. Poiché la dimensione del set di caratteri si riduce, il rapporto aumenta, è ~ 1.5% per 64 dimensioni, non cambia molto poiché la lunghezza della password varia nell'intervallo [7-16] in entrambi i casi.)

Esistono due modi ovvi per calcolare il numero corretto di permutazioni con una restrizione richiesta:

  1. calcola le permutazioni di una cifra in ogni luogo e sommale
  2. calcola la dimensione del set totale, sottrae quelli non consentiti

L'opzione 1 sfugge rapidamente quando cerchi di formare permutazioni senza sovrapposizioni. L'opzione 2 è quasi banale (almeno per casi semplici come "deve avere almeno una cifra"):

96^12 - 86^12 ~= 2^78  ~= 4.49E+23
(96^12 - 86^12 ) / 96^12 ~= 0.73

Questo mostra che per le password di 12 caratteri scelte tra un set di 96 caratteri si perde ~ 27% del numero totale di permutazioni con la restrizione "almeno una cifra". Ripetendo con un set di 64 caratteri per le password:

( 64^12 - 54^12 ) / 64^12 ~= 87%

Quindi in questo caso perdi solo il 13%.

Richiesta di cifre e amp; la punteggiatura è un po 'più complicata, il mio calcolo (96 caratteri, lunghezza 12, > = 1 cifra, > = 1 punteggiatura) è 4.46E + 23 o ~ 73% di 96 ^ 12, sempre leggermente inferiore al caso delle cifre.

La forza bruta non è "molto più veloce", solo ~ 25% più veloce, il che è abbastanza accettabile visti i benefici.

    
risposta data 08.02.2013 - 14:18
fonte
0

Questo tipo di regole sono sensibili soprattutto perché impediscono molte password deboli nella pratica e richiedono che tu abbia considerato l'utilizzo di simboli speciali / numerici durante la generazione della tua password. Ogni password come una parola del dizionario viene automaticamente esclusa, richiedendo almeno l'aggiunta di un numero e di un simbolo da qualche parte nella password. Sì, puoi ancora costruire password deboli seguendo le regole, ma hai notevolmente aumentato lo spazio per farlo.

Facciamo un po 'di matematica supponendo che stiate creando casualmente una password di 12 caratteri che era generata casualmente . Diciamo che stai scegliendo a caso simboli da un insieme di simboli di dimensione N; ad esempio, N = 26 se si accettano solo lettere minuscole (anche 26 se si accettano solo lettere maiuscole); N = 52 se si consentono entrambe le lettere minuscole e maiuscole; N = 95 se consenti a tutti i caratteri ASCII ecc. Stampabili. Esistono 26 lettere minuscole, 26 lettere maiuscole, 10 numeri e 33 altri simboli ascii stampabili.

Puoi facilmente scoprire che il numero di password disponibili è N ^ 12 per una password di 12 caratteri (ci sono N scelte per la prima lettera, N per il secondo / terzo / quarto, ecc.) quindi il numero è% codice%. L'entropia di una password si riferisce al logaritmo in base 2 del numero di password possibili (ovvero N*N*N*N*N*N*N*N*N*N*N*N = N^12 ).

Type of password   |  N |   number of 12-char passwords   | Entropy
--------------------------------------------------------------------
number only        | 10 |               1 000 000 000 000 | 39.9
lowercase only     | 26 |          95 428 956 661 682 176 | 56.4 
symbol only        | 33 |       1 667 889 514 952 984 961 | 60.5    
lower+number       | 36 |       4 738 381 338 321 616 896 | 62.0
number+symbol      | 43 |      39 959 630 797 262 576 401 | 65.1
lower+upper        | 52 |     390 877 006 486 250 192 896 | 68.4 
lower+symbol       | 59 |   1 779 197 418 239 532 716 881 | 70.6 
lower+upper+num    | 62 |   3 226 266 762 397 899 821 056 | 71.4 
lower+symbol+num   | 69 |  11 646 329 922 777 311 412 561 | 73.3 
lower+upper+sym    | 85 | 142 241 757 136 172 119 140 625 | 76.9 
lower+upper+num+sym| 95 | 540 360 087 662 636 962 890 625 | 78.8 

Ora se hai richiesto di avere almeno un minuscolo, un maiuscolo, un numero e un simbolo nella tua password di 12 caratteri, questo esclude in modo efficace le possibilità precedenti. Immagina lo scenario semplificato, in cui inizialmente hai consentito solo le password minuscole, e poi hai deciso di richiedere almeno un numero e una lettera minuscola nelle password (e comunque proibisci i simboli / le lettere maiuscole), il numero di 12 caratteri non sarebbe 36 ^ 12 password, ma ora sarebbero 36 ^ 12 - 26 ^ 12 - 10 ^ 10 password, anche se questo riduce lo spazio della password effettiva del 2,01%. Tuttavia, l'entropia della password cambia a malapena da 62.04 a 62.01. Quando la forza bruta impone l'entropia delle password, un fattore costante piccolo come il 2% più veloce del tempo alla forza bruta non ha importanza.

Nel nostro caso che richiede almeno uno più basso + superiore + num + sym nelle nostre password risulta in:

95^12 - 85^12 - 2*69^12 - 62^12 - 2*59^12 - 52^12 - 43^12 - 2*36^12 - 33^12- 2*26^12 - 10^12
 = 367598836933644823317658 possible passwords

La moltiplicazione per due per alcuni valori spiega come la mia tabella abbia considerato solo casi in minuscolo; anche prendere in considerazione solo in maiuscolo. Ciò riduce l'entropia da 78,8 bit in soli 78,3 bit. Sì, ha eliminato il 31,9% delle possibili password (e circa il 26% proviene dal richiedere un numero), ma ha ridotto al minimo l'entropia intrinseca. Ora confrontalo con uno schema in cui la tua password originale è stata generata casualmente da lettere e simboli minuscoli. Questo ha un'entropia di 62 bit invece di 78,3 bit, il che significa che è circa 65000 volte più facile alla forza bruta.

È quasi sempre meglio aumentare la lunghezza della password piuttosto che aumentare la dimensione del set di simboli. Ad esempio, una password minuscola casuale di 17 cifre ha ~ 80 bit di entropia (ad esempio lg(N^12) ) che batte leggermente una password di 12 cifre con simboli 95 ajctzdtrtenwutuxc che potrebbe essere più difficile da ricordare / digitare e avere alcuni simboli nella lista nera.

    
risposta data 08.02.2013 - 19:18
fonte

Leggi altre domande sui tag