Validar hmac con clave almacenada con hash

1

¿Qué sucede si un HMAC se genera correctamente y se envía con los datos al servidor? Hasta ahora sé que el servidor necesita conocer los datos originales con los que se creó el MAC para volver a crear el MAC y comparar, pero en En este escenario, el servidor lo tiene todo, excepto que la clave está hash y no se almacena "sin formato". ¿Cómo puede el servidor validar el MAC?

    
pregunta Alvarolm 15.11.2012 - 22:13
fuente

3 respuestas

0

La diferencia significativa entre un (H) MAC y un hash es el componente clave. La idea de un MAC es que solo debería ser posible generar un MAC específico para una entrada específica al conocer una clave específica. Entonces, si alguien puede generar una salida MAC específica (dada) para una entrada de mensaje dada, demuestra que tiene la misma clave que se usó para generar la salida MAC dada.

En otras palabras: si alguien calcula el x de MAC del mensaje m usando la clave k (pero solo publica m ), todos los que pueden generar x prueban tener conocimiento sobre el clave k .

Para responder a su pregunta: si necesita para generar el MAC sin tener la clave en su servidor, probablemente desee utilizar un hash en lugar de un MAC.

    
respondido por el Manuel Faux 15.11.2012 - 22:46
fuente
2

Si no conoce la clave, no puede generar el HMAC. Ese es el punto central de un HMAC: es una forma rápida de proporcionar integridad de mensajes utilizando el material clave existente. Si pudiera regenerar el HMAC sin la clave, un atacante podría simplemente generar un HMAC para un mensaje diferente y alterar la carga útil.

    
respondido por el Polynomial 16.11.2012 - 00:00
fuente
1

Si desea una especie de MAC , que puede verificarse mediante el uso de una "clave transformada" lo que no es suficiente para calcular otros valores de MAC, entonces no desea un MAC. Lo que quieres es un algoritmo de firma digital . Una forma de describir un algoritmo de firma digital es la siguiente: es como un MAC donde la clave para generar nuevos valores MAC, y la clave para verificar un valor MAC con respecto a Para algunos datos, son distintos. Las dos claves están vinculadas matemáticamente entre sí (la clave de verificación funciona para los valores MAC que se generaban con la clave de generación correspondiente, y ninguna otra), pero no es posible volver a calcular la clave de generación a partir de la clave de verificación. Por lo tanto, la clave de verificación se puede hacer pública , mientras que la clave de generación se mantiene privada .

El algoritmo de firma más utilizado es RSA (RSA es en realidad dos algoritmos, uno para cifrado y otro para firmas; me refiero al de firmas; ambos algoritmos comparten la misma operación matemática básica, pero aún son muy diferentes en sus detalles de uso).

HMAC no es no un algoritmo de firma digital (a pesar de lo que los terminólogos descuidados a veces fingen ).

    
respondido por el Thomas Pornin 23.02.2013 - 23:34
fuente

Lea otras preguntas en las etiquetas