x
1

Message authentication code



En criptografía, un código de autenticación de mensaje o Message Authentication Code en inglés, a menudo llamado por su sigla MAC, es una porción de información utilizada para autenticar un mensaje.

Los valores MAC se calculan mediante la aplicación de una función hash criptográfica con clave secreta K, que solo conocen el remitente y destinatario, pero no los atacantes. Se dice que la función hash tiene que ser criptográfica porque tiene que cumplir ciertas propiedades de seguridad que las hacen resistentes frente a ataques de adversarios. Matemáticamente la función hash criptográfica toma dos argumentos: una clave K de tamaño fijo y un mensaje M de longitud arbitraria. El resultado es un código MAC de longitud fija:

donde:

Si el valor MAC enviado coincide con el valor que el destinatario calcula, este puede garantizar que:


Se define la función MAC ideal como un mapeo aleatorio de todos los posibles valores del mensaje de entrada M en salidas de tamaño de n bits.

[1]​Para que una función MAC pueda ser usada es necesario que sea resistente a la computación de nuevos valores hash.

Actualmente, existen 3 grandes grupos de funciones MAC:

El uso de valores MAC para autenticar provee cierta seguridad pero no es la panacea. Por ejemplo, podría haber un ataque que consistiera en interceptar el mensaje y el valor MAC para poder reutilizarlo para autenticarse.

En general el principio de Horton establece que se debe autenticar el significado del mensaje, y no el código del mensaje. Aplicando el principio a autenticación de mensaje con MAC, deberíamos autenticar no solo el valor MAC, sino también cierta información que sea usada para formar un valor MAC que no sea ambiguo. Por ejemplo, puede ser buena idea incorporar algún tipo de sello de tiempo cuando calculó el valor MAC (por ejemplo concatenándolo al mensaje). Este sello de tiempo se enviaría al verificador. Si el verificador recibe un sello de tiempo antiguo entonces decide que es falso (ha caducado). Si el adversario decide actualizar el sello de tiempo entonces el valor MAC interceptado ya no sería válido para mandárselo al verificador.

Otro sistemas proponen[3]​ concatenar al mensaje (para calcular el valor MAC) cierto datos relativos al contexto en el que se está (número de mensaje, tamaños de campos negociados, número de versión del protocolo...). Estos datos no habría que enviárselos al verificador porque ya están en el contexto y los conoce.

Las MAC se suelen usar para autenticación (de ahí su nombre). El que se quiere autenticar y el verificador comparten la clave de la función MAC y la mantienen en secreto. De esta forma cuando el verificador recibe el valor MAC puede verificar si ese valor MAC se corresponde con el que se tiene que generar a partir de un mensaje dado.

Hay dos formas principales de funcionar, según donde se genere el mensaje:



Escribe un comentario o lo que quieras sobre Message authentication code (directo, no tienes que registrarte)


Comentarios
(de más nuevos a más antiguos)


Aún no hay comentarios, ¡deja el primero!