¿Debo tener una longitud máxima de contraseña?

27

Estoy creando una aplicación web, y parte de mi método de autenticación es la longitud de la contraseña.

¿Debo poner uno en su lugar? (digamos, ¿50 caracteres?) O debería poner una longitud mínima (actualmente en 6).

¿Hay problemas con no poner una longitud máxima?

    
pregunta jrg 15.08.2011 - 20:34
fuente

3 respuestas

32

Debes saltear y hash la contraseña en lugar de almacenarla en texto claro. La función de hash dará como resultado un tamaño de salida constante independientemente de la longitud de la cadena de entrada.

Usar una longitud mínima y quizás algunas otras reglas de calidad es una buena idea porque ayuda un poco contra la pereza.

Si tiene miedo de los ataques de denegación de servicio, puede poner en su lugar un límite del lado del servidor para los campos de entrada ordinarios, por ejemplo, 1000 bytes. Es poco probable que alguien quiera usar una contraseña tan larga.

    
respondido por el Hendrik Brummermann 15.08.2011 - 20:51
fuente
21

Mi recomendación: 1,024 bytes.

La limitación en el tamaño de las contraseñas es una limitación que existía por razones de requisitos técnicos obsoletos. El almacenamiento de contraseñas moderno debe basarse en el hashing que hace que el campo de almacenamiento de contraseñas tenga un tamaño fijo, independientemente de la longitud de la contraseña. No queremos ver las contraseñas de 1mb, ya que eso simplemente indicaría que alguien está tratando de provocar una denegación de servicio. Creo que nunca veré a un humano usar una contraseña de 1.024 caracteres (o más). Creo que es un valor lo suficientemente pequeño para evitar cualquier DOS real y un valor lo suficientemente alto como para no alcanzarlo en ninguna circunstancia razonable.

    
respondido por el Jeff Ferland 15.08.2011 - 20:50
fuente
4

Depende de la función de resumen del mensaje que uses. Para la mayoría (sha-256, incluso md5, sha1 ect ...) no importa. Sin embargo, si está utilizando bcrypt, bcrypt tiene un límite de 55 caracteres. Por lo tanto, si su valor es 27 bytes, puede tener una contraseña de 28 bytes.

En una nota al margen, CWE-521 requiere que tengas una longitud máxima de contraseña. Sin embargo, no indica el máximo, y por seguridad prescriptiva no veo ninguna razón por la que pueda ser de 512 kbytes o más.

    
respondido por el rook 17.08.2011 - 19:02
fuente

Lea otras preguntas en las etiquetas