Código de autenticación de mensajes (MAC)
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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:
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.
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-07-25 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-25 (UTC)"],[[["\u003cp\u003eThe Message Authentication Code (MAC) primitive, using a shared symmetric key, enables verification of data integrity and authenticity by generating an authentication tag.\u003c/p\u003e\n"],["\u003cp\u003eMAC ensures authenticity as only the key holder can create a verifiable tag, and it's symmetric, requiring the same key for both computation and verification.\u003c/p\u003e\n"],["\u003cp\u003eTink recommends HMAC_SHA256 for most use cases, while HMAC_SHA512 offers higher security and AES256_CMAC might provide better performance with specific hardware.\u003c/p\u003e\n"],["\u003cp\u003eTink's MAC implementation guarantees a minimum of 80-bit authentication strength, protection against forgery, and at least 128-bit security against key recovery attacks, even in multi-user environments.\u003c/p\u003e\n"]]],["MAC uses a shared symmetric key between sender and recipient to verify message authenticity and integrity. The sender computes an authentication tag for a message, which the recipient uses to confirm its origin and unaltered state. MAC guarantees authenticity, where only key holders can create verifiable tags. Key recommendations include HMAC_SHA256, HMAC_SHA512 (most conservative), and AES256_CMAC (fastest with AES-NI). MAC is designed solely for message authentication, offering a minimum of 80-bit authentication strength.\n"],null,[]]