Decodificando un HMAC SHA256 cuando la clave es la misma que la cadena original

1

Teóricamente, la función de Python para cifrar un HMAC SHA256 tiene este aspecto:

hmac_sha256(key, text)

La palabra "hola" se cifró utilizando la función así:

hmac_sha256("hello", "hello")

¿Qué tan fácil sería para alguien descifrar esto, sabiendo que el mensaje original es igual a la clave?

    
pregunta user3672036 03.03.2018 - 14:55
fuente

2 respuestas

4
  

¿Qué tan fácil sería para alguien descifrar esto, sabiendo que el mensaje original es igual a la clave?

Si todo lo que sabes es que la clave es igual al mensaje, entonces atacar el HMAC es prácticamente imposible. Si observa cómo se calcula HMAC puede ver que de alguna manera necesitará obtener la información para un SHA- 256 hash de una salida conocida. Esto significaría que necesita montar un ataque exitoso de pre-imagen contra SHA-256 que se considera prácticamente imposible en la actualidad.

    
respondido por el Steffen Ullrich 03.03.2018 - 15:14
fuente
2

Suponiendo que tanto la clave como el mensaje tienen una cantidad razonable de entropía, entonces, como dijo Steffen Ullrich, se reduce al mismo nivel de seguridad que SHA-256 de la entrada. (Los valores no serán los mismos, por supuesto, pero será el mismo nivel de complejidad para invertir).

Sin embargo, si su cadena es tan simple como "hola", entonces un ataque de diccionario es bastante razonable. Cualquier operación que utilice solo entradas de baja entropía es susceptible de tal ataque: simplemente inserte todos los valores de entrada posibles y encuentre el que coincida con la salida.

El uso de HMAC SHA-256 en la forma que has descrito no parece ofrecer ningún beneficio más allá de un simple SHA-256. Además, tenga en cuenta que los hashes y los MAC no son "cifrados": se supone que son operaciones unidireccionales independientemente de que tenga o no la clave HMAC.

    
respondido por el David 03.03.2018 - 23:45
fuente

Lea otras preguntas en las etiquetas