He encontrado bastantes sitios que limitan la longitud que permiten que las contraseñas sean y / o no permiten ciertos caracteres. Eso me limita, ya que quiero ampliar y alargar el espacio de búsqueda de mi contraseña. También me da una sensación incómoda de que podrían no ser hash.
¿Existen buenas razones para establecer una longitud superior o excluir caracteres en las contraseñas?
Respuestas:
No
No hay buenas razones
EDITAR: No puedo probar que no hay buenas razones, porque uno no puede probar que es negativo. No puedo pensar en buenas razones para esto: como señalaron otros, el hash será del mismo tamaño independientemente del tamaño de la entrada, y la eliminación de caracteres válidos (del contexto de la pregunta) solo reduce el espacio de estado. La respuesta parece obvia en su cara: no hay buenas razones. Puede haber una gran cantidad de razones que suenan bien o que parecen buenas, pero no lo son. Si lo fueran, alguien ya los habría publicado aquí, o si no lo hubiera hecho aquí, seguramente en security.stackexchange.com, y esta respuesta no habría sido tan votada.
fuente
Limitar la longitud puede ser una medida para limitar el tiempo de ejecución del hash, así como limitar el ancho de banda (y ambos son realmente marginales de todos modos). Aparte de eso, no hay una buena razón, especialmente desde el punto de vista de la seguridad.
Se podría decir: "La gente olvidará las contraseñas más largas con mayor facilidad", pero esa es realmente una declaración estúpida y no llega al punto en absoluto.
En cuanto a los caracteres, siempre y cuando conozca posibles problemas de codificación con la transferencia y / o migración de datos en el futuro (por ejemplo, cambiará de ASCII a UTF-8 en 2 años), permitir que más caracteres solo puedan ser buenos para las contraseñas.
fuente
Sí , hay una razón para los caracteres especiales.
No permitir caracteres especiales es más una cuestión de usabilidad que de seguridad. En primer lugar, podrían ser destrozados por problemas de codificación. En segundo lugar, incluso si garantizara utilizar siempre la misma codificación, todavía existe el problema del dispositivo de entrada. Dependerá de tener un teclado completo (que elimina la mayoría de los dispositivos móviles), con la misma distribución del teclado. Más adelante difieren no solo entre los idiomas, sino también entre los sistemas operativos, los diseños para Windows, Linux y OSX pueden ser un poco diferentes. Así que no veo una buena razón para no permitir la contraseña como:
√Ω≈ç∫∞§…¬å∑±
.fuente
Hubo un poco de controversia en el mundo de la seguridad hace unos años cuando los clientes de Chase descubrieron que sus contraseñas no distinguen entre mayúsculas y minúsculas. Resultó que su página web era solo una interfaz de un sistema de back-end OS / 400 de 30 años, que tenía una limitación técnica que ignoraba. Arreglar esto aparentemente costaría millones de dólares.
El punto es que puede haber razones heredadas costosas para no permitir contraseñas de cierta longitud.
(Tenga en cuenta que no estoy tolerando esta excusa ...)
fuente
La mayoría de los bancos, departamentos de TI, etc., que imponen restricciones de contraseña máximas, no lo hacen por razones técnicas. Son perfectamente conscientes de cómo funciona el hashing de contraseñas y cómo almacenar contraseñas complejas. Imponen estas limitaciones porque reduce la cantidad de llamadas de asistencia para las personas que han olvidado sus contraseñas. ¿Es esta una buena razón para imponer ese tipo de limitación? De ninguna manera. Pero, sin embargo, es la razón principal.
fuente
valid Business reason
(Personalmente no creo que haya una correlación)No todos los dispositivos de entrada (en cuanto al hardware) a menudo tienen todos los caracteres que tiene un teclado completo, o de la misma manera. Si uno no está usando un administrador de contraseñas, uno podría encontrarse en problemas para ingresar dicha contraseña, ¿no? Y Unicode todavía está lejos (lejos, muy lejos) de ser un estándar.
fuente
Voy a adivinar y decir que algunas de estas restricciones se deben al filtrado de caracteres en su sitio web (
& < > #
) para mantener alejados a los piratas informáticos. Mientras que otros son las ideas descabelladas que surgen de los comités de jefes de pelo puntiagudo.Me he encontrado con una serie de decisiones de "seguridad" realmente estúpidas (en mi opinión). Como ejemplo, una gran empresa de inversión maneja mis cuentas IRA y mi pensión. Con el fin de hacer cualquier contacto con la pensión que me obliga a escribir la contraseña en el teléfono (no se puede llegar a ellos de otra manera). Mi cuenta de corretaje / IRA usa letras (mayúsculas y minúsculas), así como algunos signos de puntuación: ninguno de estos caracteres aparece en el teclado numérico de un teléfono. Si no puede iniciar sesión con la contraseña por teléfono, le permite restablecer la contraseña de su cuenta de corretaje a algo que puede escribir por teléfono.
Mi sistema de nómina (para la empresa de consultoría para la que trabajo) requiere números, y solo números; esto les permite usar la misma base de datos si el usuario llama (nunca he hecho esto) o usa la interfaz web (solo uso esto) .
Dicho esto, es hora de cambiar mi contraseña en la oficina. Tienen restricciones tan locas que calculo que tomará aproximadamente medio día encontrar una contraseña aceptable para el sistema: al menos 2 letras mayúsculas, al menos 2 letras minúsculas, al menos 2 dígitos (que no pueden ser +/- 1 de las contraseñas anteriores), al menos 2 caracteres no alfa / no numéricos, no pueden coincidir con ninguna de las últimas 24 contraseñas, no pueden contener ninguna cadena (hacia adelante o hacia atrás) que sea una palabra (3 o más letras de largo) en inglés ( también un par de otros idiomas que no tengo autorización para saber). Creo que la longitud mínima es de 10-11 caracteres.
fuente
Una razón para limitar los caracteres se debería a cómo se ingresa la contraseña.
Varios bancos, por ejemplo, con sus sitios web de Banca por Internet, solicitan caracteres específicos de una contraseña y selecciona los caracteres apropiados a través de un cuadro desplegable.
Hacen esto, presumiblemente, para que los registradores de teclas no puedan detectar la pulsación de tecla y, por lo tanto, conozcan [caracteres de] su contraseña. Si bien sé que hay muchas otras formas en que podrían eludirse tales medidas, por ejemplo, captura de pantalla; sigue siendo efectivo contra keyloggers.
Si tuvieran que permitir todos los caracteres, la longitud del cuadro desplegable se volvería engorrosa y también permitiría la confusión entre personajes de aspecto similar.
fuente
No permitir caracteres especiales como tab sería válido. Puede iniciar sesión o cambiar su contraseña con una pestaña char en modo texto, pero no puede usarla en una GUI o entorno web. Un carácter de barra diagonal inversa también presentará algunos problemas multiplataforma.
por cierto, las contraseñas largas no son contraseñas, son frases de contraseña. Su usuario promedio no puede recordar 2Z8d!% G # x pero puede recordar 'el nombre de mi mascota es fido el perro'. El texto más largo es más difícil de descifrar mediante la fuerza bruta y es mucho menos probable que se escriba en una nota adjunta a la pantalla.
fuente
Cuando las personas escriben cometen errores, llamados "errores tipográficos". Normalmente la gente ve sus errores y los corrige. Para la entrada de contraseña, generalmente no puede ver lo que ha escrito y, por lo tanto, no puede corregir sus errores tipográficos. Comete errores sin darse cuenta, envía su contraseña y vuelve como "contraseña no válida". Entonces intenta de nuevo. Entonces intenta de nuevo.
Puedes pensarlo como "3 pequeños errores tipográficos y luego no puedes distinguirlo de un ataque de fuerza bruta". ¿Cómo se defienden los sistemas contra los ataques de fuerza bruta? ¿Una respuesta explícita de " Demasiados intentos, vete, no podrás iniciar sesión aunque lo hagas bien "? ¿Incrementando exponencialmente los retrasos en la entrada de la contraseña que conducen a tiempos de espera del navegador cuando el retraso es demasiado largo, por lo que es imposible intentar iniciar sesión nuevamente? Los enfoques varían, pero siempre hay una consecuencia en un sistema bien diseñado.
Puedes considerarlo como "3 pequeños errores tipográficos y luego obtienes algún tipo de denegación de servicio".
A medida que aumenta la longitud de la contraseña, aumenta el riesgo de errores tipográficos (y, por lo tanto, el riesgo de denegar el acceso de una persona autorizada). Cualquier cosa que tenga más de 20 caracteres será mal escrita con frecuencia (a menos que el usuario sea inteligente / perezoso y almacene su contraseña en algún lugar para que pueda "copiar y pegar" sin preocuparse por los errores tipográficos, como un buen archivo de texto plano en su escritorio llamado " contraseñas " .txt ").
fuente