stringtranslate.com

Código de autenticación de mensaje

En criptografía , un código de autenticación de mensaje ( MAC ), a veces conocido como etiqueta de autenticación , es un breve fragmento de información que se utiliza para autenticar y verificar la integridad de un mensaje. Es decir, 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 de mensajes ( MIC ) se sustituye frecuentemente 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 de mensaje , cuyo único objetivo es identificar de forma única pero opaca un único mensaje. RFC 4949 recomienda evitar el término código de integridad de mensajes (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 código de autenticación de mensajes seguro debe resistir los intentos de un adversario de falsificar etiquetas, para mensajes arbitrarios, seleccionados o todos , 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 en cuestión. [3]

Formalmente, un sistema de código de autenticación de mensajes ( MAC ) es un triple de algoritmos [4] eficientes ( G , S , V ) que satisfacen:

S y V deben cumplir lo siguiente:

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

Un 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 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 requisitos de seguridad diferentes. 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 Oracle que posee la clave secreta y genera MAC para los mensajes que elija el atacante, el atacante no puede adivinar la MAC de otros mensajes (que no se usaron para consultar el Oracle) sin realizar cantidades inviables. de computación.

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 ocurre con el 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 la criptografía de clave pública. [4] Dado que esta clave privada sólo es accesible para su titular, una firma digital demuestra que un documento fue firmado nada menos que por ese titular. Por tanto, las firmas digitales ofrecen no repudio. Sin embargo, el no repudio puede ser proporcionado por sistemas que vinculen 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 puede usarse 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 necesaria ]

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 a partir 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 basándose en 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, para mantener la protección incluso si más tarde 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 de hash diferente ( SHA-1 y SHA-2 ) y luego se realizan XOR juntas para generar la MAC.

MAC única

El hash universal y, en particular , las funciones hash independientes por pares proporcionan un código de autenticación de mensaje seguro siempre que la clave se utilice como máximo una vez. Esto puede verse como el bloc de autenticación de un solo uso . [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, k funciones hash independientes proporcionan un código de autenticación de mensaje seguro siempre que la clave se use menos de k veces para k funciones hash independientes.

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]

Estándares

Existen varios estándares que definen los algoritmos MAC. Éstas incluyen:

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 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 bloques 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. Luego, 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, produciendo una segunda etiqueta de datos MAC. Luego, 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 ni 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 garanticen que este mismo mensaje solo se puede enviar una vez (por ejemplo, marca de tiempo, número de secuencia o uso de una MAC de un solo uso). 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

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: Especificaciones de control de acceso al medio (MAC) y capa física (PHY) de 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.
  2. ^ "Seguridad del sistema CS 513: 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 final falsificado debe ser diferente de cualquier mensaje que haya elegido antes para consultar el algoritmo de firma. Vea las discusiones de Pass antes de def 134.2.
  4. ^ ab Teóricamente, un algoritmo eficiente se ejecuta dentro de un tiempo polinomial probabilístico.
  5. ^ Pase, definición 134,1
  6. ^ Pase, definición 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: un PRF rápido 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 teóricamente segura de la información con recursos clásicos y cuánticos". Criptografía . 4 (4): 31. arXiv : 2011.06849 . doi : 10.3390/criptografía4040031 . S2CID  226956062.
  11. ^ "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 .
  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 hash con clave (HMAC)" (PDF) . Consultado el 20 de diciembre de 2023 .
  14. ^ Funciones derivadas de SHA-3 nvlpubs.nist.gov
  15. ^ "ISO/IEC 9797-1:2011". YO ASI . Consultado el 20 de diciembre de 2023 .
  16. ^ "ISO/IEC 9797-2:2011". YO ASI . Consultado el 20 de diciembre de 2023 .
  17. ^ "ISO/IEC 9797-3:2011". YO ASI . Consultado el 20 de diciembre de 2023 .
  18. ^ "ISO/IEC 29192-6:2019". YO ASI . Consultado el 20 de diciembre de 2023 .
  19. ^ "Descripción general de seguridad de Mac", Biblia de seguridad de Mac® , Wiley Publishing, Inc., 1 de noviembre de 2011, págs. 1 a 26, doi :10.1002/9781118257739.ch1, ISBN 9781118257739

Referencias

enlaces externos

  1. ^ 12-11-20C8