filosofico: limitare lo spazio della password aumenta la sicurezza

8

Questa è più una questione filosofica.

Supponiamo che tu stia cercando di scegliere una buona password per un particolare servizio online, ad esempio il servizio di e-banking della tua banca. Ora la banca ha alcune restrizioni sulle password consentite: puoi solo utilizzare (lettere minuscole) lettere e (decimale) cifre e il la password può essere lunga fino a 6 caratteri . Quindi, qual è un "buon" modo per selezionare una password del genere?

Si potrebbe fare quanto segue (chiamare questo schema 1 ): selezionare casualmente 6 caratteri dall'insieme [a-z0-9] con probabilità uniforme. Questo schema ha lo svantaggio di poter produrre password "deboli" come quelle che contengono solo lettere o solo cifre (c'è una probabilità del 14,2% [1] che ciò accada).

Quindi ecco un'altra idea (chiama questo schema 2 ): seleziona in modo casuale (e uniforme) una lettera, una cifra e 4 caratteri dall'insieme [a-z0-9]. Quindi usa una permutazione casuale di questi 6 caratteri come password. Questo garantisce che la password abbia caratteri di entrambe le classi (lettere e cifre).

Quindi la domanda è: quale dei due schemi produce password "migliori"?

Da un lato, il secondo schema produce password che saranno probabilmente più resistenti ai semplici attacchi di forza bruta. D'altra parte, il primo schema consente rigorosamente più combinazioni rispetto al secondo: 2 ^ 31.0 [2] vs 2 ^ 30.8 [3]; infatti il set di password dello schema 1 è un superset di quelli dello schema 2.

Nota: sto osservando questo dal punto di vista della parte che genera la password e non la parte che imposta la politica della password.

[1] (26 ^ 6 + 10 ^ 6) / 36 ^ 6 = 0.142

[2] log2 (26 ^ 6) = 31.0

[3] log2 (36 ^ 6-26 ^ 6-10 ^ 6) = 30,8 cioè tutte le combinazioni di 6 caratteri, esclusi quelli con sole lettere (26 ^ 6) e quelli con solo cifre (un altro 10 ^ 6 )

    
posta pavlak11 18.03.2016 - 19:08
fonte

3 risposte

15

tldr; Limitare lo spazio della password non aiuta contro gli attacchi brute force , ma potrebbe essere contro gli attacchi intelligenti , ma c'è ancora di meglio modo.

Prima di tutto, stai facendo la domanda giusta, ma usando la terminologia sbagliata qui:

...the second scheme produces passwords that will likely be more resilient to simple brute force attacks.

(Penso che tu intenda gli attacchi intelligenti )

Un attacco forza bruta è uno che tenta ogni possibile combinazione senza ulteriore intelligenza . La forza bruta nel tuo esempio sarebbe qualcosa del tipo:

a, b, c, ... y, z, 0, 1 ... 9,  
aa, ab, ac, ... ay, az, a0, a1 ... a9, ba, bb, bc ... 99,  
aaa ... 999, 
aaaa ... 9999,
aaaaa ... 99999,
aaaaaa ... 999999

Qualsiasi cosa diversa da quella sarebbe considerata una strategia di intelligence. Ad esempio, prima di provare la forza bruta, potresti riuscire a risparmiare un po 'di tempo con questa strategia:

  1. Tenta solo numeri.
  2. Prova le parole trovate in un dizionario.
  3. Prova le prime X password più popolari.
  4. Prova combinazioni del nome utente o delle iniziali dell'utente, anno corrente o anno precedente, ecc.
  5. Prova la forza bruta.

Il tuo obiettivo, in quanto creatore della tua password, è quello di assicurarti che le prime 4 opzioni non riescano sempre a scoprire la tua password. In altre parole, devi assicurarti che l'unico modo per scoprire la tua password sia con la forza bruta, e assicurarti che, se viene usata la forza bruta, ci vorrà molto tempo prima di trovare la tua password. Tuttavia, ciò dipende da te, dati i vincoli di quali tipi di password sono consentiti.

Per quanto riguarda la tua domanda particolare, la avvicinerò più come un generatore di password casuali - ne genera uno per te, lo guardi, e se credi che possa essere indovinato con un metodo diverso dalla forza bruta, semplicemente generare un altro casuale fino a quando non sei felice con esso. (Questa sarebbe la Schema 1 con una svolta.) Se davvero volessi quantificare questo, potresti avere le tue strategie di intelligence costruite e pronte per andare (tutte le strategie tranne la forza bruta). Quindi puoi testarli sulla tua password generata casualmente e se viene trovata, ne generi un'altra finché tutte le strategie intelligenti non riescono a scoprire la tua password. Saresti quindi lasciato con una password che è solo rilevabile dalla forza bruta. Usando questo metodo puoi ottenere una migliore entropia piuttosto che limitare lo spazio della password nel modo in cui hai descritto.

Nota: con le regole della password che hai fornito, la mia svolta allo Schema 1 potrebbe sembrare un po 'come Scheme 2, tuttavia, con l'aumentare del numero di caratteri consentiti e della lunghezza della password, il twist di Scheme 1 dovrebbe fornire più entropia.

    
risposta data 18.03.2016 - 19:55
fonte
11

Penso che tu abbia sintetizzato bene la complessità del problema e illustrato perché entrambi hanno pro e contro. La risposta corretta è ovviamente Schema 3: utilizza una password più lunga o Schema 4: passa a un banco che consente più di 6 caratteri di password .

Hai effettivamente sollevato una domanda secolare, che puoi trovare cosparsa tra le domande su questo sito se sfogli il tag : con alcune (piccole) probabilità, un generatore di password completamente casuale potrebbe venire in" password ". Mettendo restrizioni sulla casualità, aumenti la forza della tua password peggiore, a scapito della tua entropia. Se puoi fare una buona argomentazione per una restrizione che non riduce significativamente l'entropia, allora penso che possa essere accettabile. Anche se la risposta generale è sempre: se sei preoccupato per l'entropia dello spazio della tua password, usa più caratteri.

    
risposta data 18.03.2016 - 19:19
fonte
0

rispondere alla domanda del titolo:

No, in nessun caso tranne uno limita lo spazio della password per aumentare la sicurezza. L'unico scenario in cui si verifica è quando la restrizione è l'esclusione di password deboli note, ad es. una lista nera. A proposito, questo è il modo consigliato (2018) di farlo. Dimentica tutte le assurdità della complessità, ovvero titoli IT equivalenti all'alchimia.

rispondi alla domanda full-text:

Il tuo schema due è in realtà più debole a causa di un errore umano comune. Potresti pensare che un generatore casuale che può teoricamente sputare "aaaaaa" sia più debole di uno che non può. Tuttavia, ti sbagli. Il tuo generatore che non può generare questo output "debole" ha effettivamente uno spazio di ricerca ridotto e qualsiasi attaccante che conosce l'algoritmo dietro lo schema ha un grande vantaggio rispetto allo schema interamente casuale.

Si noti che "aaaaaa" potrebbe essere il primo tentativo di uno stupido attacco a forza bruta, ma la probabilità è davvero minima e facilmente compensabile dal fatto che lo spazio di ricerca è molto più grande. Infatti, in uno schema che impedisce al generatore di creare questo output, anche un hacker consapevole dello schema non lo testerebbe.

"aaaaaa" non è in realtà una password errata e in qualsiasi scenario di attacco realistico è probabile che venga testato dall'attaccante a lungo, molto tempo dopo "passwd", "123456" e anche tutte le possibili permutazioni. È molto più probabile che un attaccante reale nel mondo reale funzioni o per lo meno inizi con un attacco di dizionario prima che utilizzi l'enumerazione effettiva della forza bruta.

    
risposta data 02.08.2018 - 14:31
fonte

Leggi altre domande sui tag