Frase de Bruteforce de palabras del diccionario

0

Considere la frase de contraseña en minúscula:

"El zorro perezoso regatea tratado"

Supongamos que las cuatro palabras están en un diccionario de 2000.

Combinaciones de palabras de fuerza bruta, ¿cuánto tiempo se tarda en descifrar esta contraseña a 1000 / s?

¿Cómo cambia esto si hay mayúsculas / minúsculas?

¿Cómo cambia esto si hay un diccionario de 10000 palabras?

Editar:

El atacante no está restringido, el contexto local.

    
pregunta Dan Kanze 14.05.2013 - 17:06
fuente

2 respuestas

5

4 muestras de un diccionario de 2000, da una cardinalidad de espacio de contraseña de 2000 4 .

Tiempo de craqueo a 1000 intentos por segundo;

2000 4 / 1000 = 1.6E10 segundos = 507 años.

Con los posibles primeros caracteres en mayúsculas, tiene una cardinalidad de 4,000 4 (el doble de palabras por espacio). Lo que es un poco más grande, y llevaría 8,117 años a 1000 intentos por segundo.

Un diccionario de 10,000 palabras produciría 0.3 millones de años de tiempo de crack a 1000 por segundo.

Si este es un modelo de amenaza realista depende completamente de su situación. Si está hablando de descifrar la frase de acceso sin conexión después de que se haya procesado con una sola iteración de MD5, un atacante determinado puede alcanzar más de 100 mil millones de intentos por segundo, lo que le otorga solo 27 horas en lugar de 0,3 millones años en el último ejemplo.

    
respondido por el lynks 14.05.2013 - 17:17
fuente
1

Si las palabras se seleccionan aleatoriamente, se aplica la respuesta de Iynks , pero podría ser mucho peor si la frase de contraseña forma una oración [gramáticamente válida]. Dada una palabra de inicio (del conjunto de 2000 palabras), no todas las demás palabras (incluida ella misma) podrían seguirla y producir una oración válida, por lo que las opciones son mucho más limitadas. Si permites que los usuarios elijan sus propias contraseñas, eso probablemente sucederá. Y es probable que los atacantes también prueben esas combinaciones primero.

En cuanto al tiempo para descifrar, para responder que necesitamos saber más sobre su modelo de amenaza. Veo en tu edición que estás tratando de proteger algo instalado sin conexión, pero ¿te preocupa que solo los usuarios "comunes" estén interesados en descifrar esas contraseñas, o esperas un atacante más decidido y hábil? Una PC común que intente descifrar contraseñas con la CPU (o incluso la GPU) tendrá un desempeño mucho peor que lo que un atacante puede lograr con un grupo de ellas o quizás con algún hardware dedicado.

Como se explica mejor en esta pregunta , su mejor La defensa debe ser un buen algoritmo de hash con un factor de trabajo configurable. PBKDF2, bcrypt o scrypt deben estar bien (consulte esa pregunta para obtener una explicación más detallada de los pros y los contras de cada uno). En cuanto al tiempo para descifrar, todo dependerá del factor de trabajo: puede elegir uno donde solo se pueda hacer un intento por segundo (o menos), o uno donde sean posibles millones o miles de millones. Simplemente se reduce a qué retraso es tolerable por sus usuarios legítimos cada vez que intentan ingresar la contraseña. (para los números fijos, la única manera de estar seguro es haciendo una evaluación comparativa en una máquina en particular)

    
respondido por el mgibsonbr 14.05.2013 - 18:22
fuente

Lea otras preguntas en las etiquetas