Dovrei avere una lunghezza massima della password?

27

Sto creando una webapp e parte del mio metodo di autenticazione è la lunghezza della password.

Dovrei metterne uno sul posto? (ad esempio, 50 caratteri?) O dovrei semplicemente mettere una lunghezza minima (attualmente alle 6).

Ci sono problemi con il non inserire una lunghezza massima?

    
posta jrg 15.08.2011 - 20:34
fonte

3 risposte

33

Devi cancellare le password utilizzando un algoritmo sicuro invece di memorizzarlo in testo non crittografato. La funzione di hash genererà una dimensione di output costante indipendentemente dalla lunghezza della stringa di input.

Utilizzare una lunghezza minima e forse alcune altre regole di qualità è una buona idea perché aiuta un po 'contro la pigrizia.

Se hai paura degli attacchi di tipo Denial of Service, puoi inserire un limite lato server per i campi di input ordinari, ad esempio 1000 byte. È improbabile che qualcuno voglia utilizzare una password così lunga.

    
risposta data 15.08.2011 - 20:51
fonte
22

La mia raccomandazione: 1.024 byte.

La limitazione delle dimensioni delle password è una limitazione esistente per ragioni di requisiti tecnici obsoleti. La moderna memorizzazione delle password dovrebbe basarsi su hash che rende il campo di memorizzazione delle password una dimensione fissa indipendentemente dalla lunghezza della password. Non vogliamo vedere le password da 1 MB in quanto ciò significherebbe semplicemente che qualcuno sta cercando di provocare una negazione del servizio. Non penso che vedrò mai un umano usare una password di 1.024 caratteri (o più lunga). Penso che sia un valore abbastanza piccolo da impedire qualsiasi DOS reale e un valore abbastanza alto da non essere mai raggiunto in nessuna circostanza ragionevole.

    
risposta data 15.08.2011 - 20:50
fonte
4

Dipende dalla funzione di digest del messaggio che usi. Per la maggioranza (sha-256, anche md5, sha1 ect ...) non importa. Tuttavia, se si utilizza bcrypt, bcrypt ha un limite di 55 caratteri. Quindi se sei salato è di 27 byte puoi avere una password di 28 byte.

Nota a margine, CWE-521 richiede una lunghezza massima della password. Tuttavia non indica il limite massimo e da una prescrizione di sicurezza non vedo alcun motivo per cui potrebbe essere 512kbyte o più.

    
risposta data 17.08.2011 - 19:02
fonte