Esta es la política de contraseña que acabo de recibir de UPS (solo para verificar el estado del paquete):
Su contraseña debe tener entre 8 y 26 caracteres de longitud. Debe contener al menos tres de los siguientes tipos de caracteres: letras minúsculas, mayúsculas, números, caracteres especiales o espacios. La contraseña no puede contener su ID de usuario, su nombre o su dirección de correo electrónico. (SSO_1007)
De hecho, tengo que romper mi cerebro para generar esta contraseña, pero no solo eso, lo más importante, estoy seguro de que después de 3 días olvidaré cuál es esta contraseña. Los usuarios no serán tan felices. El restablecimiento de contraseña puede ser frecuente. Creo que los usuarios intentarán evitar usar el sitio a menos que tengan que hacerlo.
¿Qué es una política de contraseña segura y razonable al configurar un sitio web? Creo que algunas compañías pueden temer que algunos hackers intenten contraseñas un millón de veces o más, por lo que agregan todos esos requisitos para "caracteres especiales, minúsculas, mayúsculas", pero ¿no será razonable apagar la cuenta o simplemente deshabilitar el contraseña y requiere un restablecimiento de contraseña si un usuario ha intentado 30 veces o 100 veces? ¿O agrega un retraso de 5 segundos cada vez que el usuario lo intentó 30 veces? Si es así, esos caracteres especiales no serán tan necesarios.
Respuestas:
Para ser honesto, creo que tener requisitos estrictos de contraseña es una molestia y no un beneficio. Yo diría que, por regla general, lo más razonable es especificar una longitud, tal vez caracteres especiales + alfanuméricos. Algo más es pedirle a la gente que escriba su contraseña, lo que anula el propósito de tener contraseñas seguras. También odio tener que cambiar su contraseña cada x días con el habitual conjunto de reglas ridículas (por ejemplo, no puedo reutilizar las últimas 25 contraseñas); nuevamente, lo único que hace es obligar a las personas a escribir la cosa para que no se olviden En este punto, es mejor que no solicite una contraseña.
fuente
Mi opinión es que las contraseñas solo deben tener un requisito de longitud. No quieres que alguien ponga "a" como contraseña. Y como muestra la respuesta xkcd, una contraseña extremadamente difícil de recordar no siempre es tan segura. Siempre permita que las personas cambien su contraseña también. Y olvídate de la basura "no puedes usar ninguno de los caracteres contenidos en tu contraseña anterior".
Hacer una política de contraseña obscena hará más daño que bien. En la universidad, fui a la política de contraseña que era similar a la política de UPS Y tuviste que cambiarla cada 2 semanas Y no pudiste usar las 50 contraseñas anteriores que usaste. Entonces, lo que mis maestros recomendaron al configurar cuentas es usar nuestra contraseña regular que se ajusta a las reglas y agregar un contador al final de la misma y poner en su contraseña una pista de cuál es el número del contador.
Además, una política de contraseña estricta no hará nada cada vez que su base de datos de texto sin formato sea pirateada por un error de inyección SQL ... o envíe contraseñas por correo electrónico a sus usuarios y sea interceptada.
Básicamente, no haga que su sistema de contraseña sea una molestia para sus usuarios o los alentará a hacer cosas inseguras para que puedan solucionarlo. Por ejemplo, mi empresa al obtener un servidor dedicado de un centro de datos, nos configuraron contraseñas de 20 caracteres de longitud. Eran demasiado seguros para enviarnos un correo electrónico y tuvieron que ser enviados por fax. No pudimos cambiar las contraseñas, solo solicitamos que se genere una nueva contraseña de 20 caracteres. Y así fue para todos los usuarios ... así que lo que terminamos haciendo es crear un documento de texto en nuestros escritorios con la contraseña. Además, ya no los usamos porque a pesar de toda la "seguridad" que tenían, eran realmente bastante inseguros.
fuente
Asegúrese de dejar espacios. Todos los que conozco pueden escribir frases cortas más rápido de lo que pueden escribir la primera letra de cada palabra en la frase. Por ejemplo, intente escribir
Bird in a Tree
y luegoBiaT
. Esto tiene la ventaja de que si escribe una frase vagamente adecuada comopick Up milk
oMeetings all day
en una nota adhesiva, obviamente no es una contraseña.No soy un gran admirador de las reglas de "debes tener números y símbolos", pero si las aplicas consistentemente (p. Ej., Siempre es 1, a es siempre @), aún puedes escribir la frase en inglés en el adhesivo, aplicar las reglas conocidas solo para ti-leet-speak e ingresa
B1rd in @ tree
en el diálogo de contraseña. Desde el punto de vista de la seguridad, los números y símbolos no agregan mucho, pero no necesitan volverte loco como usuario.Los sitios con una longitud máxima de contraseña me ponen nervioso si mi bonita frase se considera "demasiado larga". 26 parece razonable. Entiendo que alguien tiene que diseñar el ancho de la columna, pero 12 es estúpidamente corto.
fuente
Seguro versus conveniente
La política de seguridad de una contraseña debe ser apropiada para el costo del compromiso. Si su sitio web tiene mi cuenta financiera, me gustaría una protección estricta con contraseña. Si es un sitio de fanáticos de nicho sobre Autobots, no necesita mucha protección.
Las reglas de UPS son razonables con la excepción de:
No vi el reinicio después de X número de intentos en las reglas citadas, creo que esto es una tontería en la mayoría de los casos. Creo que es mejor que bloquees a alguien por un período de tiempo, en lugar de forzar un reinicio. Esto implica un cierto nivel de seguridad. Si eso no es necesario, entonces no lo es y bloquear / restablecer es un punto discutible.
Hay muchas reglas de política de contraseñas que tienen beneficios de seguridad marginal en el mejor de los casos. Sin embargo, también hay reglas que tienen beneficios reales y tangibles para la seguridad de su contraseña.
Reglas (y las razones):
Evita un ataque combinatorio de prueba y error que rápidamente romperá una contraseña muy corta.
Esto evita ataques de diccionario.
Esto aumenta el espacio de ataque promedio.
Todos estos motivos se pueden rastrear para minimizar el sesgo del usuario al elegir las contraseñas. La mayoría de los usuarios están predispuestos a crear contraseñas más cortas y fáciles de recordar. Desafortunadamente, eso generalmente hace que la contraseña sea más fácil de atacar. Lo que la mayoría de los usuarios necesitan son instrucciones sobre cómo crear contraseñas memorables seguras o una frase de contraseña más larga.
Contraseñas memorables seguras
Cuando necesito crear una contraseña con un límite de longitud, siempre comienzo con una frase, así que tengo un mnemotécnico incorporado. Tomo la frase y obtengo el mismo carácter posicional de cada palabra. Ahora tengo una secuencia de solo personajes. Luego elijo mayúsculas, algunas basadas en nombres propios en la frase, o por patrón (primer y último, cada dos letras, etc.). Luego agrego signos de puntuación y números basados en alguna regla o patrón arbitrario. (es decir, todas las 'j's son 7, usando' & 'donde hay una' y 'en la frase, etc.).
Frase proporcionada por Queen
Después de escribirlo varias veces al pensar la frase, nunca tendré problemas para recordar.
fuente
real
seguridad (solo aumentan la percepción de seguridad) y en realidad pueden dañar la seguridad.Mama, just killed a man.
La contraseña mínima de 8 caracteres es un legado de Lan Manager. El Lan Manager ha añadido las contraseñas dividiéndolas en 2 cadenas de 7 caracteres, y luego las hash. Al requerir un mínimo de 8 caracteres, garantizaron que la segunda palabra no fuera la misma que para una contraseña en blanco (no había sal, por lo que cada instancia de 7 espacios en blanco se convirtió en el mismo resultado).
Me he rendido, las reglas son tan tontas y ridículas que las escribo ahora. Todos excepto los pocos que uso para sitios web. Mi empleador actual también realiza un seguimiento de las últimas 24 contraseñas utilizadas para que no se puedan reciclar, ni la contraseña puede contener palabras en inglés de más de 3 caracteres (hacia adelante o hacia atrás). También se asegura de que no use una palabra anterior e incremente algún número como parte de ella (por lo tanto, si
P4ssw0rd1
se usara, no podría usarP4ssw0rd2
, niP4ssw0rd0
).Aprendí mi lección de la manera difícil en la oficina cuando tuve que cambiar una contraseña, tardé 45 minutos en hacer que el sistema aceptara un reemplazo, luego rápidamente olvidé lo que se me ocurrió y tuve que restablecerlo y desperdicié otros 45 minutos tratando de obtener algo que pudiera recordar que era lo suficientemente complejo como para cumplir con los requisitos (algunos de los requisitos se enumeran anteriormente, algunos no lo son y otros no lo sé). No es muy divertido tratar de encontrar algo que cumpla con las reglas que no se te permite saber. Al menos con juegos como Mastermind , se te dan pistas sobre lo cerca que estás. En la oficina, algunas personas usan una tarjeta inteligente , yo no soy uno de ellos.
fuente
Usar bcrypt cuando se almacena la contraseña es un buen primer comienzo, simplemente porque hace que los intentos de piratería por fuerza bruta sean inviables.
fuente
Razonable y seguro son mutuamente excluyentes. Son dos extremos de una barra. Lograr un equilibrio en el medio será lo mejor. Para llegar a lo seguro y la gente escribe las contraseñas o utiliza la función de desbloqueo de contraseña totalmente insegura.
El ejemplo anterior parece inclinarse más hacia lo seguro que lo razonable. He visto cosas peores.
Prefiero inclinarme hacia lo razonable. La clave es inclinarse hacia la seguridad en su back-end. Almacene la menor cantidad posible de sales, etc. Todos los últimos métodos recomendados para codificar las contraseñas en su base de datos y codificarlas también de una manera. Luego mantenga su base de datos y su código seguros. También capacite a cualquier persona que tenga derechos de administrador en su sistema para que necesiten usar una contraseña segura única. Recientemente se demostró que unir varias palabras del diccionario es más seguro que arrastrar mayúsculas y minúsculas. Se requirieron coincidencias de diccionario compuesto que realmente suman mucho tiempo para los piratas informáticos, sin embargo, estos aún eran memorables para los usuarios.
fuente
No es una palabra del diccionario, o una variación trivial de la misma. Eso es. Un paquete de dos palabras del diccionario es prácticamente indescifrable. Un sustituto de una sola letra para un personaje que no es un sustituto obvio (0-O, 1-I, 5-S) también.
Además, si limita el tiempo de respuesta (contraseña aceptada / denegada después de 1s, y no se permiten dos intentos paralelos para el mismo inicio de sesión), uno debe finalizar (OK o error) antes de intentar con otro, cualquier letra de 6 letras que no esté en el diccionario. La contraseña de caracteres especiales tardará 9 años en romperse.
fuente
La complejidad del requisito de contraseña debe equilibrarse con el contenido de sus sitios. Un banco debe requerir una contraseña altamente compleja (mayúsculas, minúsculas, números y caracteres especiales). Sin embargo, si el contenido es trivial, como las búsquedas guardadas y los números de seguimiento, el requisito de contraseña debe ser relajado. La longitud mínima de 6 caracteres debería ser suficiente. De lo contrario, simplemente molestará a su audiencia y le impedirá crear un inicio de sesión.
fuente