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:
- A mensagem e a chave secreta são processadas através de uma função hash de uma maneira específica.
- Como resultado, obtém-se um código hash único (HMAC).
- Este HMAC é enviado juntamente com a mensagem.
- O destinatário, tendo a mesma mensagem e chave secreta, recalcula o HMAC.
- 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) eopad(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.