¿Por qué existen requisitos de seguridad de contraseña?

39

La fortaleza de la contraseña ahora lo es todo, y te obligan a crear contraseñas con dígitos, caracteres especiales, letras mayúsculas y demás. Además de ser una pesadilla de usabilidad (incluso yo, como desarrollador, odio cuando un sitio web requiere una contraseña compleja), ¿cuáles son los beneficios reales de tener contraseñas seguras (para la autenticación de sitios web)? Estos son los requisitos previos de un sistema que maneje la autenticación correctamente:

  • almacene las contraseñas usando bcrypt (o al menos use salt + hash): es difícil encontrar la contraseña original cuando un atacante obtiene la base de datos
  • bloquee los intentos de contraseña posteriores con un tiempo de reutilización creciente, sin fuerza bruta a través del sitio
pregunta Bozho 25.06.2012 - 12:54
fuente

8 respuestas

28

Porque, como revelan LinkedIn y otras filtraciones recientes de contraseñas, las contraseñas más comunes para los sitios web son "contraseña", "dios", "123456", etc. Por lo tanto, puede utilizar la fuerza bruta con una lista muy corta de las contraseñas más comunes. . Aún así, solo puede prohibir esas contraseñas, o requerir una contraseña larga, ya que las combinaciones posibles aumentan exponencialmente con la longitud, y una contraseña larga es mejor que una contraseña "segura" para evitar la fuerza bruta. Pero demasiadas personas siguen lo que creen que es una buena práctica sin cuestionarla, ¡de hecho, una gran pregunta!

    
respondido por el Maxim Krizhanovsky 25.06.2012 - 13:19
fuente
15

Porque nadie fue despedido por crear requisitos de seguridad de contraseña. Para el administrador, es básicamente el enfoque de bajo riesgo, a pesar de que estas restricciones son muy molestas para el usuario y ofrecen casi ninguna seguridad real.

    
respondido por el static_rtti 25.06.2012 - 13:25
fuente
9

¡Aquí hay un par de ilustraciones relevantes de xkcd! En lo que se considera fuerte, en realidad es débil porque las personas son humanas y no se esforzarán, y el otro es la pereza, incluso si usan una contraseña "fuerte", se reutiliza en todas partes. ¡No puedes ganar!

Fuerza de la contraseña

Y

Reutilizacióndecontraseña

    
respondido por el Jarrod Roberson 25.06.2012 - 22:08
fuente
8

Si permites contraseñas cortas sin un requisito de fortaleza, entonces te estás dejando abierto a alguien que realiza un ataque de estilo arco iris en los nombres de usuario. Por ejemplo:

admin,password
fred,password
bob,password
...keep doing this until the cooldown window expires...
admin,god
fred,god
bob,god
...repeat as needed...

Muchos sistemas ni siquiera van a marcar este patrón como un problema, y nunca he visto uno que realmente lo atraparía si lo hicieras a través de una red de bots y lo estrangulara adecuadamente.

    
respondido por el Bill 25.06.2012 - 14:48
fuente
3

Hay varios tipos diferentes de ataques a los que se someten las contraseñas, al igual que hay varias defensas que se pueden implementar.

bcrypt y / o un bloqueo de contraseña son solo dos de las muchas defensas posibles.
Seguridad de la contraseña es Un artículo bastante decente.

Para responder específicamente a su pregunta sobre por qué se requieren las combinaciones: es el único medio disponible para forzar la selección de una contraseña segura. Una contraseña segura realmente significa una alta entropía (cambio) entre los caracteres de la contraseña. Cuanto mayor sea la entropía, mayor será el rango de bits disponibles para el cifrado (como con bcrypt). Una contraseña de baja entropía (débil) no utiliza el espacio completo disponible para el cifrado. Lo que pensaste fue que el cifrado de 128 bits o 256 bits termina siendo mucho menos porque no se utilizó el rango completo de claves.

Algunos números podrían ayudar a explicar las cosas más claramente. Usaremos una contraseña de 8 caracteres para el ejemplo. Todas las contraseñas en minúscula solo tienen 26 combinaciones diferentes. Así que son 26 ^ 8 o 2.1x10 ^ 11 combinaciones diferentes.
Agregar caracteres en mayúsculas duplica nuestro espacio (ahora 52 no 26) pero nos compra muchas más combinaciones. 52 ^ 8 o 5.3x10 ^ 13, que es una ganancia de aproximadamente 250x.
Comience agregando números o caracteres especiales y podrá ver fácilmente los efectos de forzar más entropía en el espacio clave.

En realidad, todavía no tenemos ese espacio clave completo, ya que algo que se puede recordar generalmente no tiene mucha entropía. Pero los requisitos ayudan a introducir más entropía en la contraseña.

    
respondido por el GlenH7 25.06.2012 - 14:07
fuente
2
  
  • almacene las contraseñas usando bcrypt (o al menos use salt + hash): es difícil encontrar la contraseña original cuando un atacante obtiene la base de datos
  •   

Si han comprometido tu servidor, tienes cosas peores que preocuparte.

Una analogía:

El ladrón irrumpe en tu casa. Pero todas tus llaves están guardadas de forma segura. ¿Y qué? él está en tu casa!

  
  • bloquee los intentos de contraseña posteriores con un tiempo de reutilización creciente, sin fuerza bruta a través del sitio
  •   

Esto solo ralentiza el problema si la contraseña es débil, por ejemplo, "contraseña". Y ese es el primer intento, luego tu espalda al cuadrado.

Tener una contraseña segura es una buena idea (tm)

    
respondido por el Darknight 25.06.2012 - 13:50
fuente
1

Una razón que no se menciona en ninguna otra parte es que puede ser que usted tenga un mayor interés en la seguridad de su cuenta de usuario que los propios usuarios.

Por ejemplo, si está ejecutando un sistema completamente no crítico como, por ejemplo, un foro de discusión en línea, a los usuarios puede que realmente no les importe si sus cuentas están comprometidas, sin embargo, si el 5% de sus usuarios tienen contraseñas 123456 'y' contraseña ', entonces tendrás problemas perpetuos con los spammers que utilizan cuentas comprometidas; si está ejecutando una red escolar, nuevamente, una parte importante de los usuarios no se preocupará especialmente si se abusa de sus cuentas, pero los abusadores le causarán problemas si las contraseñas comunes del top 5 pueden obtener acceso a una docena de cuentas cada vez. .

Para este escenario de ataque (intente con una contraseña trivial para todos los nombres de cuentas que pueda encontrar) no necesita acceso a la base de datos, y los bloqueos no serán útiles mientras haya suficientes direcciones IP "nuevas" disponibles.

    
respondido por el Peteris 25.02.2014 - 23:49
fuente
0

El problema con sus soluciones son:

  • El uso de hash + semilla no protege contra la adivinación de contraseñas de fuerza bruta.

  • El bloqueo se protege hasta cierto punto, pero tiene el problema de que se puede usar como un ataque de denegación de servicio contra usuarios genuinos, especialmente si usa un tiempo de bloqueo cada vez mayor. Y un atacante inteligente puede cambiar a múltiples cuentas, usar múltiples direcciones IP y / o esperar un tiempo entre cada intento.

Por el contrario, insistir en contraseñas fuertes (más difíciles de adivinar) significa que el atacante tiene que usar más adivinanzas (en promedio) para abrir una cuenta.

    
respondido por el Stephen C 25.06.2012 - 14:42
fuente

Lea otras preguntas en las etiquetas