Come posso calcolare il numero di possibili password?

6

Ho trovato un difetto in un sito in cui la funzione di reimpostazione della password reimposta le password nel seguente formato

UpperCaseLetter-Number-LowerCaseLetter-Number-LowerCaseLetter-Number-UpperCaseLetter

Eg: A0b1c2d

Sto provando a determinare quante combinazioni possibili di password ci sono per un sistema come questo (dove posso predire il 'formato password' rispetto a qualcosa di casuale che usa l'intero Keyspace Alfabeto Superiore / Inferiore-numerico.

Non sono un crittografo ma mi sembra una debolezza significativa. Vorrei alcuni dati per sostenere questa ipotesi :) Acclamazioni

    
posta NULLZ 26.03.2013 - 02:06
fonte

3 risposte

9

Per ottenere il numero di permutazioni, moltiplica il numero di possibilità in ciascuna posizione:

26x10x26x10x26x10x26 = 456,976.000

    
risposta data 26.03.2013 - 02:31
fonte
2

Vorrei menzionare in aggiunta alle altre risposte in merito alla debolezza di questo particolare sistema, una funzione di reimpostazione della password è solo per le password temporanee. La password potrebbe essere ripristinata perché un utente l'ha dimenticato o è stato escluso dal sistema.

Poiché l'utente richiede la reimpostazione della password, con qualche altra forma di convalida della proprietà dell'account come indirizzo e-mail, la password dovrebbe essere attiva solo per circa 5 minuti o meno. Se la reimpostazione della password è implementata in modo sicuro, potrebbe bloccare l'account dopo 10 tentativi di impedire la forza bruta al momento della reimpostazione della password. Tuttavia, è improbabile che questo attacco si verifichi con un piccolo vincolo di tempo.

Se un utente malintenzionato ottiene ahold delle password di database crittografati, allora si può essere in grado di bruteforzare la tabella delle password temporanee per cercare di login prima che l'utente è in grado di. In questo caso, avere una piccola password è un punto debole ma probabilmente hanno anche altri punti deboli.

    
risposta data 26.03.2013 - 15:27
fonte
2

Se sai che qualcuno ha una password di 1 cifra, scelta da un dado comune, allora sai che ci sono 6 possibili password. Se qualcuno tira un dado due volte, sai che può essere 1-6 per entrambe le posizioni 1 e 2, quindi 6 * 6 = 36 possibili password. Continui a moltiplicare da solo, o aumentare ad un esponente più alto, ogni volta che aggiungi una cifra.

Una password di lettere (maiuscole 26 e minuscole 26 possibilità) e cifre (10 possibilità) è quindi 62 ^ lunghezza, ad esempio 62 ^ 6 per una password di 6 caratteri o 57 miliardi di possibilità.

Se hai un formato fisso, devi solo moltiplicare le possibilità per ogni posizione, proprio come abbiamo fatto con le normali password. Se il formato è simile a A0a0a0A, le opzioni sono:

UC   #    low  #    low  #    UC
26 * 10 * 26 * 10 * 26 * 10 * 26 = 457 million

Quanto è strong questo? Dipende da quanto velocemente puoi craccare la password. Se si ha qualcosa come un hash MD5 della password (ad esempio se il database è stato violato), è possibile provare alcuni miliardi di tentativi al secondo con software standard e hardware di base. Se non hai l'hash, quindi puoi solo provare ad accedere a un sito web, potresti ottenere circa 10 tentativi al secondo (o 2 al secondo o 500, a seconda delle circostanze, ma niente vicino a un miliardo) .

Se la mia password può essere 1, 2, 3, 4, 5 o 6, quindi in media, dopo 3 tentativi avrai indovinato. Lo stesso qui: se hai 457 milioni di password possibili e puoi fare 10 tentativi al secondo, e ci sono 2 626 560 secondi al mese, ci vorranno circa 9 mesi in media. Nel peggiore dei casi (se sei sfortunato e lo indovini nell'ultimo tentativo), occorrerebbero 1,5 anni. Se diventi molto fortunato, puoi indovinare correttamente al primo tentativo e crearlo in 0,1 secondi, ma le probabilità sono 1 su 457 milioni!

    
risposta data 19.04.2018 - 22:49
fonte

Leggi altre domande sui tag