CyberGlossary

Criptografía

HMAC

También conocido como: MAC con clave por hash, HMAC de RFC 2104

Definición

Construcción de MAC con clave basada en una función hash criptográfica, definida en RFC 2104 y FIPS 198-1.

HMAC (Hash-based Message Authentication Code) es un MAC simétrico definido en RFC 2104 y FIPS 198-1 que combina una clave secreta K con una función hash H para producir un tag: HMAC(K,m) = H((K' XOR opad) || H((K' XOR ipad) || m)). La estructura anidada hace que HMAC sea seguro frente a ataques de extensión de longitud incluso cuando se usa con hashes Merkle-Damgård como SHA-256, y su seguridad se reduce a la resistencia débil a colisiones y a la pseudoaleatoriedad de la función de compresión. Las instancias más habituales son HMAC-SHA-256 y HMAC-SHA-512, empleadas en TLS, firmas JWT, OAuth, IPsec y como PRF dentro de PBKDF2 y HKDF. HMAC sigue siendo una elección sólida por defecto para autenticación simétrica de mensajes.

Ejemplos

  • Los JWT con algoritmo HS256 se firman con HMAC-SHA-256.
  • AWS Signature Version 4 utiliza HMAC-SHA-256 para firmar peticiones API.

Términos relacionados