¿Cómo afecta la gramática correcta a la seguridad de la contraseña?

13

Al utilizar la metodología de contraseña de XKCD , la entropía se calcula únicamente sobre la base de palabras individuales, asumiendo que las palabras individuales son independientes. Por supuesto, esto no es necesariamente una suposición válida, a menos que se asegure específicamente cuando genera contraseñas; y una contraseña hecha de cuatro palabras aleatorias e independientes es aún más difícil de recordar que una frase gramaticalmente correcta. zxcvbn informa de forma similar la entropía solo en las palabras individuales encontradas, sin que aparentemente se realice ningún cálculo de frecuencia relativa.

Presumiblemente, con una base de datos de N-gramas suficientemente grande, podría generar un modelo estadístico razonablemente sofisticado de los usos de la palabra de inglés correcto y pedir conjeturas de contraseña del formulario XKCD en consecuencia. Entonces, la pregunta: ¿cuánta entropía se pierde si se usa una frase gramatical y memorable para una contraseña, en comparación con el mismo número de palabras seleccionadas independientemente? ¿Cuánto tiempo más debe ser una contraseña gramatical para proporcionar una entropía / seguridad equivalente? ¿Los crackers de contraseñas utilizan realmente este método?

    
pregunta Tom Hunt 19.09.2015 - 00:28
fuente

3 respuestas

8

En general, cualquier información que pueda limitar el espacio de búsqueda de una contraseña reducir la fuerza de esa contraseña. Entonces, en teoría, tendría sentido asumir que las contraseñas gramaticalmente correctas son potencialmente más débiles que las que son una colección de palabras no relacionadas o tienen errores gramaticales deliberados. Sin embargo, calcular exactamente cuáles serían las diferencias es extremadamente difícil.

Muchos programas de descifrado de contraseñas te permitirán definir patrones complejos. por Por ejemplo, se ha observado que las personas a menudo usan fechas como una forma de incluir números en una contraseña, es decir, password1961 o incluso password171067 (o password101767 para Fecha de EE.UU.), por lo que algunos crackers de contraseñas buscarán cosas como [dictonary-word] [year] and [dictionary-word] [date], donde los números en el El año / fecha estará restringido a dígitos que serían válidos y dentro de un 'esperado' rango (es decir, asuma que el año / la fecha está relacionado con el período actual / reciente o la fecha de los usuarios de nacimiento etc). Asimismo, los estudios de contraseñas indican que las personas tienden a hacer cosas como poner Caracteres "especiales" en los límites de los componentes de contraseña, es decir, contraseña: 1972. Esta podría sugerir que sería una buena idea no usar dígitos de este formato y considerar usando 3, 5, 7 dígitos en lugar de 4 o 6 y si agrega especial / puntuación personajes, hazlo en /usual / posiciones, es decir, pas: sword1972 (y por supuesto, no uses 'contraseña' :-(

Como cracker, el desafío de usar la gramática sería cómo modelarla. por Por ejemplo, el inglés tiene una gramática muy compleja. Esto es en parte por qué el lenguaje natural. el procesamiento es un desafío. Teóricamente, si pudieras definir la gramática con suficiente precisión y tenía un diccionario lo suficientemente grande, podría generar un sistema Lo que podría producir un diccionario de / válido / oraciones. Sin embargo, esto todavía Representa un espacio de búsqueda muy grande. Si sabe exactamente cuántos caracteres hay en la contraseña, esto ayudaría a reducir el espacio de búsqueda, pero sería muy grande. Lo que habría que determinar es cuánto más pequeño sería ese diccionario. compararse con un diccionario similar que solo consiste en palabras aleatorias concatenadas juntos. Sería más pequeño, pero si sería lo suficientemente pequeño para hacer Se desconoce cualquier diferencia práctica. Si el diccionario basado en gramática significaba un promedio tiempo de búsqueda de 50 años y el diccionario de palabras aleatorias representó una búsqueda promedio Un tiempo de 500 años, en realidad, ninguno de los dos enfoques será útil (suponiendo que no hay otra optimización que pueda reducir el tiempo a un nivel que sería práctico).

En lugar de un diccionario basado en gramática, probablemente compilaría un diccionario basado En citas, poesías conocidas y letras de canciones. Mi teoría es que cuando la gente usa un frase como contraseña, esa frase será algo fácil de recordar y por lo tanto, probablemente basado en una canción, poema o cita favorita. Esto sería un par diccionario más pequeño. El desafío sería construir la base de datos y asegurarla. Es suficientemente amplio. Probablemente algo que cada vez es más fácil dado todo. los repositorios digitales de citas, canciones, poesía, etc.

Personalmente, no me preocuparía demasiado por esto. Obviamente, sería mejor no use frases bien conocidas y sería muy importante no usar una frase que alguien podría ser capaz de identificarse a través de técnicas de ingeniería social. Si tu eres un persona militar, no use citas o discursos militares famosos, si usted es cristiano, Evita usar citas de la Biblia, si eres un admirador obsesivo de algunos cantante / actor / lo que sea, evite usar citas de esa persona. Esencialmente, evite usar Cualquier cosa que cualquiera que investigue sobre usted pueda usar para reducir El espacio de búsqueda. También sugeriría usar una frase lo más larga posible. Un muy cita conocida hace tiempo es probablemente más fuerte que un conjunto más corto de palabras aleatorias simplemente Porque el espacio de búsqueda es más grande.

Si puedes recordar un conjunto aleatorio de palabras, hazlo. Sin embargo, si no puedes, entonces Usa una frase gramaticalmente correcta, pero hazla lo más larga posible. Recordando el La contraseña es, probablemente, lo más importante que tiene la garantía de que sea sólida. He encontrado con frecuencia el La parte más débil de muchos sistemas es su proceso de recuperación de contraseña y cree que debería haga todo lo que pueda para evitar tener que usar ese proceso. Introduce la frase en orden inverso (o algún otro patrón que pueda recordar), inserte caracteres especiales y números en las palabras, no entre ellos y evitar patrones de números como 2, 4 y 6 dígitos y manténgase alejado de citas / frases con las que alguien pueda asociarse tú.

    
respondido por el Tim X 30.10.2015 - 23:18
fuente
4

El documento de investigación Efecto de la gramática en la seguridad de contraseñas largas responde a su pregunta. El siguiente es el resumen del documento.

El uso de contraseñas largas parecidas a frases o frases como "abiggerbetterpassword" y "theunmunistfairy" está aumentando. En este documento, estudiamos el papel de las estructuras gramaticales que subyacen a dichas contraseñas para disminuir la seguridad de las contraseñas. Mostramos que los resultados del estudio tienen una relación directa con el diseño de las políticas de contraseña segura y con los craqueadores de contraseñas utilizados para garantizar la seguridad de la contraseña. Usando un modelo analítico basado en el etiquetado de partes del habla, mostramos que la disminución en el espacio de búsqueda debido a la presencia de estructuras gramaticales puede ser más del 50%. Un resultado importante de nuestro trabajo es que la fuerza de las contraseñas largas no aumenta uniformemente con la longitud. Demostramos que utilizando un diccionario mejor, por ejemplo. Google Web Corpus, podemos descifrar contraseñas más largas que las mostradas anteriormente (20.5% contra 6%). Desarrollamos un algoritmo de craqueo que tiene en cuenta la gramática para mejorar la eficiencia de craqueo de contraseñas largas. En una evaluación de desempeño en un conjunto de datos de contraseñas largas, el 10% del conjunto de datos total fue descifrado exclusivamente por nuestro algoritmo y no por crackers de contraseñas de última generación.

    
respondido por el Ashwini Rao 16.01.2016 - 06:10
fuente
3

Primero que todo: si selecciona palabras de forma no aleatoria (para seguir las reglas gramaticales, por ejemplo), entonces no es una contraseña de estilo XKCD en absoluto . Según mi entender, "XKCD-style" solo significa diceware con una lista de palabras más pequeña.

Un problema con las oraciones gramaticalmente correctas es que, a menos que sean tonterías sin sentido, probablemente sean bastante predecibles. No sé exactamente cuán predecible, pero sí sé que básicamente cualquier cosa impresa en cualquier lugar es insegura como base para una contraseña . Por lo tanto, deberá generar de alguna manera una frase única que nadie haya pronunciado antes.

Dicho esto, aún deberías poder hacer una frase de contraseña segura que (libremente) siga las reglas gramaticales haciendo frases sin sentido aleatorias como un Mad-Lib. Simplemente haga un software de dados con una lista de palabras diferente para cada palabra. Por ejemplo, su generador de frase de contraseña podría generar contraseñas en la forma:

{article} {adjective} {noun} {adverb} {verb} {article} {adjective} {noun}, {exclamation}{punctuation}

Por ejemplo, "¡El elegante aardvark arroja estúpidamente un dirigible lleno de bultos!"

Creo que una "oración" como esa sería mucho más fácil de recordar que 6 palabras completamente aleatorias, pero obviamente su lista total de palabras debe ser más grande para lograr una seguridad similar.

Podría tener una lista de 4096 cada uno de los sustantivos, adverbios, verbos y adjetivos (es decir, 16384 palabras en total). Lo haremos simple y diremos que tiene 2 signos de puntuación (. O!) Y 32 exclamaciones comunes ("oh my", "uh-oh", "rats", etc.). Para que puedas calcular la entropía como:

1 + 12 + 12 + 12 + 12 + 1 + 12 + 12 + 5 + 1 = 80

Tenga en cuenta que es el tamaño de las listas de palabras para cada posición de palabra lo que determina completamente la entropía. El atacante podría saber exactamente cómo genera su contraseña y, a menos que tenga mala suerte y logre generar una letra de canción común, aún puede predecir qué tan segura es la contraseña como la regla del estilo XKCD.

La clave es que cada palabra debe ser verdaderamente aleatoria, y cada lista de palabras debe ser grande o debes formar frases muy largas.

Probablemente es más fácil obtener listas de palabras grandes que no dividen las palabras por parte del habla, y es más fácil distribuir UNA lista de palabras y una regla fácil de entender, pero las matemáticas deben ser exactamente las mismas.

Descargo de responsabilidad: no soy un experto en seguridad, pero creo entiendo las matemáticas y los conceptos involucrados aquí.

    
respondido por el Ben 04.12.2015 - 17:56
fuente

Lea otras preguntas en las etiquetas