¿Depende la fuerza de una contraseña del proceso que generó la contraseña?

3

En esta pregunta , discutiendo si enlace es seguro de usar, comentó @ThomasPornin

  

"Matemáticamente, la fortaleza de una contraseña depende del proceso que generó la contraseña y no se puede medir solo con la contraseña"

¿Es esto cierto? Si es así, ¿puede alguien explicar por qué?

[Actualización] Después de ver la respuesta de @ Pascal, el centavo se redujo.

Lo había interpretado como "para cualquier contraseña dada, cómo llegaste a ella hace una diferencia", en lugar de "diferentes métodos tienen diferentes resultados, algunos más seguros que otros".

    
pregunta Mawg 04.02.2017 - 11:11
fuente

3 respuestas

3

Esto es principalmente correcto.

La fortaleza de la contraseña se mide por el tamaño del espacio de búsqueda para la contraseña dada (asumiendo que cada contraseña en el espacio de búsqueda es igualmente probable, más adelante). El espacio de búsqueda para una contraseña de un dígito es muy pequeño {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} y un ataque de fuerza bruta (probando cada combinación) por un humano puede encontrar Su contraseña en unos cinco segundos. Una computadora rápida o especialmente diseñada puede hacerlo en menos de un nanosegundo.

Una contraseña que consta solo de dígitos de 100 dígitos proporciona un espacio de búsqueda mucho mayor. Hay 10 ^ 100 combinaciones posibles, por lo que un ataque de fuerza bruta necesitará, en promedio, probar la mitad de estas combinaciones para encontrar su contraseña. Esto llevará mucho, mucho tiempo, incluso si tiene una computadora que puede probar un millón de combinaciones por segundo.

Sin embargo, si elige su número de 100 dígitos de forma no aleatoria, por ejemplo. Si prefiere una combinación de 100 dígitos que consiste en alternar 1 y 0 porque es más fácil de recordar, el gran espacio de búsqueda no lo protegerá. Un atacante que tenga en cuenta el comportamiento humano programará su computadora para probar combinaciones como esta primero y, por lo tanto, encontrará su contraseña mucho más rápido que si hubiera elegido sus 100 dígitos al azar.

Por lo tanto, el proceso mediante el cual usted llega a su contraseña es relevante. Si no utiliza un proceso verdaderamente aleatorio, es probable que su contraseña sea débil y fácil de descifrar.

Si me da una contraseña para ver, a veces puedo determinar que es una contraseña incorrecta a la vez. Si su contraseña es "123456", o "contraseña", o cualquiera de las contraseñas más comunes que la gente usa en estos días, obviamente es una contraseña muy mala, y puedo determinarla solo mirando la contraseña, simplemente porque veo que No es aleatorio en absoluto. Pero si me das algo como "15-L-s-04-02", es más difícil para mí determinar si esta es una contraseña segura o no. Si tiene una hija llamada "Liv Sarah" que nació el 2 de abril de 2015, la contraseña es muy débil si estamos tratando con un atacante que lo conoce y lo apunta específicamente, aunque el espacio de búsqueda no sea tan malo ( dígitos, un carácter especial, minúsculas y mayúsculas, 12 caracteres de largo - > espacio de búsqueda de tamaño 2 ^ 73, o una fuerza de contraseña de 73 bits, que no es muy buena, pero sigue siendo bastante decente).

Por lo tanto: las contraseñas malas se pueden determinar simplemente mirando la contraseña. Es mucho más difícil determinar si una contraseña es buena simplemente mirándola, porque es importante saber si tiene algún tipo de significado para usted que otra persona pueda adivinar en última instancia.

Sin embargo, por lo general, podemos determinar si una contraseña es buena o mala solo con mirarla porque conocemos la mayoría de los hábitos de contraseña de las personas, por lo que incluso si no sé el nombre o el cumpleaños de su hija, todavía sé que muchos la gente usa los nombres, las iniciales y los componentes de fecha como parte de sus contraseñas, por lo que primero programaría mi computadora para probar algunos de los miles de contraseñas más comunes, luego intente combinaciones con componentes de fecha o iniciales, y luego mezclé estos componentes en diferentes combinaciones etc., y el "15-Ls-04-02" aún se encontraría mucho, mucho antes que si hubiera probado todas las combinaciones posibles de 12 caracteres.

    
respondido por el Pascal 04.02.2017 - 11:42
fuente
4

Un comprobador de seguridad de contraseñas no puede saber realmente cuán aleatoria es tu contraseña, lo que hace un comprobador de fortalezas es probar una combinación de métodos preprogramados de generación / adivinación de contraseñas e intentar evaluar la solidez de una contraseña determinada en función de esos.

Por ejemplo, si ingresa la contraseña:

correct horse battery staple

El sitio te da 15 octillones de años, lo cual es engañoso porque generé esa contraseña de forma no aleatoria al leer un determinado cómic .

O una contraseña como:

passwordpasswordpasswordpassword

afirma ser 2 octillion años, a pesar de la contraseña obviamente no aleatoria.

El punto es, si el método de generación de contraseña que utilizas no está preprogramado en la calculadora de fuerza, entonces un comprobador de fuerza puede dar la impresión de que una contraseña es más fuerte de lo que realmente es.

Mejores verificadores de contraseñas como zxcvbn tienen más patrones preprogramados para verificar, pero es Todavía limitado por el mismo problema fundamental.

    
respondido por el Lie Ryan 04.02.2017 - 11:56
fuente
1

La definición práctica de la fortaleza de una contraseña es el tiempo que tarda una herramienta de descifrado de contraseñas en descifrarla, es decir, cuántas suposiciones erróneas hará el cracker antes de encontrar la contraseña correcta.

No hay forma de obtener un valor preciso de esta definición, ya que depende de la herramienta de craqueo. Las diferentes herramientas probarán las contraseñas en un orden diferente, posiblemente incluso aleatorias, y no puede conocer todas las herramientas de descifrado, y mucho menos las nuevas herramientas y configuraciones que la gente usará en su contraseña en el futuro.

  

para cualquier contraseña dada, cómo llegaste a ella hace una diferencia

Hay un núcleo de verdad en eso. Si publicas una contraseña, su fuerza se vuelve esencialmente 0: los crackers simplemente la pondrán en su lista. La fortaleza de la contraseña es lo que se mantiene en secreto de los crackers. Mientras no haya publicado la contraseña, sabrá cuál es su fuerza precisa, lo mejor que puede hacer es obtener una aproximación. Y la única manera de obtener tal aproximación es conocer el proceso mediante el cual llegó a la contraseña. Si hay algo en el proceso de generación de contraseñas que es secreto, de modo que los crackers no saben cómo se produjo, entonces su contraseña es al menos tan fuerte como adivinar ese secreto.

El mejor secreto es una entrada completamente aleatoria. La cantidad de incertidumbre que hay en una información se llama entropy , y la entrada aleatoria tiene la máxima entropía. Si genera una contraseña aleatoriamente entre un conjunto de 2 N opciones y mantiene la opción en secreto, entonces su contraseña tiene una entropía de N bits. Eso garantiza que la fortaleza de la contraseña es al menos 2 N : dado que un cracker no tiene información sobre su elección aleatoria, lo mejor que puede hacer es probarlos todos. y en promedio tendrá éxito luego de 2 intentos N -1 . Cualquier cosa en la contraseña que no sea puramente aleatoria aumenta la posibilidad de que el cracker tenga éxito antes, porque pueden aplicar la misma selección no aleatoria que usted hizo, mientras que no pueden repetir una selección aleatoria y obtener el mismo resultado excepto por coincidencia .

Solo con la contraseña en sí, no hay forma de saber cuánta confidencialidad tuvo su generación, por lo que no hay manera de estimar su fortaleza (excepto "0, ya que me acaba de decir cuál es").

Vea también nuestras muchas preguntas sobre el tema, incluyendo:

respondido por el Gilles 04.02.2017 - 17:04
fuente

Lea otras preguntas en las etiquetas