Quale sarebbe una buona serie di criteri per considerare sicura una password? [duplicare]

1

Oggigiorno vediamo molti siti Web con un "misuratore di sicurezza" per la password.

In realtà ritengo che questa sia una grande funzionalità poiché dà all'utente finale il senso di quanto insicura possa essere la loro password. Vorrei avere un dollaro ogni volta che ho sentito gli utenti finali dichiarare quanto è sicura la loro password "password".

Il problema con quei contatori è che possono essere davvero inaffidabili. Recentemente ne ho appena scoperto uno che dà la sicurezza solo da quanti caratteri hai inserito. Ciò significa che se usi elementi come: 111111111 o 123456789, considera la password sicura definitiva.

Consente di definire 3 livelli di sicurezza. Cattivo, medio, buono. Quale sarebbe una buona serie di regole per considerare una password in ogni gruppo?

Chiaramente la lunghezza, la diversità dei caratteri (compresi casi di piccole dimensioni, casi di grandi dimensioni, numeri) sono importanti, ma alcune di queste password sarebbero comunque vulnerabili agli attacchi di dizionario.

Quale sarebbe una buona serie di test per ogni livello?

Questo può essere discusso poiché la minaccia e il rischio dipendono dall'importanza delle informazioni protette dalla password. Una buona password per accedere a, diciamo "forum di cucina casalinga" non è importante quanto quella della banca. Per motivi di risposta, prendiamo in considerazione un sito web medio come un negozio online o un youtube come riferimento.

    
posta nsn 09.10.2015 - 13:13
fonte

3 risposte

5

Il concetto che stai cercando si chiama entropia della password . L'entropia è la misura di quante diverse combinazioni è possibile, e di solito è misurata in bit. Entropia dipende dalla lunghezza della tua password (concatena due password e sommi l'entropia) e da come la generate.

Se la tua password è una stringa casuale generata dal set di caratteri base64, ogni personaggio ha 6 bit di entropia. Se scegli casualmente 5 parole da un elenco di 4086 parole inglesi, ogni parola ha 12 bit di entropia e c'è un'entropia totale di 60 bit. Pertanto, una password di 5 parole scelta come sopra è sicura come una stringa base64 di 10 caratteri (o una stringa esadecimale di 15 caratteri), e un po 'più facile da ricordare.

Alcune cose da notare: un set di caratteri base64 ha generalmente caratteri alfabetici maiuscoli e minuscoli, numeri e altri 4 caratteri. 5 parole non casuali (come una frase grammaticalmente corretta), in inglese tipico, hanno 2,62

Finirò più tardi.

    
risposta data 09.10.2015 - 13:30
fonte
5

La sicurezza della password 'misurazione' programmaticamente è davvero difficile: quello che vuoi è un numero che ti dice quanto è difficile per un utente malintenzionato indovinare la password.

Di solito, una buona approssimazione è guardare il numero di possibili password che risulterebbero dall'uso dell'algoritmo di generazione, operando nel presupposto che l'hacker conosca l'algoritmo di generazione e che la password sia scelta casualmente tra tutti i possibili output di questo algoritmo.

Questo è facile da ottenere, se si definisce l'algoritmo da soli e si fornisce all'utente una password fissa e generata. È quindi possibile eseguire un calcolo sulla falsariga di "10 caratteri selezionati casualmente da un set di 62 caratteri" = 839299365868340224 possibilità ~ 59,5 bit di entropia.

Sfortunatamente molti siti permettono all'utente di scegliere la password e quindi le cose si fanno pazze. Ora né tu né l'hacker conoscono l'algoritmo di generazione. L'attaccante deve accontentarsi della prossima cosa più intelligente: provare un paio di algoritmi ragionevoli e tutte le password generate per ogni algoritmo (saltando i duplicati). Sensibilmente l'attaccante potrebbe iniziare con algoritmi comuni (come "nome di un membro della famiglia") e / o quelli che generano solo un piccolo numero di password possibili ("PIN a 4 cifre").

Ora per ottenere una sicurezza numerica sulla sicurezza della password risultante non puoi semplicemente guardare il numero totale di password possibili, ma devi anche tener conto dell'ordine in cui un utente malintenzionato potrebbe provarle. Qualcosa lungo la linee di una media pesata del numero di password per algoritmo e probabilità di utilizzo di quell'algoritmo.

Esiste un concetto strettamente correlato chiamato complessità di Kolmogorov: descrive il contenuto informativo di una stringa come la lunghezza del programma più breve (in un linguaggio di programmazione generico) in grado di ricreare la stringa. Esempio: "aaaaa" e "abcdefghijklmnopqrstuvwxyz" hanno all'incirca la stessa complessità di 3 se la nostra lingua consente di dire cose come "5 * a" e "a-z", mentre "oabuf" avrebbe la complessità 5.

Un hacker astuto proverà le password in ordine di aumento della complessità di Kolmogorov, in modo da essere a casa libera se si riuscisse a calcolarlo. Sfortunatamente non puoi .

In generale, l'approccio migliore alla sicurezza della password è di fornire consigli utili agli utenti su come scegliere una buona password, vedi questo studio . Questo documento raccomanda il metodo della frase: prendi una frase e usa le prime lettere di tutte le parole. Questo dà una buona memorizzazione e sicurezza. Un altro buon metodo è il metodo XKCD , noto anche come fiocco corretto della batteria del cavallo (il fumetto fornisce anche una buona illustrazione delle mie osservazioni su più algoritmi sopra).

Dato che non è possibile calcolare ragionevolmente la potenza della password senza conoscere l'algoritmo e non si può generalmente conoscere l'algoritmo, suggerirei di astenersi dal provare a farlo. Avere un misuratore di forza della password non funzionante invierà i segnali sbagliati ai propri utenti (ad esempio, la maggior parte dei misuratori di forza password sottovalutano enormemente la forza delle password XKCD). Invece:

  • Fornisci consigli su come scegliere una buona password
  • Non rendere difficile l'utilizzo di una buona password (ad esempio avendo limiti arbitrari sulla lunghezza e sul set di caratteri, hai comunque cancellato la password, giusto?)
  • Utilizza cracklib sul lato server per eliminare le password catastroficamente sbagliate.
risposta data 09.10.2015 - 15:18
fonte
1

Il problema con la sola considerazione dell'entropia è che non prende in considerazione la possibilità di indovinare sulla base di informazioni contestuali (come lingua, cultura, vicinanza dei caratteri della tastiera ecc. ecc.) solo sulla forzatura brutale sistematica.

Il problema è simile al motivo per cui le persone che giocano alla lotteria non scelgono una serie di numeri consecutivi come 1,2,3,4,5,6 - istintivamente credono che questa sia una combinazione meno probabile che si verifichi anche se il la casualità, o il grado di entropia nel pool di scelta, è esattamente la stessa per ogni sequenza scelta casualmente. Nella scelta della password questa risulta essere una buona intuizione, ma per la lotteria non è perché non vi è alcun input contestuale nella scelta dei numeri vincenti tratti dalle palle.

Un generatore casuale potrebbe fornire la password 'password' se viene richiesto di scegliere 8 caratteri da 1 a 9, a-z e alcuni segni di punteggiatura. È improbabile (è probabile come qualsiasi altra combinazione) ma potrebbe accadere. Se lo facevi affermavi che questo era insicuro, anche se un vero programma di forza bruta che morde tutte le combinazioni richiederebbe molto tempo, un programma di cracking delle password ragionevole lo troverebbe quasi istantaneamente (beh, se fosse basato sulla lingua inglese comunque! )

Quindi le password dovrebbero essere scelte sulla base di una ragionevole misura di entropia così come di altre informazioni sensibili al contesto come comunemente si pensi ai pattern ecc.

Quindi, la lunghezza e gli insiemi di caratteri più grandi (per fornire uno spazio di ricerca sufficientemente ampio) e la mancanza di modelli contestualmente rilevanti / significativi è la strada da percorrere.

Il problema con i sistemi di misurazione online e i "misuratori di hackability" è che non conoscono il contesto dell'uso della password, ad es. se è per un sito di cucina nel Regno Unito e scegli GBBOnadya2WIN! potrebbe non essere sicuro.

    
risposta data 09.10.2015 - 16:28
fonte

Leggi altre domande sui tag