CyberGlossary

Criptografia

HMAC

Também conhecido como: MAC com chave por hash, HMAC da RFC 2104

Definição

Construção de MAC com chave baseada numa função de hash criptográfica, definida nas RFC 2104 e FIPS 198-1.

O HMAC (Hash-based Message Authentication Code) é uma construção simétrica de MAC definida na RFC 2104 e na FIPS 198-1 que combina uma chave secreta K com uma função de hash H para produzir uma tag: HMAC(K,m) = H((K' XOR opad) || H((K' XOR ipad) || m)). A estrutura aninhada torna o HMAC resistente a ataques de extensão de comprimento mesmo com hashes Merkle-Damgård como SHA-256, e a sua segurança reduz-se à resistência fraca a colisões e à pseudo-aleatoriedade da função de compressão. As instâncias mais comuns são HMAC-SHA-256 e HMAC-SHA-512, usadas na proteção de registos TLS, assinaturas JWT, OAuth, IPsec e como PRF dentro de PBKDF2 e HKDF. O HMAC continua a ser uma escolha sólida por defeito para autenticação simétrica de mensagens.

Exemplos

  • JWT com algoritmo HS256 são assinados com HMAC-SHA-256.
  • O AWS Signature Version 4 utiliza HMAC-SHA-256 para assinar pedidos de API.

Termos relacionados