Sto conducendo uno studio su password e ho bisogno di un metodo che assegni un valore numerico alla complessità di una password

8

Attualmente sono uno studente e sto conducendo un progetto di fiera scientifica per la mia scuola superiore. Lo studio prevede la raccolta di password generate dagli utenti e il loro test per la complessità, o "crack-abilità", per determinare quali requisiti / criteri di password incoraggiano gli utenti a generare password sicure.

Ho bisogno di un sistema che valuti ogni password per quanto sia sicuro. Ho preso in considerazione l'uso della formula del NIST per calcolare l'entropia dei dati, ma in seguito ho realizzato quanto l'entropia non realistica è per misurare l'abilità di crack. Ho anche letto alcuni degli studi di Matthew Weir e vorrei, se possibile, usare il suo sistema, PCFG Generator. Ho trovato il download e le istruzioni qui , ma come studente, ho sono ancora incapace di capire come usarlo esattamente.

Qualsiasi sistema affidabile per predire l'indovinabilità di una password sarebbe molto utile, a patto che consideri strumenti di cracking comuni (attacchi di dizionario, come JtR). Qualsiasi aiuto sarebbe molto apprezzato.

Grazie!

    
posta EleanordaBeast 06.12.2017 - 16:34
fonte

2 risposte

9

In breve, non esiste un modo affidabile per farlo. Il tuo programma dovrebbe implementare una serie di regole. Gli umani poi lavorano attorno a questi. Cioè richiedere un numero rende il 99% delle password degli utenti medi non più sicure: aggiunge solo un 1 alla fine della password esistente. Lo stesso con i simboli.

"p @ 55w0rd!" farebbe molto su molti tentativi precedenti di valutare le password. Come "Questa è la mia password!". Nel frattempo "lbvgjnwhha" (generato casualmente) otterrebbe un punteggio scarso perché è una stringa abbastanza breve di tutte le lettere minuscole.

Invece, considererei un approccio diverso. Questa pagina , ad esempio, può controllare una password contro centinaia di milioni di password trapelate. Questo dovrebbe sconfiggere la maggior parte degli attacchi di dizionario non mirati (ad esempio attributi personali come cognome, data di nascita, ecc.). Puoi dimostrarlo (o scaricare le liste complete di hash delle password e scrivere uno strumento per calcolare l'hash di una password inserita e confrontarlo con l'elenco) spiegando le best practice e ampli delle password. i vantaggi dell'autenticazione a due fattori.

    
risposta data 06.12.2017 - 16:49
fonte
2

Innanzitutto ritengo prudente comprendere l'entropia della password matematica. Il wiki su Forza password è un buon punto di partenza, ma in breve, entropia della password è probabile che una password possa essere indovinata dato un pool di simboli.

Questa non è né complessità né "crack-abilità", l'entropia si escludono a vicenda questi due concetti non lo sono.

L'entropia è importante per prima cosa perché ha due requisiti:

  • Numero di simboli
  • La lunghezza di quei simboli

Numero di simboli

Il numero di simboli forniti è una linea di base per il numero di bit di entropia per simbolo. L'alfabeto maiuscolo da solo non ha gli stessi bit entropici come se si includessero anche i simboli minuscoli. Se si includono i numeri, l'entropia per simbolo aumenta. Più simboli aggiungi, più bit di entropia guadagni per simbolo, in altri termini, maggiore è il numero di simboli, maggiore è l'entropia per ciascun simbolo.

Lunghezza dei simboli

La lunghezza dei simboli è importante perché ogni simbolo aggiunto raddoppia efficacemente la tua entropia. Questo è il motivo per cui la lunghezza da sola è un concetto così importante introdotto nella sicurezza delle password.

Che cos'è la complessità?

La complessità di una password sono le regole che mettiamo in atto per rafforzare la "casualità" delle password. Ecco le regole di base:

  • maiuscolo
  • minuscolo
  • Numero
  • Carattere speciale

Questi sono comuni alla maggior parte delle persone. I siti web lo usano sempre per cercare di forzare le persone alla casualità. Noi, tuttavia, non siamo casuali. Questo è il motivo per cui gli attaccanti possono usare qualcosa come attacchi di dizionario e algoritmi predittivi per indovinare le password.

Oltre a ciò, include misure di sicurezza come:

  • Crittografia o hash utilizzati
  • La forza di un sale
  • Sicurezza di una chiave privata

e così via.

Crack-capacità

Questo è molto più complicato di un semplice post qui. È comunque un argomento interessante (almeno per me :)). L'abilità di crack è soggettiva e la parte che devi capire è che puoi misurare questo concetto solo sulla base di un set di regole definito. (Non posso dire una parola migliore, non mi piace "Crack-ability", ma sono abbastanza sicuro di capire cosa stai chiedendo).

Generatore PCFG

A seconda di ciò che stai cercando di definire usando il PCFG, può essere piuttosto complesso. Le basi di un PCFG è che se le dai da mangiare qualcosa, parole comuni, frasi, ecc., Fornisce una probabilità di ciò che potrebbe essere selezionato in seguito. Puoi vederlo nella vita di tutti i giorni usando gli smartphone con un testo predittivo. (Hai mai notato che quando hai iniziato a usarlo, le ipotesi erano meh e ora è abbastanza buono a sapere cosa stai per dire?)

Potresti nutrirlo con password comuni e controllare probabilmente di una persona che usa quella password.

Per il tuo progetto, a meno che tu non stia cercando di valutare il probabile cappuccio che una persona selezionerà una password, ti suggerirei di cercare qualcos'altro.

    
risposta data 06.12.2017 - 18:33
fonte

Leggi altre domande sui tag