He leído algo en el sentido de que la construcción HMAC puede disminuir el problema de las colisiones en el hash subyacente.
¿Eso significa que algo como HMAC-MD5 todavía podría considerarse seguro para autenticar datos cifrados?
Comentarios
- Algo relevante (HMAC de fuerza bruta) crypto.stackexchange.com/a/6753/5231
- Puede encontrar respuestas sobre la seguridad de HMAC-MD5 en general siguiendo este enlace .
Responder
Sí, Actualmente no hay ataques conocidos contra HMAC-MD5.
En particular, después de los primeros ataques de colisión en MD5, Mihir Bellare (uno de los inventores de HMAC) creó una nueva prueba de seguridad para HMAC que no requiere resistencia a colisiones:
« Resumen: Bellare, Canetti y Krawczyk (1996) demostraron que HMAC es un PRF suponiendo que (1) la función de compresión subyacente es un PRF, y (2) la función hash iterada es débilmente resistente a las colisiones. Sin embargo, los ataques recientes muestran que la suposición (2) es falsa para MD5 y SHA-1, eliminando el soporte basado en pruebas para HMAC en estos casos. Este artículo prueba que HMAC es un PRF bajo el único supuesto de que la función de compresión es un PRF. Esto recupera una garantía basada en pruebas, ya que ningún ataque conocido compromete la pseudoaleatoriedad de la función de compresión, y también ayuda a explicar la resistencia al ataque que ha mostrado HMAC incluso cuando se implementa con funciones hash cuya (débil) resistencia a colisiones está comprometida. También mostramos que una condición aún más débil que PRF en la función de compresión, a saber, que es una MAC que preserva la privacidad, es suficiente para establecer que HMAC es una MAC segura siempre que la función hash cumpla con el requisito muy débil de ser casi computacionalmente universal, donde nuevamente el valor radica en el hecho de que los ataques conocidos no invalidan las suposiciones hechas. «
Sin embargo, esto no significa que debes usar HMAC-MD5 en los nuevos diseños de criptosistemas. Parafraseando a Bruce Schneier, « los ataques solo mejoran, nunca empeoran. «Ya tenemos ataques de colisión prácticos para MD5, lo que demuestra que no cumple con sus objetivos de seguridad originales; es posible que, en cualquier momento, alguien encuentre una manera de extenderlos a un nuevo ataque que pondría en peligro la seguridad de HMAC-MD5. Una opción mucho mejor sería usar HMAC con una función hash que no tenga ataques conocidos, como SHA-2 o SHA-3.
Comentarios
- SHA-2 tiene ataques conocidos: en.wikipedia.org/wiki/SHA-2
- @baptx Cualquiera la primitiva criptográfica tiene " ataques conocidos ". La pregunta es si rompen la cantidad total de rondas de manera significativa. Para SHA-2, actualmente no ' t. A menos que pueda demostrar que SHA-2 se ha roto con algún significado, me gustaría eliminar estos comentarios de la respuesta.
- " ataques recientes muestran esa suposición (2) es falso para MD5 " ¿qué ataques recientes? el ataque del prefijo elegido? ¿Por qué significa eso?
Respuesta
La respuesta de Ilmari Karonen es correcta cuando se usa HMAC para su propósito previsto, pero eso no significa que HMAC no se vea afectado por las colisiones de MD5:
Dada una clave específica, tenga en cuenta que K xor opad
y K xor ipad
son independientes del mensaje m
. Esto significa que cualquier colisión en H((K xor ipad) || m)
resultará en una colisión HMAC
, incluso con dos mensajes diferentes.
Para HmacMd5, K xor ipad
tendría una longitud de 64 bytes. Por lo tanto, si encuentra dos mensajes m1
y m2
con al menos un prefijo común de 64 bytes pre
, puedes calcular una clave K = pre xor ipad
que creará una colisión entre H((K xor ipad) || m1)
y H((K xor ipad) || m2)
, leadi a una colisión completa en todo el HMAC.
Esto se puede explotar de dos maneras:
- No confía en la persona que generó la clave, y el HMAC está siendo mal utilizado como una especie de suma de control.
- Un atacante obtiene acceso a la clave y puede usar el ataque de prefijo elegido por MD5 para causar colisiones.
Pero como se acepta La respuesta indica, si la clave es secreta y está controlada por usted o por terceros de confianza, HmacMd5 sigue siendo seguro.
Comentarios
- Sí, ya existía este tipo de respuesta hasta que se eliminó. La pregunta establece explícitamente " para autenticar datos cifrados ". El uso para calcular sumas de verificación y la disponibilidad de la clave son perpendiculares a esa parte de la pregunta. ¡Bienvenido a crypto de todos modos, este tipo de respuestas bien escritas son muy bienvenidas aquí!
- Estoy de acuerdo, sin embargo, esta información será útil para muchas personas que lleguen a esta página y no brinda información incorrecta con respeto. a la pregunta inicial. Establece claramente que hmacmd5 sigue siendo seguro si se usa correctamente.