Nei primi giorni abbiamo salvato felicemente qualsiasi password volesse dal database.
In seguito abbiamo deciso che le password devono includere determinate caratteristiche come numeri, lettere maiuscole e minuscole e lunghezze definite (a volte un massimo di 8; yikes!).
Non molto tempo dopo che alcuni di noi hanno deciso che determinati caratteri come ;
e '
(devi amare le persone che risolvono SQL injection nel modo sbagliato) e persino sequenze ripetute come aaa
non sono più consentite.
Ad un certo punto li abbiamo finalmente eliminati e poco dopo abbiamo aggiunto un po 'di sale.
Ora, mi chiedo, è davvero importante fare uno qualsiasi dei requisiti relativi alla "forza" della password? In altre parole, se togliamo tutte le caratteristiche EXCEPT per una lunghezza minima è altrettanto buono?
Se la mia app dice, la lunghezza minima della password è di 12 caratteri e fino a 200 caratteri - essenzialmente una pass phrase e consento loro di usare qualsiasi carattere che possono digitare su una tastiera, quindi è altrettanto difficile sfondare il porta d'ingresso? Supponendo che sto ancora facendo un hashing con un salt quando è memorizzato nel DB?
- nota: non sto cercando opinioni. Sto cercando di capire se qualcuno può fornire una "prova" del fatto che una frase di 12 caratteri è meno sicura di una che ha limitazioni comuni identificate sopra.