¿Debo imponer una longitud máxima a las contraseñas?

Resuelto nickf asked hace 15 años • 24 respuestas

Puedo entender que imponer una longitud mínima a las contraseñas tiene mucho sentido (para salvar a los usuarios de sí mismos), pero mi banco exige que las contraseñas tengan entre 6 y 8 caracteres, y comencé a preguntarme...

  • ¿No facilitaría esto los ataques de fuerza bruta? (Malo)
  • ¿Esto implica que mi contraseña se almacena sin cifrar? (Malo)

Si alguien con (con suerte) algunos buenos profesionales de seguridad de TI trabajando para ellos está imponiendo una longitud máxima de contraseña, ¿debería pensar en hacer algo similar? ¿Cuáles son los pros y los contras de esto?

nickf avatar Sep 19 '08 08:09 nickf
Aceptado

Las contraseñas tienen un hash de 32, 40, 128, cualquiera que sea su longitud. La única razón para una longitud mínima es evitar contraseñas fáciles de adivinar. No hay ningún propósito para una longitud máxima.

El XKCD obligatorio que explica por qué no le hace ningún favor a su usuario si impone una longitud máxima:

El XKCD obligatorio

epochwolf avatar Sep 19 '2008 01:09 epochwolf

La longitud máxima especificada en un campo de contraseña debe leerse como ADVERTENCIA DE SEGURIDAD . Cualquier usuario sensato y consciente de la seguridad debe asumir lo peor y esperar que este sitio almacene su contraseña literalmente (es decir, sin hash, como lo explica epochwolf).

En ese caso es así:

  1. Evite utilizar este sitio como si fuera una plaga si es posible. Obviamente no saben nada sobre seguridad.
  2. Si realmente debe utilizar el sitio, asegúrese de que su contraseña sea única, a diferencia de cualquier contraseña que utilice en otros lugares.

Si está desarrollando un sitio que acepta contraseñas, no ponga un límite tonto de contraseñas, a menos que quiera que le sigan con el mismo pincel.

[Internamente, por supuesto, su código puede tratar solo los primeros 256/1024/2k/4k/(lo que sea) bytes como "significativos", para evitar problemas con contraseñas gigantescas.]

tardate avatar Sep 19 '2008 04:09 tardate

Permitir una longitud de contraseña completamente ilimitada tiene un gran inconveniente si acepta la contraseña de fuentes que no son de confianza.

El remitente podría intentar darle una contraseña tan larga que resulte en una denegación de servicio para otras personas. Por ejemplo, si la contraseña es 1GB de datos y dedicas todo tu tiempo acéptala hasta que te quedes sin memoria. Ahora supongamos que esta persona le envía esta contraseña tantas veces como usted esté dispuesto a aceptar. Si no tiene cuidado con los demás parámetros involucrados, esto podría provocar un ataque DoS.

Establecer el límite superior en algo así como 256 caracteres parece demasiado generoso para los estándares actuales.

Jason Dagit avatar Sep 19 '2008 02:09 Jason Dagit