Descifrando contraseñas de MD5 con la misma sal

4

¿Cuánto tiempo tomaría descifrar contraseñas de hasta 10 letras si supiera que los hashes eran MD5 con una sal (que usted sabe)?

    
pregunta user49637 23.06.2014 - 16:09
fuente

1 respuesta

6

La computación es bastante simple, aunque hay algunas suposiciones ocultas.

En este sitio , uno puede encontrar puntos de referencia para algunos sistemas de cracking basados en GPU. Uno de ellos, con nada menos que ocho GPU AMD R9 290X, puede calcular 93.8 billones de MD5 por segundo.

Hay 26 10 = 141167095653376 posibles secuencias de 10 letras. A 93.8 mil millones por segundo, todos se pueden eliminar en aproximadamente 1500 segundos, es decir, 25 minutos . En promedio, encontrar la contraseña correcta tomará la mitad de ese tiempo (a veces tienes suerte, a veces no).

Sin embargo, importa los detalles:

  • MD5 es una función hash. Su definición estándar no habla de contraseñas o sales. Cuando tiene "contraseñas grabadas con MD5 y un salt", entonces realmente está usando un algoritmo no especificado que usa MD5 como uno de sus elementos internos. Si el costo computacional del algoritmo se puede reducir a "solo un MD5" depende de ese algoritmo. Algunas funciones de hash de contraseñas basadas en MD5 en realidad implican varias invocaciones MD5, posiblemente muchas (en ese sentido, PBKDF2 con HMAC / MD5 es un algoritmo "basado en MD5" y puede involucrar miles de millones de invocaciones para cada contraseña ).

  • El cálculo anterior asume 10 letras en minúsculas . Si la contraseña puede incluir letras minúsculas y mayúsculas, y se tratan de manera diferente, entonces el número de combinaciones aumenta a 52 10 = 144555105949057024, para un tiempo de fuerza bruta correspondiente de 17.8 días . Si usamos caracteres imprimibles (los 95 signos ASCII, excluyendo los caracteres de control pero incluyendo el espacio), el número de combinaciones aumenta nuevamente, hasta 95 10 = 59873693923837890625, para un bruto fuerza de tiempo de aproximadamente 20 años (nuevamente, esto es para la exploración completa del espacio; el tiempo de ataque será la mitad de ese valor en promedio).

  • A la inversa, cuando los usuarios humanos normales deben generar una contraseña, crean contraseñas "ingeniosas", no contraseñas "aleatorias". Entre las posibles contraseñas de 10 letras, algunas son mucho más probables que otras. Los atacantes intentarán las contraseñas comenzando con las más probables, y esto reduce bastante el tiempo de ataque.

  • El sistema que se usa aquí como ejemplo es bastante grande en términos de aficionado (8 GPU grandes ...), pero un atacante industrial puede acumular más poder. También puede alquilarlo (de los sistemas de nube comercial), lo que puede ser rentable. No hay una respuesta absoluta a su pregunta si no define primero el presupuesto del atacante.

respondido por el Thomas Pornin 23.06.2014 - 16:39
fuente

Lea otras preguntas en las etiquetas