En criptografía , un código de autenticación de mensaje ( MAC ), a veces conocido como etiqueta , es una pequeña información que se utiliza para autenticar un mensaje, en otras palabras, para confirmar que el mensaje proviene del remitente indicado (su autenticidad) y no ha sido cambiado. El valor MAC protege la integridad de los datos de un mensaje , así como su autenticidad , al permitir que los verificadores (que también poseen la clave secreta) detecten cualquier cambio en el contenido del mensaje.
Terminología
El término código de integridad del mensaje (MIC) se sustituye con frecuencia por el término MAC , especialmente en las comunicaciones [1] para distinguirlo del uso de este último como dirección de control de acceso a los medios ( dirección MAC ). Sin embargo, algunos autores [2] usan MIC para referirse a un resumen de mensaje , que tiene como objetivo identificar un solo mensaje de manera única pero opaca. RFC 4949 recomienda evitar el término código de integridad del mensaje (MIC) y, en su lugar, utilizar suma de comprobación , código de detección de errores , hash , hash con clave , código de autenticación de mensajes o suma de comprobación protegida .
Definiciones
De manera informal, un sistema de código de autenticación de mensajes consta de tres algoritmos:
- Un algoritmo de generación de claves selecciona una clave del espacio de claves de manera uniforme al azar.
- Un algoritmo de firma devuelve eficazmente una etiqueta con la clave y el mensaje.
- Un algoritmo de verificación verifica de manera eficiente la autenticidad del mensaje con la clave y la etiqueta. Es decir, devolución aceptada cuando el mensaje y la etiqueta no están alterados o falsificados y, de lo contrario, devolución rechazada .
Un código de autenticación de mensaje seguro debe resistir los intentos de un adversario de falsificar etiquetas, para mensajes arbitrarios, selectos o para todos , incluso en condiciones de texto plano conocido o elegido . No debería ser computacionalmente factible calcular una etiqueta válida del mensaje dado sin el conocimiento de la clave, incluso si en el peor de los casos, asumimos que el adversario conoce la etiqueta de cualquier mensaje que no sea el en cuestión. [3]
Formalmente, un sistema de código de autenticación de mensajes ( MAC ) es un triple de algoritmos eficientes [4] ( G , S , V ) que satisfacen:
- G (generador de claves) da la clave k en la entrada 1 n , donde n es el parámetro de seguridad.
- S (firma) genera una etiqueta t en la tecla k y la cadena de entrada x .
- V (verificación) de las salidas aceptadas o rechazadas en las entradas: la tecla k , la cadena x y la etiqueta t .
S y V deben satisfacer lo siguiente:
- Pr [ k ← G (1 n ), V ( k , x , S ( k , x )) = aceptado ] = 1. [5]
Un MAC es infalsificable si por cada adversario eficiente A
- Pr [ k ← G (1 n ), ( x , t ) ← A S ( k , ·) (1 n ), x ∉ Consulta ( A S ( k , ·) , 1 n ), V ( k , x , t ) = aceptado ]
n ),
donde A S ( k , ·) denota que A tiene acceso al oráculo S ( k , ·), y Consulta ( A S ( k , ·) , 1 n ) denota el conjunto de consultas sobre S realizadas por A , que sabe n . Claramente, requerimos que cualquier adversario no pueda consultar directamente la cadena x en S , ya que de lo contrario ese adversario puede obtener fácilmente una etiqueta válida. [6]
Seguridad
Si bien las funciones MAC son similares a las funciones hash criptográficas , poseen diferentes requisitos de seguridad. Para ser considerada segura, una función MAC debe resistir la falsificación existencial bajo ataques de texto sin formato elegido . Esto significa que incluso si un atacante tiene acceso a un oráculo que posee la clave secreta y genera MAC para los mensajes que elija el atacante, el atacante no puede adivinar el MAC de otros mensajes (que no se utilizaron para consultar el oráculo) sin realizar cantidades inviables. de computación.
Los MAC se diferencian de las firmas digitales porque los valores MAC se generan y verifican utilizando la misma clave secreta. Esto implica que el remitente y el receptor de un mensaje deben acordar la misma clave antes de iniciar las comunicaciones, como es el caso del cifrado simétrico . Por la misma razón, los MAC no brindan la propiedad de no repudio que ofrecen las firmas específicamente en el caso de una clave secreta compartida en toda la red : cualquier usuario que pueda verificar un MAC también es capaz de generar MAC para otros mensajes. Por el contrario, una firma digital se genera utilizando la clave privada de un par de claves, que es la criptografía de clave pública. [4] Dado que esta clave privada solo es accesible para su titular, una firma digital prueba que un documento fue firmado nada menos que por ese titular. Por lo tanto, las firmas digitales ofrecen no repudio. Sin embargo, los sistemas que vinculan de forma segura la información de uso de claves a la clave MAC pueden proporcionar no repudio; la misma clave está en posesión de dos personas, pero una tiene una copia de la clave que se puede usar para la generación de MAC mientras que la otra tiene una copia de la clave en un módulo de seguridad de hardware que solo permite la verificación de MAC. Esto se hace comúnmente en la industria financiera. [ cita requerida ]
Implementación
Los algoritmos MAC se pueden construir a partir de otras primitivas criptográficas, como funciones hash criptográficas (como en el caso de HMAC ) o de algoritmos de cifrado de bloques ( OMAC , CCM , GCM y PMAC ). Sin embargo, muchos de los algoritmos MAC más rápidos como UMAC - VMAC y Poly1305-AES se construyen en base a hash universal . [7]
Los algoritmos hash intrínsecamente codificados como SipHash también son, por definición, MAC; pueden ser incluso más rápidos que los MAC basados en hash universal. [8]
Además, el algoritmo MAC puede combinar deliberadamente dos o más primitivas criptográficas, a fin de mantener la protección incluso si posteriormente se descubre que una de ellas es vulnerable. Por ejemplo, en Transport Layer Security (TLS), los datos de entrada se dividen en mitades, cada una de las cuales se procesa con una primitiva hash diferente ( SHA-1 y SHA-2 ) y luego se XOR para generar el MAC.
MAC de una sola vez
El hash universal y, en particular, las funciones hash independientes por pares proporcionan un código de autenticación de mensajes seguro siempre que la clave se utilice como máximo una vez. Esto puede verse como el pad de una sola vez para la autenticación. [9]
La función hash independiente por pares más simple se define mediante la clave aleatoria, clave = ( a , b ) , y la etiqueta MAC para un mensaje m se calcula como etiqueta = ( am + b ) mod p , donde p es primo.
De manera más general, las funciones hash independientes de k proporcionan un código de autenticación de mensaje seguro siempre que la clave se utilice menos de k veces para las funciones hash independientes de k vías.
Los códigos de autenticación de mensajes y la autenticación del origen de los datos también se han discutido en el marco de la criptografía cuántica. A diferencia de otras tareas criptográficas, como la distribución de claves, para una clase bastante amplia de MAC cuánticos, se ha demostrado que los recursos cuánticos no ofrecen ninguna ventaja sobre los MAC clásicos únicos e incondicionalmente seguros. [10]
Estándares
Existen varios estándares que definen los algoritmos MAC. Éstas incluyen:
- FIPS PUB 113 Computer Data Authentication , [11] retirado en 2002, [12] define un algoritmo basado en DES .
- FIPS PUB 198-1 El código de autenticación de mensajes hash con clave (HMAC) [13]
- ISO / IEC 9797-1 Mecanismos que utilizan un cifrado de bloque [14]
- ISO / IEC 9797-2 Mecanismos que utilizan una función hash dedicada [15]
- ISO / IEC 9797-3 Mecanismos que utilizan una función hash universal [16]
- ISO / IEC 29192-6 Criptografía ligera - Códigos de autenticación de mensajes [17]
ISO / IEC 9797-1 y -2 definen modelos y algoritmos genéricos que se pueden utilizar con cualquier función de cifrado de bloque o hash, y una variedad de parámetros diferentes. Estos modelos y parámetros permiten definir algoritmos más específicos nominando los parámetros. Por ejemplo, el algoritmo FIPS PUB 113 es funcionalmente equivalente al algoritmo MAC 1 de ISO / IEC 9797-1 con el método de relleno 1 y un algoritmo de cifrado de bloque de DES.
Un ejemplo de uso de MAC
[18] En este ejemplo, el remitente de un mensaje lo ejecuta a través de un algoritmo MAC para producir una etiqueta de datos MAC. El mensaje y la etiqueta MAC se envían luego al receptor. El receptor, a su vez, ejecuta la parte del mensaje de la transmisión a través del mismo algoritmo MAC utilizando la misma clave, produciendo una segunda etiqueta de datos MAC. A continuación, el receptor compara la primera etiqueta MAC recibida en la transmisión con la segunda etiqueta MAC generada. Si son idénticos, el receptor puede asumir con seguridad que el mensaje no fue alterado o manipulado durante la transmisión ( integridad de los datos ).
Sin embargo, para permitir que el receptor pueda detectar ataques de repetición , el mensaje en sí debe contener datos que aseguren que este mismo mensaje solo se puede enviar una vez (por ejemplo, marca de tiempo, número de secuencia o uso de un MAC de una sola vez). De lo contrario, un atacante podría, sin siquiera comprender su contenido, grabar este mensaje y reproducirlo más tarde, produciendo el mismo resultado que el remitente original.
Ver también
- Suma de comprobación
- CMAC
- HMAC (código de autenticación de mensajes basado en hash)
- MAA
- MMH-Badger MAC
- Poli1305
- Cifrado autenticado
- UMAC
- VMAC
- SipHash
Notas
- ^ IEEE 802.11: Control de acceso al medio de LAN inalámbrica (MAC) y Especificaciones de la capa física (PHY) (PDF) . (Revisión de 2007). IEEE-SA . 12 de junio de 2007. doi : 10.1109 / IEEESTD.2007.373646 . ISBN 978-0-7381-5656-9.
- ^ Fred B Schneider, Hashes y resúmenes de mensajes, Universidad de Cornell
- ^ Se supone que el adversario más fuerte tiene acceso al algoritmo de firma sin conocer la clave. Sin embargo, su mensaje final falsificado debe ser diferente de cualquier mensaje que eligió para consultar el algoritmo de firma antes. Vea las discusiones de Pass antes de la definición 134.2.
- ^ a b Teóricamente, un algoritmo eficiente se ejecuta dentro de un tiempo polinomial probabilístico.
- ↑ Pass, def 134.1
- ↑ Pass, def 134.2
- ^ "VMAC: Código de autenticación de mensajes mediante hash universal" . Grupo de trabajo CFRG . Consultado el 16 de marzo de 2010 .
- ^ Jean-Philippe Aumasson y Daniel J. Bernstein ( 18 de septiembre de 2012 ). "SipHash: un PRF rápido de entrada corta" (PDF) .
- ^ Simmons, Gustavus (1985). "Teoría de la autenticación / teoría de la codificación". Avances en criptología: Actas de CRYPTO 84 . Berlín: Springer. págs. 411–431.
- ^ Nikolopoulos, Georgios M .; Fischlin, Marc (2020). "Autenticación de origen de datos de información teóricamente segura con recursos cuánticos y clásicos" . Criptografía . 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390 / cryptography4040031 . S2CID 226956062 .
- ^ " Autenticación de datos informáticos FIPS PUB 113 " . Archivado desde el original el 27 de septiembre de 2011 . Consultado el 10 de octubre de 2010 .
- ^ "Publicaciones de estándares federales de procesamiento de información, FIPS retiradas enumeradas por número" . Archivado desde el original el 1 de agosto de 2010 . Consultado el 10 de octubre de 2010 .
- ^ El código de autenticación de mensajes hash con clave (HMAC)
- ^ ISO / IEC 9797-1 Tecnología de la información - Técnicas de seguridad - Códigos de autenticación de mensajes (MAC) - Parte 1: Mecanismos que utilizan un cifrado de bloque
- ^ ISO / IEC 9797-2 Tecnología de la información - Técnicas de seguridad - Códigos de autenticación de mensajes (MAC) - Parte 2: Mecanismos que utilizan una función hash dedicada
- ^ ISO / IEC 9797-3 Tecnología de la información - Técnicas de seguridad - Códigos de autenticación de mensajes (MAC) - Parte 3: Mecanismos que utilizan una función hash universal
- ^ ISO / IEC 29192-6 Tecnología de la información - Criptografía ligera - Parte 6: Códigos de autenticación de mensajes (MAC)
- ^ "Mac Security Overview", Mac® Security Bible , Wiley Publishing, Inc., 2011-11-01, págs. 1–26, doi : 10.1002 / 9781118257739.ch1 , ISBN 9781118257739
Referencias
- Goldreich, Oded (2001), Fundamentos de la criptografía I: Herramientas básicas , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
- Goldreich, Oded (2004), Fundamentos de la criptografía II: Aplicaciones básicas (1. ed. Publ.), Cambridge [ua]: Cambridge Univ. Prensa, ISBN 978-0-521-83084-3
- Pass, Rafael, A Course in Cryptography (PDF) , consultado el 31 de diciembre de 2015[1]
enlaces externos
- Entrada de RSA Laboratories en MAC
- Conferencia de Ron Rivest sobre MAC
- ^ 11-12-20C8