Código de autenticación de mensajes (MAC)

La primitiva de MAC te permite verificar que nadie manipule tus datos. Un remitente que comparte una clave simétrica con un destinatario puede calcular una etiqueta de autenticación para un mensaje determinado, lo que le permite al destinatario verificar si un mensaje proviene del remitente esperado y no se modificó.

MAC tiene las siguientes propiedades:

  • Autenticidad: Conocer la clave es la única forma de crear una etiqueta MAC verificable.
  • Simétrica: El cálculo y la verificación de la etiqueta requieren la misma clave.

El MAC puede ser determinista o aleatorio, según el algoritmo. Tink no implementa algoritmos de MAC no deterministas en este momento. Debes usar MAC solo para la autenticación de mensajes, no para otros fines como la generación de bytes pseudoaleatorios (consulta PRF).

Si necesitas una primitiva asimétrica, consulta Firma digital.

Elige un tipo de clave

Recomendamos usar HMAC_SHA256 para la mayoría de los usos, pero también hay otras opciones.

En general, se cumple lo siguiente:

  • HMAC_SHA512 puede o no ser más rápido según el tamaño del mensaje y los detalles del hardware que utilices.
  • HMAC_SHA512 es el modo más conservador que se puede usar para una cantidad prácticamente ilimitada de mensajes.
  • AES256_CMAC es más rápido en sistemas que admiten la aceleración de hardware AES-NI.

Garantías de seguridad mínimas

  • Al menos una seguridad de autenticación de 80 bits
  • Proteger contra la falsificación existencial bajo el ataque de texto llano elegido
  • Seguridad de al menos 128 bits contra ataques de recuperación de claves y también en situaciones multiusuario (cuando un atacante no apunta a una clave específica, sino a cualquier clave de un conjunto de hasta 232 claves)

Ejemplo de caso de uso

Consulta Quiero proteger los datos contra la manipulación.