Herramienta para generar colisiones MD4

1

Hay muchos trabajos de investigación disponibles en línea que tratan las vulnerabilidades del algoritmo MD4, pero no pude encontrar ninguna implementación de estas.

Ya he utilizado herramientas como John the Ripper o MDCrack y he intentado hacer fuerza bruta con el hash. Pero la fuerza bruta parece un desperdicio de potencia de la CPU cuando los ataques de colisión se pueden hacer de manera mucho más eficiente. (En pocos segundos he leído).

¿Existen herramientas disponibles para generar colisiones para los algoritmos de hash MD4?

    
pregunta Kshitiz Sharma 05.01.2013 - 11:27
fuente

2 respuestas

6

Algunos usuarios de Google me señalaron a este archivo de código fuente que, cuando se compila, debe generar colisiones MD4 usando el método de Wang (publicado en 2005). Este no es el ataque de colisión más rápido para MD4, pero es suficiente para producir miles de ellos.

Sin embargo, herramientas como John the Ripper son para encontrar contraseñas de su hash; las colisiones no son de ayuda en absoluto para dicha tarea. Encontrar una colisión se trata de calcular dos cadenas distintas m y m ' que, cuando ambas hanh, dan el mismo valor. Para colisiones, no nos importa qué valor hash que obtengamos, siempre y cuando obtengamos lo mismo para ambos mensajes. Para descifrar la contraseña, trabaja con un valor hash fijo que no puede elegir (lo encontró en una base de datos o en una fuente similar), e intenta encontrar una cadena p que haga hashes a ese valor específico ( y ninguna otra): este es un ataque de preimagen .

MD4 también está roto académicamente con respecto a las preimágenes; Leurent encontró un ataque en 2008 . Sin embargo, tenga en cuenta el término "académicamente": el ataque ha costado 2102 evaluaciones de la función hash. Esto es millones de veces más rápido que la robustez esperada de una función hash con una salida de 128 bits (que debe resistir hasta el costo 2128 ); sin embargo, este ataque sigue siendo mucho más allá de lo que es tecnológicamente factible ahora (una organización muy grande con muchas computadoras y dinero, como Google, podría dedicar su vasta riqueza al problema y realizar una billonésima del trabajo dentro de unos años, pero no más).

Para descifrar las contraseñas que estaban encriptadas con MD4, el método más conocido sigue siendo un "ataque de diccionario", también conocido como "fuerza bruta": intente contraseñas potenciales hasta encontrar una coincidencia. Si el proceso de hashing no incluyó un elemento aleatorio por contraseña (una "sal"), el esfuerzo de fuerza bruta se puede compartir mediante el uso de tablas precomputadas (por ejemplo, tablas de arco iris), pero las tablas aún deben construirse al menos una vez.

    
respondido por el Thomas Pornin 05.01.2013 - 15:18
fuente
4

Parece que estás mezclando ataques de colisión y primeros ataques de preimagen (como ya se mencionó aquí ). A continuación, describiré ambos, se puede encontrar una explicación más detallada aquí .

En un ataque de colisión está buscando dos mensajes (diferentes) que produzcan el mismo hash, no importa el contenido de los mensajes.

Sin embargo, en un primer ataque de preimagen tienes un hash predefinido (fijo) y estás buscando un mensaje que tenga exactamente el mismo hash.

Por lo tanto, si desea buscar las contraseñas para cualquier hashes de contraseña dado, tiene que aplicar un primer ataque de preimagen y una búsqueda sin colisión. Para los ataques de preimagen en MD4 que son más rápidos que solo el uso de fuerza bruta, considere este documento y el trabajo relacionado.

    
respondido por el speakr 05.01.2013 - 15:06
fuente

Lea otras preguntas en las etiquetas