¿Por qué es importante que el secreto esté al final al firmar con MD5?


16

A menudo se dice que cuando se utiliza el algoritmo MD5 para firmar información arbitraria, el secreto compartido debe estar al final. ¿Por qué?


2
¿Puede ser más específico en lugar de decir 'a menudo dicho'? ¿Puede citar referencias y también ampliar por qué el tema es relevante?
Suresh Venkat

Hay un error tipográfico en el título de su pregunta: ¿puede cambiar "y" para "finalizar"?
Carlos Scheidegger

Respuestas:


16

Ver "ataques de extensión" en el construcción Merkle-Damgard . Este problema surge en el uso de funciones hash para la autenticación de mensajes .

En resumen, poner el secreto al principio permite al atacante, dado un mensaje y su hash, falsificar cualquier mensaje que tenga el mensaje dado como prefijo. Este es un problema para los códigos ingenuos, pero es evitado por códigos conocidos como HMAC .


1
Por lo que entiendo, si se rompe la secuencia de entrada y la clave compartida es el comienzo de la secuencia, el primer bloque casi siempre obtendrá el mismo hash y, por lo tanto, la clave compartida se puede adivinar mediante el uso de ataques de arco iris, ¿verdad?
Alexandru
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.