¿Hay un umbral para una contraseña durante tanto tiempo que no se vuelva más seguro o incluso se vuelva inseguro?

88

Siempre escucho "Una contraseña larga es buena, una contraseña más larga es mejor". Pero, ¿existe tal cosa como " La contraseña es tan larga que se está volviendo insegura " o " La contraseña es lo suficientemente larga, por lo que ya no importará "?

Estoy interesado en la seguridad de la contraseña con respecto a descifrarla únicamente.
No si es puede causar una sobrecarga DoS en los servidores mientras se realiza el hash, o si el proveedor piensa lo contrario .

También asuma que la contraseña no contiene ningún diccionario estaría en los comentarios de todos modos. es almacenados usando las mejores prácticas , tiene un fuerte y sal única , y entropía relevante por personaje. Cómo el usuario recordará / recordará / almacenará la contraseña también no importa.

Estoy de acuerdo en que más tiempo / passwords / son más seguros . Estoy preguntando por el límite superior .

¿Hay una longitud (o tamaño de entropía) donde hacer que la contraseña deje de ser importante (sic), o incluso debilite su seguridad? Sé que depende del algoritmo de hash, si el límite superior de un algoritmo dado existe y se conoce, ¿qué es?

    
pregunta Mindwin 24.03.2016 - 14:43
fuente

10 respuestas

79

128 bits (de entropía)

El propósito principal de una contraseña más larga es prevenir ataques de fuerza bruta. En general, se acepta que 128 bits está más allá de la capacidad de fuerza bruta de cualquiera, y lo seguirá siendo en el futuro previsible. Puedes ver esta figura en algunos lugares, por ejemplo. Los cifrados SSL con una longitud de clave de 128 bits o más se consideran de "alta seguridad" y OWASP recomienda que los tokens de sesión tengan al menos 128 bits. El razonamiento es el mismo para todos estos: 128 bits previenen los ataques de fuerza bruta.

En la práctica, si una contraseña está hecha de mayúsculas y minúsculas, números y una pequeña puntuación, hay aproximadamente 6 bits de entropía en cada carácter, por lo que una contraseña de 128 bits consta de 22 caracteres.

Una contraseña se puede comprometer de otra manera que no sea la fuerza bruta. Tal vez haya un keylogger en el sistema cliente, o el usuario sea engañado. La longitud de la contraseña casi no hace ninguna diferencia en estos ataques, incluso una contraseña de 1000 bits se capturaría de la misma manera. Y estos ataques son comunes en la práctica, por lo que realmente no vale la pena usar contraseñas demasiado largas.

De hecho, puede salirse con un poco menos de 128 bits. Si la contraseña tiene una función hash lenta como bcrypt, eso hace que un ataque de fuerza bruta sea más difícil, por lo que 100 bits (o aproximadamente) previenen completamente los ataques de fuerza bruta. Si solo está preocupado por los ataques en línea, y el sitio tiene una política de bloqueo, entonces puede salirse con menos aún: 64 bits evitarían por completo un ataque de fuerza bruta en línea de velocidad limitada.

    
respondido por el paj28 24.03.2016 - 15:17
fuente
37

¿Puede una contraseña ser tan larga como para ser insegura? Sí.

Cuando observa el panorama general de la seguridad en su organización, la seguridad no solo significa "proteger las cuentas con contraseñas que no se pueden descifrar". La seguridad debe proteger a toda la organización con la "tríada CIA" de confidencialidad, integridad y disponibilidad. Más allá de un cierto umbral de longitud de la contraseña, la confidencialidad y la integridad no mejoran estadísticamente, mientras que la disponibilidad disminuye debido a la poca facilidad de uso. Un sistema en el que no puede iniciar sesión no está disponible como uno que está inactivo.

Si obliga a su usuario a escribir una contraseña de 22 caracteres compuesta de letras, números y símbolos aleatorios y mixtos, sus usuarios serán más propensos a cometer errores. Considere que un usuario puede estar bajo estrés para responder inmediatamente a una situación crítica. La confusión con una contraseña larga puede provocar un bloqueo de 3 intentos y demorar al usuario tanto tiempo para restablecer que no puede abordar la situación de manera oportuna, y se produce un desastre. Esa contraseña larga impidió la disponibilidad; en lugar de proteger a la organización, causó daño.

¿Cuánto tiempo pierden los usuarios al ingresar contraseñas? Cuanto más larga sea la contraseña, más lenta será la entrada. Resta ese gasto de la línea de fondo. Eso es parte del costo de la seguridad, dinero que podría haberse gastado en otros lugares. Una contraseña de 100 caracteres le costaría más que una contraseña de 20 caracteres, mientras que no proporcionaría una disminución apreciable en el riesgo. El tiempo y el dinero son activos, y una contraseña demasiado larga los gasta sin producir beneficios adicionales.

Con todo esto, ¿estoy defendiendo la poca seguridad de los PIN de 4 dígitos, para que los usuarios sean más rápidos, más felices y cometan menos errores? Por supuesto no. Lo que debe hacer es equilibrar la entropía proporcionada por la contraseña con la psicología de su uso.

Si bien la mayoría de los usuarios no podrán recordar una contraseña de 12 caracteres compuesta por 70 letras, números y símbolos, probablemente podrían recordar una frase de contraseña de cinco palabras; por lo tanto, considere un enfoque de los dados para lograr una entropía similar Cinco palabras aleatorias pero familiares son probablemente más fáciles de recordar y escribir que 12 símbolos aleatorios a la vez que proporcionan quintillones de combinaciones posibles; Las seis palabras de diceware ofrecen aún más seguridad que las contraseñas de 12 caracteres.

Si tiene que ser caracteres por alguna razón, asegúrate de elegirlos del conjunto de caracteres no ambiguos. No obligue al usuario a bailar con la tecla Mayús, o escriba símbolos aleatorios. Si necesita la entropía de una contraseña de 12 caracteres aleatorios que se extrae de [az] [AZ] [0-9] [! - *], puede lograr un nivel similar de entropía usando solo [az] y expandiéndolo a 15 caracteres .

O considere otras herramientas, como la autenticación de tokens, datos biométricos o tarjetas inteligentes, y haga que complementen un PIN más corto.

Los sistemas de seguridad deben ser utilizables o interfieren con la organización en su detrimento.

    
respondido por el John Deters 24.03.2016 - 20:17
fuente
30

Las contraseñas cada vez más largas no se vuelven inseguras, pero en algún momento dejan de ser más seguras.

Según las suposiciones que menciona, parece probable que la contraseña sea realmente aleatoria y se almacene utilizando bcrypt (estado de el almacenamiento de contraseñas de arte). Bcrypt tiene un límite de longitud de entre 50 y 72 caracteres , dependiendo de la implementación. Por lo tanto, no se permitirá una contraseña más larga que esa, con hash usando solo los primeros N caracteres, o algo similar. Básicamente, más tiempo no será mejor (aunque no será peor).

También se podría argumentar que, una vez que la contraseña esté segura contra un ataque de fuerza bruta en el hash de la contraseña desde ahora hasta el final del universo, hacer que la contraseña sea más larga no la hace más segura. Incluso si realiza suposiciones locas sobre el hardware de un atacante, una contraseña verdaderamente aleatoria con 20-30 caracteres estará segura hasta el final del universo. Por lo tanto, una contraseña más larga no será más segura.

    
respondido por el Neil Smithline 24.03.2016 - 15:00
fuente
9

Un caso en el que una contraseña más larga puede ser, de hecho, más débil de lo esperado es con los sistemas que truncan la cadena que ingresa como contraseña. Considera

passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme

Esta contraseña es extremadamente buena 1 , excepto cuando tienes un sistema que realmente la ve

password

porque solo acepta 8 caracteres. El resto se descarta silenciosamente , por lo que siempre escribe passwordsogoodtahtittakestrillionyearstobreakitgoaheadtryme , el sistema acepta password y todos están contentos.
Incluyendo al hacker que prueba esta combinación .

1 sí, también porque tiene palabras en los diccionarios que hacen que sea más fácil de recordar que algunas tríadas inútiles de caracteres especiales de mayúsculas y minúsculas promovidas por consultores de seguridad con discapacidades matemáticas

    
respondido por el WoJ 24.03.2016 - 21:19
fuente
4

De forma predeterminada, la respuesta de una pregunta de la forma puede [mal que XYZ] suceda con las contraseñas es . Siempre hay espacio para comentarios específicos, pero el hecho es que las contraseñas son una de las tareas de seguridad menos naturales que se le dan a una persona, y esa persona, casi con toda seguridad, favorecerá la eficiencia sobre la seguridad.

Si elige una contraseña larga que no está en un diccionario, es probable que la contraseña sea una cadena aleatoria de caracteres difíciles de recordar. Como resultado, el usuario tendrá que encontrar atajos para usar su sistema sin demasiada molestia (para los usuarios, la seguridad es normalmente un obstáculo para lograr las tareas que realmente tienen valor): escríbalo, manténgalo en el portapapeles, enchúfelo un dong USB que escribe la contraseña automáticamente ... tu nombre.

El Battery Horse Staple XKCD comic se hizo famoso por producir contraseñas más largas que son más memorables, pero, como resultado, las puso correcthorsebaterrystaple en cada diccionario. Por lo tanto, en general, es difícil producir contraseñas largas utilizables.

Eso es todo por la responsabilidad práctica. Ahora veamos un poco de números. Supongamos que no almacena su contraseña en texto sin formato, pero la hash y la sal. En general, digamos que no hay una manera más fácil de descifrar el almacenamiento de contraseñas que obtener una colisión por la contraseña almacenada. En ese caso, cada hash de contraseña tendrá una longitud fija: digamos 256 bits para SHA-256. Entonces, tienes como máximo 2 256 para almacenar. Por supuesto, eso es mucho, pero también es tu "límite". Si almacena contraseñas con más de 256 bits de entropía, no mantendrá esa entropía adicional en ningún lugar. No es menos seguro, pero, como lo señaló Neil en relación con bcrypt , no habrá ninguna ganancia con contraseñas más largas.

    
respondido por el Sergio Andrés Figueroa Santos 24.03.2016 - 15:12
fuente
4

Veo un par de comentarios que aluden a esto, pero no hay respuestas que lo indiquen claramente, así que lo agregaré aquí.

Sí, hay un límite en la longitud que puede agregar a una contraseña antes de que ya no tenga más seguridad si la contraseña está oculta (y esperemos que lo sea). Esto se debe a que un atacante no necesita conocer su contraseña, él / ella solo necesita saber una cadena que tiene hashes en la misma salida. Por lo tanto, si tiene una contraseña con más entropía que la salida del algoritmo hash, casi definitivamente habrá una cadena más corta que produce la misma salida debido a las colisiones de hash. En ese momento, no importa cuánto más tiempo haga la contraseña, aún así solo obtendrá la misma entropía de salida.

Esto, por supuesto, significa que el atacante tendría que realizar una fuerza bruta del hash hasta que se encuentre una colisión, lo que será prácticamente imposible para los hashes criptográficos seguros, pero usted solicitó un límite teórico, no uno práctico.

    
respondido por el Kevin Wells 25.03.2016 - 19:44
fuente
4

El límite de Landauer especifica el número máximo teórico posible de cambios de un solo bit que puedes hacer con una cantidad determinada de energía. Digamos que tiene acceso a las 20 centrales eléctricas más potentes del mundo, todas ellas funcionando a plena capacidad durante 100 años. Eso te daría 5 * 10 ^ 20 julios de energía con los que realizar tus cálculos. Supongamos que tiene una computadora moderna que solo consume un millón de veces la energía que teóricamente se necesita. Con tanta energía, que bien una computadora se enfrió a -270 grados Celsius, las leyes de la física dicen que solo se podría trabajar con 2 ^ 124 combinaciones de entrada.

Si está dispuesto a destruir completamente todo el planeta, convirtiéndolo con eficiencia perfecta en energía, y tiene una computadora que opera en el límite de Landauer nuevamente enfriada a -270 grados Celsius, entonces podría enumerar 2 ^ 213 posibles combinaciones de entrada.

Si puedes destruir de alguna manera toda la materia en todo el universo y recolectar toda la energía oscura, entonces tu computadora teóricamente perfecta aún puede funcionar con 2 ^ 233 combinaciones.

Por lo tanto, las combinaciones 2 ^ 233 son el punto en el que ya no se garantiza que un ataque de fuerza bruta tenga éxito dado una inversión suficiente de tiempo y energía. No hay inversión posible lo suficientemente grande.

Siempre hay suerte. No importa cuántos bits tenga, es posible que una conjetura sea correcta. Por lo tanto, uno elige un riesgo aceptable. No hay manera de obtener un riesgo cero, y no hay manera de definir "aceptable" en términos universales.

Teóricamente, una computadora del tamaño de la Tierra y que opera en el límite de Bremermann para la velocidad de cómputo descifraría una contraseña de 256 bits en menos de dos minutos. Sin embargo, como se acaba de calcular, no hay suficiente poder en el universo para hacer ese esfuerzo. El tiempo que lleva descifrar con un equipo teóricamente ideal no nos da un límite "aceptable".

El presidente Obama ordenó la creación de una computadora exaflop para 2025, esperando que sea la computadora más rápida del mundo cuando se construya. ¿Qué posibilidades tiene una computadora exaflop de descifrar una contraseña de 2 ^ 233 bits en los 5 mil millones de años restantes antes de que el sol explote? Bueno, eso es 1.6 * 10 ^ 34 conjeturas o menos de 2 ^ 114 conjeturas. Esa es una posibilidad en 2 ^ 119 (6 * 10 ^ 35) de descifrar la contraseña antes de que el sol explote.

¿Aceptable? ¿Quién es para decir? Es muy difícil poner estas probabilidades en perspectiva, ya que son muy poco probables. ¿Ganar el premio mayor de la lotería esta semana, la próxima semana y la semana siguiente también? Es mucho más probable que descifrar la contraseña antes de que el sol explote dentro de cinco mil millones de años.

233 bits de entropía se pueden representar con 36 caracteres extraídos de los 95 caracteres imprimibles de US-ASCII. Un atacante no puede garantizar descifrar dicha contraseña mediante la fuerza bruta, incluso si utiliza todos los recursos de todo el universo para hacerlo, y las probabilidades de que la descifren utilizando solo la tecnología existente en la actualidad son muy pequeñas.

Este es el único límite que conozco que se impone, no es la elección del algoritmo o la persona que tiene que recordar la contraseña, sino las leyes físicas reales del universo.

    
respondido por el Simon G. 25.03.2016 - 18:21
fuente
0

sin límites, en realidad. El límite sería posible para un hash débil conocido donde un ataque de sustitución está bien documentado y es medible.

    
respondido por el Alexey Vesnin 24.03.2016 - 15:00
fuente
0

Cuando se habla de contraseñas, es importante tener en cuenta todos los vectores.

Por ejemplo, la contraseña "contraseña" tomará 2.17 segundos para fuerza bruta. "p455w0rd" toma 29.02 segundos y "p455w0Rd!" lleva 2,4 meses. Importante: si hablamos de que Brute forzaba una contraseña, estos tres ejemplos tardarían menos de un segundo en un ataque basado en un diccionario.

En contraste, "thisisalongpassword" toma 2.5 millones de siglos, mientras que "th1sIs4l0ngPa55w0rd" toma 36.72 siglos. Sin embargo, al usar la contraseña más compleja, aumenta la probabilidad de que alguien la escriba en una nota adhesiva y la pegue en su monitor.

Entonces, si bien una mayor entropía es mejor desde el punto de vista de la fuerza bruta, reduce la seguridad general de un sistema al aumentar la probabilidad de que las personas sean personas y hagan cosas inseguras, lo que aumenta la vulnerabilidad en otros vectores de ataque.

Para ver otro ejemplo, supongamos que obliga a los usuarios a usar una contraseña de longitud de contraseña. Así que el usuario elige "tobeornottobe". Si un hacker fuera solo con fuerza bruta, esto llevaría 9.85 meses. Pero debido a que un pirata informático usará ataques de diccionario y otras heurísticas, es probable que esto tome minuetos. Si el mismo usuario usó "2b0n2b", entonces la fuerza bruta sola tomaría 0.02 segundos, pero los ataques de diccionario serían inútiles. El objetivo es encontrar un punto dulce entre lo fácil de recordar, la fuerza bruta y el diccionario. Si hace que su política de contraseñas se desvíe demasiado de uno de esos objetivos, entonces habrá debilitado la contraseña general.

La respuesta

No hay límite superior donde más entropía hará que una contraseña se debilite. Hay un límite superior cuando se habla de usar una contraseña en el mundo real. El límite superior es el punto en el que los usuarios del sistema ya no pueden usar la contraseña sin usar algunos medios inseguros para recordarla, lo que lo abre a otros vectores de ataque.

El tiempo de

para las contraseñas de fuerza bruta se basa en enlace en "Escenario de ataque rápido sin conexión"

    
respondido por el coteyr 25.03.2016 - 18:37
fuente
0

Sí, hay un caso en el que una contraseña más larga es menos segura, pero nadie debería usar las contraseñas de DES de todos modos, ya que de todos modos es trivial de descifrar. ¡Algunas implementaciones de DES en realidad fueron menos seguras y usaron menos entropía cuando la contraseña tenía más de ocho caracteres! La solución fue truncar la contraseña a ocho caracteres antes de hacer hash. Si encuentras a alguien que todavía usa hashes de contraseña basados en DES, también tienen otros problemas. También es teóricamente posible que una falla similar pueda afectar a otros algoritmos de hash de contraseñas (creo que algunas versiones de lanman tuvieron un problema similar), pero la mayoría de las personas que diseñan hashes de contraseñas aprenden de las lecciones de la historia y no tengo conocimiento de una publicación moderna. La función hash de contraseña con este problema.

    
respondido por el hildred 28.03.2016 - 21:13
fuente

Lea otras preguntas en las etiquetas