¿Qué significa que Hmac es seguro?

2

No estoy considerando el ataque de colisión general en función hash débil como MD5 o SHA-1. Me pregunto si la seguridad de HMAC se basa en una función de hash débil

Si hay la clave k , mensaje m

Hmac(k,m) = hash(k'xor opad) || hash( (k' xor ipad) || m ) )

Primera pregunta, ¿qué significa que Hmac es seguro?

  1. El atacante no puede generar un Hmac válido de un mensaje dado m sin conocer la clave

  2. El atacante no puede encontrar una colisión que satisfaga a Hmac(k',m') = Hmac(k,m) such k',m'

  3. El atacante puede recuperar la clave k

  4. otros

Y segunda pregunta.

Estoy leyendo sobre Colisión de transcripciones en papel

Ataques de colisión de transcripción: Rompiendo la autenticación en TLS, IKE y SSH

En este artículo, introducen Transcripción colisión El atacante sabe m1 y m2 . Y puede encontrar colisiones que satisfacen. hash(m1 || m2' ) == hash(m1' || m2 ) such m1' and m2'

Si el adversario usa esta Transcripción Ataques de colisión en función hash débil, ¿Puede también encontrar una colisión que satisfaga a Hmac(k',m') = Hmac(k,m) such k',m' ??

    
pregunta HyunJae Nam 09.09.2016 - 11:04
fuente

2 respuestas

1

Hay algunas investigaciones que definen y prueban estrictamente cómo HMAC es seguro:

HMAC es un mecanismo de autenticación de mensajes. Esto significa que si un atacante cambia un mensaje, puede detectarse porque el HMAC ya no coincide. Básicamente, esto significa que no hay ningún mensaje m' , por lo que HMAC(k, m') == HMAC(k, m) . Tenga en cuenta que k es el mismo aquí. Si el atacante encuentra una colisión con otra clave, por lo que HMAC(k', m') == HMAC(k, m) , esto no se puede utilizar para falsificar un mensaje.

    
respondido por el Sjoerd 09.09.2016 - 14:16
fuente
2

Los criptógrafos tienen una definición generalmente aceptada de seguridad MAC: resistencia a la falsificación existencial bajo ataque de mensaje elegido adaptativo. La mayoría de los libros de texto sobre criptografía cubren esta definición, por ejemplo, el Manual de criptografía aplicada es una buena fuente de esta. El HAC está disponible en línea, por lo que es posible que desee navegar por el Capítulo 9 . Es un poco anticuado en el lado de los algoritmos, pero las definiciones en general siguen siendo aplicables.

Pero para expandir esto, el objetivo de seguridad de los MAC es este. Supongamos que:

  1. El atacante no conoce la clave secreta del defensor;
  2. El atacante puede hacer que el defensor calcule las etiquetas para los mensajes de su elección;
  3. El atacante puede usar los resultados de consultas anteriores para refinar las posteriores.

Luego, un MAC se rompe si un atacante eficiente puede forjar cualquier par válido (mensaje, etiqueta) para un mensaje que no consultaron como parte de # 2. (Tenga en cuenta que las formulaciones adecuadas de esta definición tienen algunos cálculos matemáticos adjuntos que cuantifican el esfuerzo que el atacante pone en el ataque y qué probabilidad de éxito es inaceptable.)

Si la clave es secreta, esta definición implica los objetivos de seguridad que enumera (consulte HAC para obtener más detalles):

  
  1. El atacante no puede generar un Hmac válido de un mensaje dado m sin conocer la clave
  2.   
  3. El atacante no puede encontrar una colisión que satisfaga a Hmac (k ', m') = Hmac (k, m) como k ', m'
  4.   
  5. El atacante no puede recuperar la clave k
  6.   

HMAC está diseñado para cumplir al menos la seguridad de MAC, pero también hay pruebas de que HMAC apoya otro objetivo más fuerte, llamado PRF security ("PRF" = pseudorandom function ), que dice que un atacante eficiente no puede distinguir la función de una función seleccionada al azar del mismo dominio y rango.

    
respondido por el Luis Casillas 09.09.2016 - 20:06
fuente

Lea otras preguntas en las etiquetas