quali sono i buoni requisiti per una password

15

Sto creando un sito Web e sto decidendo sulla politica della password. Cosa fa una buona password? Non ne ho idea. Immagino che le password dovrebbero contenere almeno 6 caratteri.

EDIT: ci sono raccomandazioni su come dovrebbe essere "complessa" la password? Ad esempio richiedono 2 cifre 2 caratteri grammaticali e il resto della password può essere qualcosa?

    
posta Celeritas 29.01.2013 - 00:42
fonte

5 risposte

12

Per citare le migliori pratiche di OWASP:

Password length Password length considers the minimum and maximum length of characters comprising the password of your users. For ease of changing this length, its implementation can be configurable possibly using a properties file or xml configuration file.

Minimum length. Passwords should be at least eight (8) characters long. Combining this length with complexity makes a password difficult to guess and/or brute force.

Inoltre:

Password Complexity Password characters should be a combination of alphanumeric characters. Alphanumeric characters consist of letters, numbers, punctuation marks, mathematical and other conventional symbols. See implementation below for the exact characters referred to. For change password functionality, if possible, keep a history of old passwords hashes used. You should not store the actual passwords to protect against brute forcing if the database file is compromised. In this way, the user cannot change to a password that was used a couple of months back.

Altrettanto importante è come viene memorizzata la password? OWASP ha anche una serie di consigli su come conservare gli hash delle password in modo sicuro. Per maggiori informazioni leggi qui

OWASP ha molti buoni consigli su come gestire le password e i moduli di login / password. Consiglio vivamente di leggerli e di imparare il più possibile.

Spero che ti aiuti!

Fonte: link

    
risposta data 29.01.2013 - 01:26
fonte
12

Bruce Schneier ha scritto un bel saggio sull'argomento, suggerisco di dare un'occhiata a questo. In poche parole:

  • La maggior parte degli utenti tende a utilizzare modelli simili per le proprie password e ci sono strumenti che sono abbastanza buoni a indovinarle (fino al 65% delle percentuali di successo).

    • Questo modello, come satirizzato qui , consiste nell'utilizzare una parola del dizionario (comune o meno) con alcune lettere sostituite in base a regole comuni (come 4 per A ), seguito da (o più raramente prefissato da) un semplice affisso (di solito numerico).

    • Il "pericolo" di tali password è che forniscono un'illusione di complessità e quindi di sicurezza, mentre in realtà sono relativamente facili da decifrare (assumendo un attaccante off-line).

  • Le password che contengono dati biografici (come nomi, indirizzi, codici postali) sono sostanzialmente più facili da decifrare, quindi gli utenti dovrebbero essere scoraggiati dal loro utilizzo.

  • Anche le password molto brevi (4 caratteri o meno) sono suscettibili a ricerche esaustive.

  • Una buona password, quindi, dovrebbe avere una lunghezza ragionevole (8 caratteri come raccomandato da OWASP potrebbe essere ok, ma in linea di principio più è lungo è il migliore) e non seguire uno schema facilmente riconoscibile.

    • In alternativa, potrebbe seguire uno schema, ma che non può essere facilmente replicato. Un esempio sarebbe pensare in una frase e creare una password dalle prime lettere di ogni parola in quella frase.

    • Un'altra opzione (suggerita anche nel saggio, anche se personalmente non sono d'accordo) consiste nel mettere l'affisso (la sequenza numerica) nel mezzo della radice (la parola), o usando due parole unite insieme al apporre.

Il più importante di tutti IMHO non ha una "lunghezza massima della password" o, se inevitabile, di lasciare quel massimo ad un valore molto alto (come 64 caratteri). Dal momento che non memorizzerai la password stessa, invece di memorizzare un hash sicuro , la lunghezza non dovrebbe influire sul design del back-end.

(Non tentare di "forzare" troppo la complessità della password, altrimenti i tuoi utenti inizieranno a combattere attivamente - scrivendo le loro password per esempio)

    
risposta data 29.01.2013 - 03:13
fonte
10

Una password è tanto strong quanto casuale. Non è possibile verificare la casualità di una password inventata da un utente nel suo cervello, poiché la casualità è una proprietà del processo di generazione , non del risultato. Il tuo sito Web vedrà solo il risultato.

Tuttavia, è possibile escludere password troppo brevi perché le password brevi sono suscettibili di una ricerca esaustiva molto primitiva, il che significa provare tutte le combinazioni di lettere fino a una certa lunghezza. Il rischio principale che devi evitare è quello di antagonizzare gli utenti : le password saranno valide solo se l'utente lo sceglie, pertanto devi renderlo un volontario contributore alle norme del sito. L'utente, da solo, non è molto interessato alla sicurezza del sito. Inserisce la password perché deve (il sito impone una password), ma vede la password come un ostacolo: non è venuto al sito per inserire una password, ma per accedere a qualunque pagina del sito contenga.

Questo si riduce ai seguenti consigli:

  • Imponi una lunghezza minima della password di 8 caratteri . Non molto più di questo; ma le persone sono abituate a inserire password di 8 caratteri. Se chiedi di più, gli utenti protestano (e protestano scegliendo password "spiritose", che non sono affatto forti).

  • potresti richiedere una combinazione di lettere e cifre . Ma non esagerare. Le lettere e le cifre vanno bene; non applicare il mix maiuscolo / minuscolo o la punteggiatura: questi sono notevolmente più difficili da scrivere su smartphone e tablet.

  • Fornisci un generatore di password opzionale . Dal momento che le menti umane non sono brave a generare casualità, usa il computer. Ma fai attenzione a non rendere il generatore obbligatorio : l'utente deve vederlo come uno strumento utile, non un regolamento inevitabile. Pertanto, fornire un pulsante "genera una buona password" che genera una sequenza di lettere minuscole e cifre (non eccessivamente lungo, attenzione, 8 caratteri).

  • Pubblica linee guida che spiegano che cosa dovrebbe essere una buona password (ad esempio casuale). Gli utenti amano sentirsi responsabilizzati. Inoltre, avvertili sui problemi di usabilità per quanto riguarda le lettere non ASCII: accenti, caratteri non latini ... renderanno la loro vita molto più difficile se li usano.

risposta data 29.01.2013 - 13:17
fonte
1

Hai parlato della politica della password che include anche la durata della modifica della password. Come misurare una buona password?

  • strong
  • Memorabile

Strong property has inverse relation with memorable

Quindi, è il tuo sforzo per decidere su di loro, quale è più critico? quindi si imposta alta priorità a quella, ma si consideri che ogni password deve corrispondere ad alcune regole (requisito minimo):

  • lunghezza: tra (6-12)
  • schema: [a-Z] [0-9] [caratteri speciali]
  • la password deve contenere almeno 4 caratteri diversi da ciascun gruppo (se lunghezza = 6)
  • la password deve contenere almeno 6 caratteri diversi da ciascun gruppo (se lunghezza = 8)
  • Durata modifica password (criterio Scadenza): ogni tre mesi ad esempio
  • Blocco account: numero di tentativi non validi consentiti: 3, quindi, l'account deve essere bloccato e sbloccato dall'amministratore
risposta data 29.01.2013 - 12:11
fonte
0

So che sono passati 3 anni ma questo ha bisogno di un aggiornamento.

Se hai impostato una protezione sufficiente per la connessione (blocco dopo 3 tentativi errati, per esempio) sei al sicuro. Finché il database non perde. Ma se il database è violato, sei quasi morto.

Prendi questa password Lov3t©cöde sembra interessante, vero? Contiene:

  • Carattere minuscolo;
  • Carattere maiuscolo;
  • Numeri;
  • Carattere speciale

E ha una lunghezza di 10 caratteri. Sembra fantastico. Ma con l'attuale potenza della GPU e qualche migliaio di dollari, puoi romperlo entro una settimana . Non ti fidi di me? Provalo .

Quello che vorrei raccomandare è una passphrase . Qualcosa che puoi ricordare , perché qual è il punto in cui devi scriverlo su un file di testo?

Prendi una frase semplice:

I eat chocolate at night!

aggiungi entropia ad esso:

I*eat%chocolate*at%n8!

Congratulazioni! Ora hai una password lunga 22 che richiederebbe circa 1,04 milioni di trilioni di secoli per rompere, cosa che puoi ricordare! (Poiché lo spazio di complessità è 95^22 . Se consenti un set di 33 caratteri speciali, che rende ~3.27 x 10^43 . Supponendo cento trilioni di tentativi al secondo, ci vorranno i miei 1,04 milioni di trilioni di secoli .)

Grande, cosa potrebbe essere migliore ? Consenti agli utenti di connettersi attraverso loro google / facebook / qualsiasi account. Quindi non dovrai mai preoccuparti della tua politica sulla password.

    
risposta data 01.06.2016 - 17:12
fonte

Leggi altre domande sui tag