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

La primitiva MAC te permite verificar que nadie haya manipulado 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 permite que el destinatario verifique que un mensaje provenga del remitente esperado y no se haya modificado.

MAC tiene las siguientes propiedades:

  • Autenticidad: Conocer la clave es la única forma de crear una etiqueta MAC verificable.
  • Symmetric: El procesamiento y la verificación de la etiqueta requieren la misma clave.

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

Si, en cambio, 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 ser más rápido o no, según el tamaño del mensaje y los detalles del hardware que uses.
  • 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 los sistemas que admiten la aceleración de hardware AES-NI.

Garantías de seguridad mínimas

  • Seguridad de la autenticación de al menos 80 bits
  • Protección contra la falsificación existencial en un ataque de texto simple elegido
  • Seguridad de al menos 128 bits contra ataques de recuperación de claves y también en situaciones de varios usuarios (cuando un atacante no se orienta 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.