Sistema di password, possibili soluzioni

1

Sto cercando di risolvere un problema con un sistema di password. Devo capire la probabilità che la password sia indovinata.

Se ho una password alfanumerica di 8 caratteri.

non può essere tutto #, il che significa che deve contenere una lettera non può avere caratteri in sequenza (ad esempio abcdefgh o a1234567) non può avere la parola "johnbook"

    
posta Greg 25.10.2011 - 23:03
fonte

2 risposte

4

Annoto le regole: otto caratteri, non tutte le cifre, nessuna sequenza incorporata (dove una sequenza è composta da almeno due lettere o cifre successive in cui uno è "uno più" o "uno in meno" rispetto al precedente), e non "johnbook".

Se consideriamo i caratteri da sinistra a destra, allora abbiamo 36 scelte per il primo carattere, e poi 34 per ogni carattere successivo (a causa della regola "nessuna sequenza": dopo una "m" non puoi avere un " l 'o un' n '). Questo significa 36 * 34 7 = 1890840605184 possibili password - ma dobbiamo aggiustarlo per tenere conto delle altre regole: dobbiamo rimuovere le password a tutte le cifre (10 * 9 7 = 47829690 password) e anche "johnbook" (1 password). Il totale complessivo è quindi: 1890792775493 password. Se si sceglie la password con perfetta uniformità, l'attaccante ha esattamente 1 possibilità di indovinare la password al primo tentativo. In media, l'attaccante proverà le password 945396387747 prima di colpire quella giusta.

Nota che ho assunto quanto segue:

  • solo lettere minuscole (per contare le lettere maiuscole, cambiare da 34 a 60 e da 36 a 52);
  • la proibizione sulle sequenze inizia con sequenze di due caratteri (vietiamo "ef", non solo "efg") e include sequenze decrescenti (anche "gfe" è male);
  • sequenze "avvolgono" la fine dell'alfabeto ("za" è una sequenza, e così è "90").

Tali regole possono rendere scontrosi i tuoi utenti.

    
risposta data 25.10.2011 - 23:37
fonte
4

Generalmente la probabilità si riduce alla dimensione dell'intervallo. Quindi, ad esempio, per una password di 4 caratteri, la password occupa il numero di caratteri disponibili elevato alla potenza del numero di posizioni nella password.

Ad esempio, un pin banca - 4 cifre, 10 caratteri (0-9) - 1000 possibili password, rendendo la probabilità 1/10000.

Ora il tuo problema è più difficile, dal momento che il tuo intervallo non è tutte le password disponibili, hai rimosso alcune delle password altamente ipotetiche. Quello che dovrai fare è capire quante potenziali password vengono eliminate da ogni regola e assicurati di tenere conto delle regole che si sovrappongono ... ad esempio 12345678 è sia una sequenza che tutti i personaggi. Quindi prendi lo spazio totale della password, sottrai le password proibite da ogni regola, assicurandoti di non contare due volte un determinato tipo di password.

Non sono sicuro di cosa intendi con "non può avere la parola" johnbook "" forse sono troppo letterale - ovviamente "johnbook" è solo una password. Vuoi dire che non può avere quella parola particolare, o non può avere un nome comune noto o una combinazione di parole brevi? Ad esempio, anche "bethdesk" è vietato? Qual è la dimensione del dizionario da controllare e tutte le combinazioni di parole sono lunghe e brevi vietate? Dovresti essere in grado di usare la combinatoria per capire, ma hai bisogno dell'algoritmo o delle regole per il controllo della password per sapere quanto questo limita la dimensione dello spazio della password.

Inoltre, virtualmente qualsiasi combinazione di parole sarà anche una sequenza di "tutti i personaggi" - quindi l'hai praticamente eliminata, o il sistema sta verificando sostituzioni ovvie - come "passw0rd"?

    
risposta data 25.10.2011 - 23:36
fonte

Leggi altre domande sui tag