En los primeros días, felizmente guardamos la contraseña que una persona deseaba en la base de datos.
Más tarde, decidimos que las contraseñas deben incluir ciertas características como números, mayúsculas y minúsculas y longitudes definidas (a veces un máximo de 8; ¡ay!).
No mucho tiempo después, algunos de nosotros decidimos que ciertos caracteres como ;
y '
(tenemos que amar a la gente que está arreglando la inyección de sql de forma incorrecta) e incluso repetir secuencias como aaa
ya no se permitían.
En algún momento, finalmente los pusimos y poco después agregamos un poco de sal.
Ahora, me pregunto, ¿alguno de los requisitos relacionados con la "fuerza" de la contraseña es realmente importante? En otras palabras, si eliminamos todas las características EXCEPTO por una longitud mínima, ¿es tan bueno?
Si mi aplicación dice, la longitud mínima de la contraseña es de 12 caracteres y hasta 200 caracteres, esencialmente una frase de contraseña y les permito usar cualquier carácter que puedan escribir en un teclado, entonces es tan difícil de romper a través de ¿puerta principal? ¿Suponiendo que todavía estoy haciendo hashing con un salt cuando está almacenado en la base de datos?
- nota: no estoy buscando opiniones. Estoy buscando para ver si alguien puede proporcionar una "prueba" de que una frase de paso de 12 caracteres es menos segura que una que tenga las limitaciones comunes identificadas anteriormente.