¿Una longitud máxima de contraseña significa almacenamiento sin hash?

18

Cuando un sistema requiere una contraseña de entre 6 y 20 caracteres de longitud, ¿significa que la contraseña se almacena sin usar una función de hashing y que el campo mysql (o similar) tiene 20 caracteres de longitud?

¿Hay alguna razón para tener una longitud máxima si se utiliza una función de hash?
Estoy pensando que tal vez una vulnerabilidad de DOS cuando hashing enormes contraseñas. Un límite de ~ 100 caracteres debería ser suficiente para detener esto, sin molestar a los usuarios. ¿Tal vez incluso cortar la contraseña a una longitud específica antes de tenerla?

    
pregunta Filip Haglund 03.09.2013 - 10:50
fuente

1 respuesta

23

Hay algunas razones por las que se podrían haber impuesto límites:

  • Algunos desarrolladores creen que los límites razonables (por ejemplo, 120 caracteres) ayudan a reducir la carga del servidor para el hashing de contraseñas de tamaño ridículo. En realidad, los gastos generales de transferencia son probablemente más intensivos, ya que los datos se reducen a un estado de longitud fija en la primera ronda de la mayoría de hashes, por lo que es un punto bastante discutible.
  • consejos legados. Los sistemas realmente antiguos solían tener límites técnicos que requerían que las contraseñas fueran cortas (por ejemplo, 14 caracteres o menos) y esto ha permeado el asesoramiento dado a los nuevos desarrolladores. Es irritante y al revés, pero sucede. También se relaciona con la actitud de "siempre lo hemos hecho así" que muchos lugares tienen.
  • Reduciendo las llamadas de soporte técnico y restableciendo el volumen. Esta es, con mucho, la razón más legítima, pero también viene con algunas advertencias que lo convierten en una mala idea. Se espera que los usuarios olviden sus contraseñas de vez en cuando, y se ve que las contraseñas complejas / largas aumentan esta tasa. Sin embargo, si tiene una "estructura" para su contraseña, lo que implica una longitud fija que es demasiado grande para este servicio en particular, entonces esto conduce a una mayor probabilidad de reinicios.

En definitiva, no significa que no se esté haciendo hashing. Solo significa que están siguiendo un mal consejo y continúan con un status quo de malas prácticas.

Algunas preguntas relacionadas:

respondido por el Polynomial 03.09.2013 - 11:00
fuente

Lea otras preguntas en las etiquetas