Código de autenticación del mensaje

Información utilizada para la autenticación de mensajes y la comprobación de integridad

En criptografía , un código de autenticación de mensajes ( MAC ), a veces conocido como etiqueta de autenticación , es un pequeño fragmento de información que se utiliza para autenticar y comprobar la integridad de un mensaje. En otras palabras, para confirmar que el mensaje proviene del remitente indicado (su autenticidad) y no ha sido modificado (su integridad). El valor MAC permite a los verificadores (que también poseen una clave secreta) detectar 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 comunicaciones [1] para distinguirlo del uso de este último como dirección de control de acceso al medio ( dirección MAC ). Sin embargo, algunos autores [2] utilizan MIC para referirse a un resumen del mensaje , que solo tiene como objetivo identificar de forma única pero opaca un único mensaje. 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 del mensaje 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 y aleatoria.
  • Un algoritmo de firma devuelve eficientemente una etiqueta dada la clave y el mensaje.
  • Un algoritmo de verificación verifica de manera eficiente la autenticidad del mensaje si se le da la misma clave y la misma etiqueta. Es decir, devuelve " aceptado" cuando el mensaje y la etiqueta no están alterados ni falsificados, y devuelve "rechazado" en caso contrario .

Un código de autenticación de mensajes seguro debe resistir los intentos de un adversario de falsificar etiquetas para mensajes arbitrarios, seleccionados o todos los mensajes , incluso en condiciones de mensaje conocido o elegido . Debería ser computacionalmente inviable calcular una etiqueta válida del mensaje dado sin conocer la clave, incluso si, en el peor de los casos, asumimos que el adversario conoce la etiqueta de cualquier mensaje excepto el que está 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) proporciona la clave k en la entrada 1 n , donde n es el parámetro de seguridad.
  • S (firma) genera una etiqueta t en la clave k y la cadena de entrada x .
  • V (verificando) salidas aceptadas o rechazadas en las entradas: la clave k , la cadena x y la etiqueta t .

S y V deben satisfacer lo siguiente:

Pr [ kG (1 n ), V ( k , x , S ( k , x ) ) = aceptado ] = 1 . [5]

Una MAC es infalsificable si por cada adversario eficiente A

Pr [ kG (1 n ), ( x , t ) ← A S ( k , · ) (1 n ), x ∉ Consulta( A S ( k , · ) , 1 n ), V ( k , x , t ) = aceptado ] < negl( n ) ,

donde A S ( k , · ) denota que A tiene acceso al oráculo S ( k , · ), y Query( A S ( k , · ) , 1 n ) denota el conjunto de consultas sobre S realizadas por A , que conoce 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 mensajes elegidos . 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 elige el atacante, el atacante no puede adivinar la MAC para otros mensajes (que no se usaron para consultar el oráculo) sin realizar cantidades inviables de cálculos.

Las MAC se diferencian de las firmas digitales en que 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, las MAC no proporcionan 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 una 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 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 por nadie más que ese titular. Por lo tanto, las firmas digitales ofrecen no repudio. Sin embargo, el no repudio puede ser proporcionado por sistemas que vinculan de forma segura la información de uso de la clave a la clave MAC; La misma clave está en posesión de dos personas, pero una tiene una copia de la clave que se puede utilizar para generar la 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 la MAC. Esto se hace comúnmente en la industria financiera. [ cita requerida ]

Implementación

Los algoritmos MAC pueden construirse a partir de otras primitivas criptográficas, como las funciones hash criptográficas (como en el caso de HMAC ) o de algoritmos de cifrado por 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 un hash universal . [7]

Los algoritmos hash con clave intrínseca como SipHash también son MAC por definición; 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, de modo de mantener la protección incluso si posteriormente se descubre que una de ellas es vulnerable. Por ejemplo, en las versiones de Transport Layer Security (TLS) anteriores a la 1.2, los datos de entrada se dividen en mitades que se procesan cada una con una primitiva de hash diferente ( SHA-1 y SHA-2 ) y luego se combinan para generar la MAC.

MAC de un solo uso

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 considerarse como un bloque de un solo uso 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 use menos de k veces para funciones hash independientes de k formas.

Los códigos de autenticación de mensajes y la autenticación del origen de los datos también se han analizado 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 de un solo uso incondicionalmente seguros. [10]

Normas

Existen varios estándares que definen los algoritmos MAC, entre ellos:

  • FIPS PUB 113 Computer Data Authentication , [11] retirada en 2002, [12] define un algoritmo basado en DES .
  • FIPS PUB 198-1 Código de autenticación de mensajes con clave hash (HMAC) [13]
  • Funciones derivadas de SHA-3 según NIST SP800-185 : cSHAKE, KMAC, TupleHash y ParallelHash [14]
  • ISO/IEC 9797-1 Mecanismos que utilizan un cifrado de bloques [15]
  • ISO /IEC 9797-2 Mecanismos que utilizan una función hash dedicada [16]
  • ISO /IEC 9797-3 Mecanismos que utilizan una función hash universal [17]
  • ISO /IEC 29192-6 Criptografía ligera - Códigos de autenticación de mensajes [18]

Las normas ISO/IEC 9797-1 y -2 definen modelos y algoritmos genéricos que se pueden utilizar con cualquier cifrado de bloque o función hash, y una variedad de parámetros diferentes. Estos modelos y parámetros permiten definir algoritmos más específicos mediante la designación de 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

[19] En este ejemplo, el remitente de un mensaje lo ejecuta a través de un algoritmo MAC para producir una etiqueta de datos MAC. A continuación, el mensaje y la etiqueta MAC se envían 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, lo que produce 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énticas, el receptor puede asumir con seguridad que el mensaje no fue alterado ni manipulado durante la transmisión ( integridad de los datos ).

Sin embargo, para que el receptor pueda detectar ataques de repetición , el mensaje en sí debe contener datos que aseguren que ese mismo mensaje solo puede enviarse una vez (por ejemplo, marca de tiempo, número de secuencia o uso de una MAC única). De lo contrario, un atacante podría, sin siquiera entender su contenido, grabar este mensaje y reproducirlo en un momento posterior, produciendo el mismo resultado que el remitente original.

Véase también

Notas

  1. ^ Estándar IEEE para Tecnología de la Información - Telecomunicaciones e Intercambio de Información entre Sistemas - Redes de Área Local y Metropolitana - Requisitos Específicos - Parte 11: Control de Acceso al Medio (MAC) y Especificaciones de Capa Física (PHY) para LAN Inalámbrica (PDF) . (Revisión de 2007). IEEE-SA . 12 de junio de 2007. doi :10.1109/IEEESTD.2007.373646. ISBN 978-0-7381-5656-9. Archivado desde el original (PDF) el 13 de octubre de 2008.
  2. ^ "CS 513 Seguridad del sistema: hashes y resúmenes de mensajes". www.cs.cornell.edu . Consultado el 20 de diciembre de 2023 .
  3. ^ Se supone que el adversario más fuerte tiene acceso al algoritmo de firma sin conocer la clave. Sin embargo, su mensaje falsificado final debe ser diferente de cualquier mensaje que haya elegido consultar antes al algoritmo de firma. Consulte las discusiones de Pass antes de la definición 134.2.
  4. ^ ab Teóricamente, un algoritmo eficiente se ejecuta dentro de un tiempo polinomial probabilístico.
  5. ^ Pase, def 134.1
  6. ^ Pase, def 134.2
  7. ^ "VMAC: Código de autenticación de mensajes mediante hash universal". Grupo de trabajo CFRG . Consultado el 16 de marzo de 2010 .
  8. ^ Jean-Philippe Aumasson y Daniel J. Bernstein (18 de septiembre de 2012). "SipHash: una PRF rápida de entrada corta" (PDF) .
  9. ^ 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.
  10. ^ Nikolopoulos, Georgios M.; Fischlin, Marc (2020). "Autenticación del origen de datos con seguridad teórica de la información con recursos cuánticos y clásicos". Criptografía . 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390/cryptography4040031 . S2CID  226956062.
  11. ^ "FIPS PUB 113 Computer Data Authentication". Archivado desde el original el 27 de septiembre de 2011. Consultado el 10 de octubre de 2010 .
  12. ^ "Publicaciones de estándares federales de procesamiento de información, FIPS retirados enumerados por número". Archivado desde el original el 1 de agosto de 2010. Consultado el 10 de octubre de 2010 .
  13. ^ "El código de autenticación de mensajes con clave hash (HMAC)" (PDF) . Consultado el 20 de diciembre de 2023 .
  14. ^ Funciones derivadas de SHA-3 nvlpubs.nist.gov
  15. ^ "ISO/IEC 9797-1:2011". ISO . Consultado el 20 de diciembre de 2023 .
  16. ^ "ISO/IEC 9797-2:2011". ISO . Consultado el 20 de diciembre de 2023 .
  17. ^ "ISO/IEC 9797-3:2011". ISO . Consultado el 20 de diciembre de 2023 .
  18. ^ "ISO/IEC 29192-6:2019". ISO . Consultado el 20 de diciembre de 2023 .
  19. ^ "Descripción general de la seguridad de Mac", Mac® Security Bible , Wiley Publishing, Inc., 1 de noviembre de 2011, págs. 1–26, doi :10.1002/9781118257739.ch1, ISBN 9781118257739

Referencias

  • Goldreich, Oded (2001), Fundamentos de criptografía I: Herramientas básicas , Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
  • Goldreich, Oded (2004), Fundamentos de criptografía II: Aplicaciones básicas (1.ª ed. publ.), Cambridge [ua]: Cambridge Univ. Press, ISBN 978-0-521-83084-3
  • Pass, Rafael, Un curso de criptografía (PDF) , consultado el 31 de diciembre de 2015[1]
  • Entrada de RSA Laboratories sobre MAC
  • Conferencia de Ron Rivest sobre MAC
  1. ^ 11-12-20C8
Obtenido de "https://es.wikipedia.org/w/index.php?title=Código_de_autenticación_de_mensajes&oldid=1237715961"