¿Cuatro palabras comunes al azar hacen una contraseña más segura que contraseñas como "Tr0ub4dor&3"?

En xkcd comic # 936 , Randall Munroe afirma que las contraseñas como "Tr0ub4dor & 3" (palabra base poco común, mayúsculas, sustituciones de letras comunes con un número y sufijo de puntuación) tienen ~ 28 bits de entropía, mientras que toman cuatro palabras comunes aleatorias, como "caballo correcto grapa de batería", tiene ~44 bits de entropía y, por lo tanto, es mucho más fuerte.

XKCD Mouseover: A cualquiera que entienda la teoría y la seguridad de la información y esté en una discusión exasperante con alguien que no la entiende (posiblemente involucrando un caso mixto), me disculpo sinceramente.Estoy confundido porque siempre me han dicho que tener números, mayúsculas y minúsculas y caracteres especiales era esencial para una contraseña segura...

¿XKCD tiene razón en esto?

He escuchado lo mismo afirmado en otros lugares.
Creo que esto estaría más relacionado con Math.SE o Security.SE. Debe responderse con un cálculo matemático en lugar de evidencia empírica.
Esto sería un duplicado en Security.SE .
@Brythan: ¡Aún mejor entonces, significa que ya ha sido respondido!
Sin mencionar que es la pregunta más votada sobre seguridad . -1 por la grave falta de esfuerzo de investigación (y la baja utilidad dada la calidad superior a la que son/pueden ser las respuestas del sitio apropiado). Probablemente el caso raro para apoyar esto también.
Vale la pena señalar que esta matemática se aplica si se apega a las suposiciones hechas, pero la entropía puede ser mucho mayor si se incluyen otros hábitos comunes, por ejemplo, usar palabras inventadas, nombres propios, combinaciones de dos palabras, insertar caracteres adicionales en lugar de hacer 1337 -sustituciones, etc. Dicho esto, el punto principal de xkcd era promover contraseñas más amigables para los humanos.
Voy a votar para cerrar esto: es la pregunta más votada de Security Stack Exchange y todos los detalles específicos han sido cubiertos allí por los mejores criptógrafos y profesionales de la seguridad. Esa debería ser la publicación canónica.
Hay dos criterios bastante conflictivos para una contraseña "fuerte": 1) Dificultad de "adivinar", utilizando el conocimiento sobre el individuo. 2) Dificultad de encontrar con una búsqueda exhaustiva de todas las combinaciones posibles. La mayoría de las "reglas" para contraseñas buscan fortalecer la contraseña con respecto al primer criterio, pero esas "reglas" tienden a debilitarla con respecto al segundo criterio. Y al final no hay forma de evitar el debilitamiento debido a la estupidez.
El problema con este tipo de pensamiento es que "elegir una contraseña" es irrelevante. Debe resolver el problema de elegir cientos de contraseñas, una para cada sitio. Ninguno de estos sistemas se escala (¿realmente puede recordar cientos de frases de contraseña de "grapa de caballo de batería correcta"?)
http://expliquexkcd.com/wiki/index.php/936:_Password_Strength tiene una discusión interesante sobre esto.
¿Has oído hablar alguna vez de los "modelos de amenazas"? Esta pregunta es una tontería y tiene la misma respuesta que "¿qué es más pesado, la manzana o la naranja?". La "seguridad" no es cuantificable, es abstracta. Por cierto, xkcd es una sátira . Está destinado a burlarse de conceptos erróneos como estos.
No estoy de acuerdo con que "respondido en otro sitio SE" sea una razón válida para VTC: cada sitio obtiene diferentes respuestas para diferentes audiencias. Las respuestas de Skeptics aquí no necesitan profundizar en los detalles técnicos como la publicación Sec.SE; en su lugar, deberían hacer referencia múltiples estudios, artículos publicados y similares, que incluyen, entre otros, la publicación Security.SE, y extraen una conclusión sobre la precisión de la afirmación de xkcd , según el Tour : "Pregunte sobre... la precisión de las afirmaciones públicas realizadas en los medios de comunicación o en cualquier otro lugar"
@Robotnik: El problema es que esta pregunta se reduce a "Dame fuentes de que 44 es mayor que 28", y eso es solo un hecho matemático elemental. La pregunta podría haber preguntado si los cálculos de entropía son correctos, pero no lo fueron, y eso aún sería un tema para la teoría de la información, no para los escépticos. Los escépticos realmente son mejores para revelar el argumento de apoyo cuando se da una afirmación que separa una conclusión de su argumento. Ese no es el caso aquí, el argumento y la conclusión están en el mismo contexto.
Ver mi generador de Dicewords . Tenga en cuenta que puede producir contraseñas más débiles al depender de la pseudoaleatoriedad incorporada en lugar de una mayor fuente de entropía...
@Ben: estás asumiendo que la longitud de la contraseña es lo único que importa, no lo es. Si todos en el mundo usaran 4 palabras aleatorias simples, los atacantes simplemente comenzarían a crear herramientas que asumen que usted une 4 palabras aleatorias simples, haciendo que su contraseña sea solo un poco más fuerte que una contraseña de 4 caracteres. El punto es que hay muchos estudios y opiniones en este espacio y ciertamente no es suficiente decir simplemente "44> 28".
Vote por la solicitud de función de preguntas cruzadas si está interesado en ver preguntas compartidas entre sitios, en lugar de tener duplicados entre sitios.
@Robotnik: Teniendo en cuenta que varios idiomas humanos tienen un carácter para cada concepto que describiríamos como una palabra, una contraseña de 4 caracteres es exactamente lo que es. Pero una contraseña de 4 caracteres chinos es potencialmente muy segura. De todos modos, si va a desafiar el cálculo de la entropía, debe preguntar en un sitio donde la teoría de la información esté en el tema.
"Siempre me han dicho que tener números, mayúsculas y minúsculas y caracteres especiales era esencial para una contraseña segura" . Sí, esa es toda la premisa del cómic.
@user1643723: "Por cierto, xkcd es una sátira". No, no lo es. "Está destinado a burlarse de conceptos erróneos como estos". No, no lo es.
Esto ha estado ganando banderas argumentando que es un duplicado de una pregunta de Security.SE . Nuestra práctica normal es permitir tales duplicados, ya que los estándares de la comunidad para responder son muy diferentes entre los sitios. Si no está de acuerdo, plantee una metapregunta sobre la política para que se pueda reconsiderar.
¿Por qué es esto notable? El objetivo principal de las contorsiones por las que uno pasa para crear una contraseña "fuerte" es tener algo que sea (A) memorable para el usuario y (B) difícil de hackear/robar/adivinar/descifrar. Sí, cuatro palabras completamente aleatorias probablemente harían una contraseña muy, muy segura. Tan fuerte que el usuario probablemente no sería capaz de recordarlo, haciéndolo algo inútil como contraseña.
@robotnik El humano promedio tiene un vocabulario de 20K-35K palabras. Asumiendo el extremo inferior, 64 ^ 10> 20,000 ^ 4> 64 ^ 9, por lo que incluso en el peor de los casos, una contraseña de cuatro palabras aleatorias tendría mejor entropía que una contraseña de nueve caracteres aleatorios ... Y además sería significativamente más fácil para recordar y escribir , y esta última cualidad se vuelve especialmente útil cuando tiene que ingresar contraseñas en la pantalla táctil de una tableta o teléfono inteligente.
@Robotnik ... Además, incluso eso supone que el atacante ha adivinado correctamente qué idioma habla el objetivo .

Respuestas (3)

Es cierto que no necesita números, caracteres especiales, etc. para una contraseña segura. Si, en cambio, aumenta la longitud de la contraseña, la entropía también aumentará. Ver por ejemplo esta tabla de entropía . Para obtener 64 bits de entropía, podría tener una contraseña de 14 caracteres en minúsculas, o podría tener una contraseña de 10 caracteres con todos los caracteres ASCII imprimibles, o podría tener una frase de contraseña con 5 palabras seleccionadas al azar de una lista de 7776 palabras (Diceware) .

El enfoque XKCD también se denomina frase de contraseña o, si se hace correctamente, es decir, palabras seleccionadas al azar en la frase de contraseña, como Diceware .

Las matemáticas se verificaron en security.SE y son aproximadamente correctas si asumimos una pequeña lista de palabras para diceware (~2000 palabras) y, y esto es crucial, palabras seleccionadas al azar. Tenga en cuenta que el cómic XKCD asume la aleatoriedad de las palabras en la frase de contraseña del diceware, pero asume un patrón para la contraseña (que es una suposición justa y también el punto del cómic, ya que nadie recuerda una contraseña de 11 caracteres verdaderamente aleatoria).

Tenga en cuenta que las personas son malas en la selección aleatoria , por lo que la dificultad real para adivinar la contraseña cuando no usa dados para generarla, y acepta el primer resultado, será menor.

La afirmación sobre la memorabilidad se examinó en el artículo Correcto elemento básico de la batería del caballo: exploración de la usabilidad de las frases de contraseña asignadas por el sistema (tenga en cuenta que el artículo usa frases de contraseña generadas correctamente en lugar de confiar en que los usuarios elijan frases de contraseña "al azar"):

Contrariamente a las expectativas, las frases de contraseña asignadas por el sistema funcionaron de manera similar a las contraseñas asignadas por el sistema de entropía similar en las métricas de usabilidad que examinamos. Las frases de paso y las contraseñas se olvidaron a tasas similares, lo que llevó a niveles similares de dificultad y molestia para el usuario, y la mayoría de los participantes escribieron ambas. Sin embargo, las frases de contraseña tardaron mucho más en ingresar a los participantes y parece que requieren corrección de errores para contrarrestar los errores de entrada. La facilidad de uso de la frase de contraseña no pareció aumentar cuando redujimos el diccionario del que se eligieron las palabras, redujimos la cantidad de palabras en una frase de contraseña o permitimos a los usuarios cambiar el orden de las palabras.

Supongo que esto demuestra que la forma más sencilla de tener contraseñas individuales seguras es generarlas al azar, y luego olvidarse de ellas rápidamente y contar con su administrador de contraseñas para recordarlas por usted...
@MatthieuM. Sí, un administrador de contraseñas es realmente la única buena solución para las contraseñas web, pero no es práctico en todas las situaciones (por ejemplo, para el cifrado de disco completo). Y, por supuesto, también deberá recordar la contraseña del administrador de contraseñas, así como la contraseña de usuario de su sistema operativo (dependiendo de sus necesidades, puede ser, o no, una solución viable para escribir eso).
@tim El cifrado de disco completo no es un problema. Actualmente, las cuentas se comparten entre dispositivos, por lo que su base de datos de contraseñas maestras se almacena en la nube. El cifrado de la base de datos, más el servicio como SpiderOak, la protege. Todavía necesita recordar dos contraseñas seguras, una del servicio en la nube y otra para la base de datos de contraseñas, pero eso es mucho mejor que N contraseñas seguras. El uso de un administrador de contraseñas de esta manera significa que no perderá sus contraseñas si su disco falla, si le roban su dispositivo o si no puede descifrar el disco. Y siempre tienes un espejo en tus dispositivos si falla la nube.
@Schwern Quise decir que es un problema porque no puede guardar su contraseña de cifrado de disco en el administrador de contraseñas. No veo cómo ayudarían los servicios en la nube aquí; simplemente agregarían una cuarta contraseña que debe recordar (usuario del sistema operativo, disco, administrador de contraseñas, servicio en la nube). Supongo que podría guardar su contraseña de cifrado de disco en un administrador de contraseñas en la nube y acceder a ella a través de otros dispositivos, pero eso agregaría nuevos vectores de ataque. Como protección contra la pérdida de la base de datos del administrador de contraseñas, los servicios en la nube ayudarían, pero también lo harían las copias de seguridad almacenadas de forma segura.
@tim Sí, guarda su contraseña de cifrado de disco en el administrador de contraseñas y la obtiene a través de otro dispositivo como un teléfono o mantiene una copia de seguridad. Los mayores riesgos aquí no son técnicos, sino para el usuario: olvidarse de hacer una copia de seguridad y no usar el administrador de contraseñas porque es inconveniente. El riesgo de la nube se mitiga mediante la contraseña de la nube, el cifrado propio de las bases de datos y el uso de almacenamiento en la nube con cifrado de extremo a extremo como SpiderOak. Obtiene poder usar un administrador de contraseñas convenientemente para todo, y no ser vulnerable a olvidarse de hacer una copia de seguridad o fallar su copia de seguridad en casa.
@tim Básicamente, siempre que tenga una copia de seguridad sincronizada recientemente de la base de datos en algún lugar, ya sea en otro dispositivo o en una copia de seguridad personal, solo necesita recordar una contraseña: la contraseña del administrador de contraseñas. Desde allí puedes arrancar todo. Lo he hecho muchas veces.

No existe una única respuesta correcta sobre cuánta entropía tiene una contraseña: el resultado dependerá de las suposiciones que haga el atacante al respecto, y estas son desconocidas. Se pueden hacer conjeturas más o menos razonables sobre estas suposiciones, dando valores de entropía más o menos razonables.

Este artículo en Explainxkcd cubre el cómic en cuestión. Explica las suposiciones que se hicieron para justificar los cálculos en el cómic. Estos cálculos son bastante pesimistas (es decir, se supone que el atacante conoce el diseño exacto de la contraseña de antemano) y suponen contraseñas basadas en palabras del diccionario , por lo que subestiman un poco la entropía de ambas contraseñas.

Como referencia, la prueba de seguridad de la contraseña encuentra que "Tr0ub4dor&3" tiene 52 bits de entropía (en lugar de 28 en el cómic), mientras que "correcthorsebatterystaple" tiene 94 bits (en lugar de 44). Esta estimación asume que el atacante utilizará el diccionario de combinaciones de pares de letras del idioma inglés. Como puede ver, los resultados son bastante diferentes, pero la afirmación hecha en el cómic también se aplica a este método de cálculo: tener una contraseña de palabra común más larga es mejor que tener una contraseña más corta con caracteres especiales.

Como usted dice, depende de las suposiciones que haga el atacante. La calculadora de fuerza zxcvbn le da a "Tr0ub4dor&3" solo 36 bits de entropía, mientras que "la grapa correcta de la batería del caballo" obtiene 66 bits.
@Mark Esto todavía me parece una subestimación. Por ejemplo, se sabe que "correcthorsebatterystaple" es una oración de 4 palabras. En realidad, el atacante probablemente verificará oraciones de 3, 2 y 1 palabra, aplicará fuerza bruta a todas las contraseñas de 8 caracteres o menos y probará algunos otros esquemas de contraseña comunes antes de comenzar a descifrar contraseñas de 4 palabras.

Su problema es con esta suposición:

Estoy confundido porque siempre me han dicho que tener números, mayúsculas y minúsculas y caracteres especiales era esencial para una contraseña segura...

Esta afirmación es teóricamente cierta, pero falsa cuando se trata de cómo las personas realmente crean contraseñas. Simplemente reemplazar una o con un 0 y una a con un 4 no hace que su contraseña sea más segura. En el mejor de los casos, la nueva contraseña tiene una fuerza equivalente. En realidad, es probable que sea más débil porque estas sustituciones son tan populares que un atacante puede probar 0 y 4 antes incluso de probar o y a. Del mismo modo, poner en mayúscula la primera letra es tan natural que no agrega nada a la seguridad. Y agregar un dígito al final también es una opción popular que aumenta la complejidad de la contraseña solo un poquito, incluso con el carácter extra & agregado. Incluso los errores tipográficos (como trovador contra trovador) no desbaratan un ataque de diccionario por más de un poquito.

Por otro lado, NIST recientemente se alejó de esta recomendación (así como de cambiar regularmente las contraseñas y una serie de otras políticas de contraseñas comunes). En el mundo real, ambos sirvieron para socavar en lugar de mejorar la seguridad.

Tener dígitos y caracteres especiales solo mejora la seguridad si elige cada carácter individualmente al azar, simplemente porque un atacante tiene que adivinar cada carácter entre 90 o más caracteres. Si solo usa letras, un atacante solo tiene que adivinar entre 26 o 52 caracteres (dependiendo de si usa una combinación de mayúsculas y minúsculas).

En el caso de Tr0ub4dor&3, esos personajes no son aleatorios. Es probable que esta contraseña sea trivial de descifrar con un ataque de diccionario. La mayoría de la gente tiene un vocabulario activo de unas 1000 palabras, la gente educada de unas 6000 (en inglés). Estas 6000 palabras probablemente incluirían trovador. Por supuesto, un atacante con un ataque de diccionario probará todas las permutaciones de la palabra. Así que son quizás 100 versiones diferentes de la palabra "trovador".

Además, un atacante probaría primero las permutaciones más probables.

Entonces, un atacante bien puede probar "Tr0ub4dor" antes incluso de probar la palabra base "trovador". Esta palabra puede ser el número 3000 en el diccionario de contraseñas que un atacante intentaría (aunque después del XCKD, probablemente pasó al número 20), por lo que un atacante habría descifrado su contraseña en unos pocos miles o cientos de miles de intentos, lo que puede ser unos minutos a unas pocas horas con una computadora decente.