¿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é?

Hendrik Brummermann
fuente
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 .

randomwalker
fuente
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