Sobes.tech
Middle+

O que é HMAC?

sobes.tech IA

Resposta da IA

HMAC (Código de Autenticação de Mensagem baseado em Hash) é um mecanismo para verificar a autenticidade e integridade de uma mensagem usando uma função hash e uma chave secreta.

Funciona da seguinte forma:

  1. A mensagem e a chave secreta são processadas através de uma função hash de uma maneira específica.
  2. Como resultado, obtém-se um código hash único (HMAC).
  3. Este HMAC é enviado juntamente com a mensagem.
  4. O destinatário, tendo a mesma mensagem e chave secreta, recalcula o HMAC.
  5. Se o HMAC calculado corresponder ao recebido, considera-se que a mensagem não foi alterada e que veio de uma fonte que possui a chave secreta.

HMAC_K(m) = Hash((K ⊕ opad) || Hash((K ⊕ ipad) || m))

Onde:

  • K — chave secreta.
  • m — mensagem.
  • Hash — função hash utilizada (por exemplo, SHA-256).
  • || — concatenação.
  • — operação XOR.
  • ipad (almofada interior) e opad (almofada exterior) — constantes utilizadas no algoritmo.

A diferença de uma função hash normal é que o HMAC usa uma chave secreta, o que o torna resistente a certos tipos de ataques que visam falsificar o hash.

Aplicações no desenvolvimento web:

  • Tokens Bearer: Para criar e verificar tokens de autenticação.
  • Assinatura de requisições: Para verificar a autenticidade das requisições à API.
  • Verificação de dados: Garante que os dados não foram alterados durante a transmissão.

Vantagens:

  • Alta resistência criptográfica.
  • Compatível com diferentes funções hash.
  • Fácil de implementar.