¿Agregar palabras del diccionario a las contraseñas las debilita?

10

Esto puede sonar como una pregunta estúpida, pero escúchame. Si cifro mi información financiera y datos confidenciales a través de un programa como TrueCrypt, la fortaleza de la contraseña será muy importante.

El consejo común es no usar palabras de diccionario. Entiendo que. Pero, ¿qué sucede si uso palabras comunes sobre una contraseña / contraseña ya segura? Mi teoría es que agrega complejidad a la contraseña agregándola a su longitud. Pero también recuerdo un programa de Windows que solía descifrar contraseñas de Windows encontrando palabras de diccionario dentro de la contraseña más grande. Así que no estoy seguro de si estoy ayudando o haciendo daño al agregar palabras comunes a una contraseña.

Contraseña A :, 74 {x4K79 * ER2R [=} @ PR

Contraseña B: , 74 {x4K79 * ER2R [=} @ PRCorrectHorseBatteryStaple

¿Cuál de los dos es más fuerte en teoría y en el mundo real?

Si es importante, suponga que planeo encriptar mis datos con encriptación AES-Twofish-Serpent en cascada con hashing de Whirpool.

Gracias de antemano.

    
pregunta 31.01.2013 - 18:26
fuente

7 respuestas

7

No hay problema con las palabras del diccionario para hacer frases de contraseña; es un muy buen método para crear una contraseña de alta entropía que puedas recordar. Recomiendo usar cuatro palabras al azar como mínimo; Normalmente uso 6-10 diceware para cifrar mis claves ssh y listas de contraseñas cifradas (aproximadamente 80-128 bits de entropía si sale de un diccionario de palabras ~ 7000 o 100-166 bits con un diccionario de palabras ~ 100000).

Si su contraseña anterior en realidad fue generada al azar a partir de un conjunto de 80 símbolos y tenía 21 caracteres, habría tenido una entropía de ~ 132 bits. *

Sí, es bien sabido que no debe usar solo una palabra del diccionario (o dos o tres) con solo modificaciones menores (mayúsculas en una o dos letras; agregar un número o un carácter al azar al final), como lo hará crear contraseñas de baja entropía.

Sus mayores preocupaciones con las contraseñas son (a) la reutilización de contraseñas (nunca comparta las mismas contraseñas con diferentes entidades), (b) las contraseñas se registran o se eliminan (no use contraseñas en los sistemas en los que puede estar bloqueado) y (c) usar contraseñas de muy baja entropía (por ejemplo, usar una palabra del diccionario con un par de números al final). Recomiendo el uso de un sistema de administración de contraseñas como keepassx compartido entre sus computadoras confiables en forma encriptada, con una contraseña única generada aleatoriamente para cada aplicación específica que use; y encripta esa lista de contraseñas con una frase de contraseña de alta entropía.

* Como digresión, esta contraseña específica no parece haberse generado de forma aleatoria. Mi conjetura se escribió en un teclado para generarla, ya que en los datos se produjeron dos patrones muy improbables: 18 de los 21 caracteres (todo menos los , K y x ) provinieron de las dos líneas superiores del teclado (teclas desde la parte inferior las filas deberían haber ocurrido aproximadamente la mitad del tiempo), y solo había una letra minúscula (debería haber ocurrido aproximadamente 1/3 del tiempo). Para una contraseña verdaderamente aleatoria, estos tipos de eventos raros (o peor; por ejemplo, cero letras minúsculas o menos de tres caracteres de las filas inferiores) deberían haber ocurrido solo el 0.07% del tiempo y el 0.3% del tiempo, respectivamente. Concedido, debe descontar un poco que hay muchas pruebas que deben aplicarse (por ejemplo, solo el lado izquierdo del teclado; etc.) La generación de una contraseña no aleatoria potencialmente reduce la entropía significativamente si el atacante puede explotarla.

    
respondido por el dr jimbob 31.01.2013 - 20:29
fuente
4

El segundo es más fuerte, en teoría y en el mundo real. Una contraseña larga es más segura que una corta, a menos que sean todas las palabras del diccionario.

fh438&^&*g8 es más débil que fh438&^&*g8AllSortsOfStuffAdded porque hay más posibilidades en una contraseña más larga, por lo tanto, llevará más tiempo adivinar.

Si hay solo palabras del diccionario, o si sustituyes las palabras y los símbolos del diccionario, será más fácil de adivinar.

    
respondido por el BenjiWiebe 31.01.2013 - 18:40
fuente
3

Agregar cualquier cosa a una contraseña no puede debilitarla (excepto si el sistema es lo suficientemente estúpido como para truncar las contraseñas; los sistemas Unix y Windows antiguos hicieron eso).

Una contraseña es tan fuerte como "no se puede adivinar", que se mide en el número de intentos que debe realizar un atacante antes de golpear el "correcto". Esto se llama entropía y la entropía se suma (porque es una escala logarítmica): si tiene una contraseña de entropía de 20 bits (es decir, en promedio, los atacantes la encontrarán después de medio millón de intentos) y Otra contraseña de entropía de 25 bits (32 veces más fuerte que la otra), luego la concatenación de ambas contraseñas da como resultado una gran contraseña con 45 bits de entropía.

Por supuesto, reemplazar partes de una contraseña con otra puede debilitar todo. Pero simplemente agregando, no, no lo hará.

    
respondido por el Thomas Pornin 31.01.2013 - 20:34
fuente
1

Agregar las palabras del diccionario hace que la contraseña sea más fuerte porque aumenta la entropía (aleatoriedad), pero si va a crear una contraseña aleatoria de esa longitud, también puede usar caracteres aleatorios para toda la contraseña porque es parejo. más fuerte.

    
respondido por el Stanley De Boer 31.01.2013 - 18:42
fuente
1

Cualquier cosa que haga que la contraseña sea más larga es buena. Por supuesto, si está utilizando una contraseña que va a ser mumbo jumbo, hacerlo en más largo mumbo jumbo siempre es mejor (en lugar de tachar las palabras del diccionario).

Pero hay muy pocas ventajas al agregar x caracteres de símbolos aleatorios sobre x caracteres de palabras del diccionario, si la contraseña tiene al menos algunos símbolos. ¿Por qué? Simplemente porque los crackers de contraseñas generalmente no consideran esta posibilidad. Están bien equipados para contraseñas cortas, mumbo jumbo, así como contraseñas de diccionarios de tamaño mediano con algunos símbolos. Sin embargo, una contraseña larga con los símbolos de las palabras y del diccionario nunca se descifran ni por un cracker de fuerza bruta ni por un cracker de diccionario que permite algunas cadenas aleatorias cualquier cantidad de tiempo razonable La contraseña que has dado es muy larga y contiene muchos símbolos. El único peligro que tiene es si le dice a alguien el formato de su contraseña (los símbolos luego palabras del diccionario); esto hace posible adaptar un cracker de contraseñas a ese formato. Todavía llevará bastante tiempo, y probablemente será inviable.

Si desea una contraseña que sea extremadamente segura y fácil de recordar, use una cadena de palabras al azar (usaré "Corregir correctamente la batería de caballo" aquí) y una secuencia de símbolos que usted puede recordar Por ejemplo, usaré esta pequeña cadena de peces como objetos: <><~ . Ahora, inserte un símbolo cada x caracteres. Entonces, obtienes Corre<cthor>sebat<terys~taple (x = 5 aquí). Haga esto con caracteres más especiales (y haga que X sea más pequeño), y tendrá algo que es prácticamente imposible de descifrar mediante cualquier ataque de fuerza bruta / diccionario. Aún mejor, instale su propio algoritmo para mezclar símbolos y palabras.

    
respondido por el Manishearth 31.01.2013 - 19:26
fuente
1

La entropía es la medida o aleatoriedad en la contraseña. Una contraseña segura tiene una alta entropía, lo que hace que sea difícil de adivinar porque hay más cosas que deberían ser adivinadas. Agregar cualquier información adicional a una contraseña no disminuirá la entropía de la contraseña. Puede que no lo aumente mucho, pero siempre es un poco más difícil de adivinar incluso si simplemente agrega "thisismystackexchangepassword" al final. Es posible que la cantidad de seguridad adicional no valga la pena el tiempo adicional que lleva escribir algo en el caso de algo tan simple, pero el concepto clave es que no puede reducir la entropía agregando más información.

    
respondido por el AJ Henderson 31.01.2013 - 20:18
fuente
1

Como otros han explicado el problema de la entropía de la contraseña en detalle, abordaré su otra preocupación:

  

Pero también recuerdo un programa de Windows que solía descifrar las contraseñas de Windows al encontrar palabras en el diccionario dentro de la contraseña más grande.

Es cierto que, suponiendo que un atacante tenga acceso a una computadora que ha usado, algunos programas pueden escanear el almacenamiento persistente en busca de candidatos con una buena contraseña. Esto es posible no solo en el caso de contraseñas escritas, sino que también existe la posibilidad de que una contraseña una vez presente en la memoria de la computadora (justo después de escribirla, por ejemplo) termina en la memoria virtual, archivos de intercambio, volcados de memoria, etc.

El único programa de este tipo que conozco, Forensic Toolkit de AccessData , busca en el disco duro "cada cadena de caracteres imprimible", como se describe en esta publicación de Bruce Schneier . En principio, no hace que las contraseñas que contienen palabras del diccionario sean más débiles (ya que todas las contraseñas consistirán en "caracteres imprimibles"), sin embargo, la forma en que el programa clasifica esta cadena de caracteres antes de alimentarse a un password adivinador puede tener un impacto en la probabilidad de que se encuentre. Citando el post:

  

Al atacar programas con retardos deliberadamente lentos, es importante hacer que cada suposición cuente. Un simple ataque minúsculo minúsculo de seis caracteres, "aaaaaa" hasta "zzzzzz", tiene más de 308 millones de combinaciones. Y generalmente es improductivo, porque el programa pasa la mayor parte de su tiempo probando contraseñas improbables como "pqzrwj".

En otras palabras, tener un gran conjunto de cadenas no necesariamente te ayudará, incluso si una de ellas es la contraseña que estás buscando, ya que no tienes manera de reconocer como una contraseña antes de probarla (contra un hash o un servicio en línea). Pero si ordena este conjunto de acuerdo con algunas heurísticas que dictan "qué tan probable es que esta cadena sea una contraseña", entonces incluir palabras en el diccionario podría acercarse a la parte superior de la lista de prioridades, aumentando la probabilidad de que se encuentre de manera oportuna .

Es por eso que abogo por el uso de las primeras letras de cada palabra en una frase, en lugar de usar las palabras mismas. Claro, necesitarías una frase más larga para lograr un nivel similar de entropía, pero terminarás produciendo una contraseña que "parece" basura, en lugar de una que parece prometedora. Pero YMMV.

    
respondido por el mgibsonbr 01.02.2013 - 09:21
fuente

Lea otras preguntas en las etiquetas