Muchas de las reglas que ves en la práctica son bastante inútiles. Requerir al menos una letra mayúscula y un número molesta a los usuarios a los que no se les permite elegir password
, pero no les induce a elegir una buena. En general, simplemente eligen Password1
en su lugar. Esa contraseña pasaría a muchos filtros, pero aún así se ha filtrado más de 100 000 veces.
Puedes intentar hacer que tus reglas sean más complejas. Digamos que el número no puede estar al final! Bueno, tus usuarios perezosos lo pondrán al frente en su lugar. Esa contraseña ha sido filtrada más de 2 000 veces. Puedes continuar este juego del gato y el ratón con tus usuarios, pero es un juego perdedor. Molestarás a tus usuarios cada vez más y, a menos que abandonen la frustración, seguirán eligiendo contraseñas de mierda. La gente es perezosa, y no puedes cambiar eso con reglas complicadas o cálculos de entropía.
Entonces, ¿qué hacer en su lugar?
-
Límites de longitud: debe tener una longitud mínima. Esto debería ser al menos 8, pero 10 o 12 es probablemente mejor. Si su algoritmo de hash tiene una longitud máxima (por ejemplo, bcrypt corta todo en 72 caracteres), debe aplicar esa longitud máxima también para que los usuarios no crean que su contraseña es más larga de lo que realmente es. Pero no aplique una longitud máxima corta como 32 sin ninguna razón.
-
Contraseñas comunes de la lista negra: Esto es importante. Muy importante. Debe verificar la contraseña con una larga lista de contraseñas filtradas. Si la contraseña se ha filtrado más de N veces (personalmente, argumentaría que N = 1), bloquéela. Hasta la fecha, la mejor de esas listas es Contraseñas Pwned .
-
Selecciones obvias de la lista negra: una opción tentadora de contraseña es simplemente reutilizar el nombre de usuario o alguna otra información personal proporcionada, el nombre del sitio o una variación del mismo, o un término fuertemente relacionado con el tema del sitio. Una forma de hacer esto es verificar que la contraseña aún supera el requisito de longitud mínima incluso después de eliminar tales palabras. No desea que los usuarios elijan
LetItGo
como contraseña en su sitio de fans de Frozen.