usar seguras porque las importancia contraseñas database security design web-applications passwords

database - seguras - ¿Por qué restringir la longitud de una contraseña?



importancia de las contraseñas seguras (9)

Me acabo de registrar en un sitio para comprar algunos productos, y cuando traté de ingresar mi contraseña (razonablemente segura) me informaron que era demasiado larga y que debía ingresar una contraseña de entre 5 y 10 caracteres. ¿Qué sentido tiene hacer eso? ¿Quién toma decisiones como esta? Seguramente la contraseña ideal sería realmente larga y complicada. ¿Por qué la gente insiste en tratar de restringir qué tipos de contraseñas puede usar?

¿Tuviste que implementar un inicio de sesión en un sitio web? ¿Fue el inicio de sesión para fines seguros (por ejemplo, comprar productos). ¿Qué restricciones (si las hay) pusiste en la contraseña del usuario? ¿Cuáles fueron sus razones para la decisión?


Algunos sitios web (mal diseñados) tienen la longitud máxima de las contraseñas por una simple razón: ese es todo el espacio que tienen en su base de datos para almacenar su contraseña. Existe una buena posibilidad de que no lo estén procesando o procesando, lo que significa que está almacenado en texto sin formato. Sitios web como ese uso contraseñas de un solo uso, desechables para siempre. Es un diseño pobre, y es desafortunado que la gente todavía lo use.


La única razón posible para limitar una contraseña de esa manera sería simplificar la tabla de la base de datos, y esa es una mala razón. ¡Se deben permitir contraseñas largas y complicadas!

Además, el sitio no debe almacenar la contraseña en absoluto, sino almacenar un hash criptográfico. Como el hash es de tamaño fijo, la base de datos es muy simple y los requisitos de almacenamiento son pequeños.


La razón más común para esto es porque el front-end se integra con algún viejo sistema heredado que no maneja más de un número dado de caracteres.


La restricción de longitud probablemente se deba a un problema de espacio de almacenamiento, pero podría ser una medida anti-scripting realmente mala. Tendría mucha más confianza si mi banco me dijera que mi contraseña es demasiado corta, en lugar de demasiado larga. Cada vez que me dicen que mi contraseña es demasiado corta o que los caracteres "especiales" no están permitidos, pienso: "Oh, no deben haber encontrado mi contraseña en el diccionario ... facepalm ".

Cualquier personaje debe ser permitido. Las frases de paso deben alentarse, no desanimarse. Son mucho más fáciles de recordar que las contraseñas crípticas y mucho más difíciles de descifrar, ya que no estarán en una tabla de búsqueda.


Parece especialmente estúpido, dado que cualquier sitio web medio decente no almacena contraseñas de texto claro en su base de datos, almacenan un hash unidireccional de esa contraseña (que siempre será una longitud establecida según el algoritmo utilizado, por ejemplo, sha1 es un resumen de 160 bits) ) y luego volver a generar esa contraseña al iniciar sesión para asegurarse de que la nueva contraseña hash coincida con la almacenada.

Aparte de los estéticos de diseño frontend, estoy de acuerdo, no tiene ningún sentido hacer cumplir la longitud máxima de la contraseña. Sin embargo, la duración mínima es completamente diferente por razones obvias.


Podría ser porque están almacenando su contraseña como texto sin formato y están tratando de ahorrar espacio, pero también podría ser para tratar de evitar que las personas hagan sus contraseñas realmente largas y luego las olviden, lo que significa que la empresa debe enviar un correo electrónico con su contraseña, que es un poco molesto.


Podría ser que el algoritmo que utilizan para el cifrado no funcione bien con contraseñas grandes o que solo tengan un almacenamiento limitado para almacenarlo. Ambas son razones muy pobres, lo sé, pero es posible.

Si tuviera que crear reglas de contraseña, solo protegería a los usuarios, como obligarlos a usar al menos un carácter especial y un número, o mezclar mayúsculas y minúsculas.


Restringir el tamaño de una contraseña es un intento de ahorrar espacio de almacenamiento. Más bien indica que su contraseña se almacena de forma sencilla en su base de datos, por lo que quieren restringir su tamaño. De lo contrario, es solo una restricción porque los implementadores no saben nada mejor. De cualquier manera, es una mala señal.

Es posible que desee ponerse en contacto con los administradores del sitio y preguntarles al respecto. Deben almacenar hashes, no contraseñas, que siempre son del mismo tamaño sin importar cuán grande sea la contraseña. Realmente no debería haber un límite para el tamaño de la contraseña que ingrese, ni para el dominio de los caracteres que puede ingresar.


Una contraseña alfanumérica de 10 caracteres insensible a mayúsculas y minúsculas tiene 839,299,365,868,340,224 posibles permutaciones. Le tomará unas pocas edades de hielo a la fuerza bruta, suponiendo que pueda controlar 1 millón por segundo. Eso es lo suficientemente seguro para mí.

El "mejor" motivo probablemente sea para que pueda recordar la contraseña.