HMAC / MAC
Conjunto do lado do cliente de códigos de autenticação de mensagens por hash com chave, com suporte a HMAC-SHA256, SHA512, SHA384, SHA224, SHA1 e MD5, com aceleração nativa Web Crypto e verificação em tempo constante.
O Que É HMAC?
O HMAC (Hash-based Message Authentication Code) combina uma chave secreta com uma função de hash para produzir um código que prova tanto que uma mensagem não foi alterada como que foi criada por alguém que possui a chave partilhada — ao contrário de um hash simples, que qualquer pessoa pode calcular.
Como Usar a Ferramenta HMAC / MAC
- Introduza a mensagem e a chave secreta.
- Escolha um algoritmo de hash para usar com o HMAC (o SHA-256 e outros estão disponíveis).
- Gere o MAC, ou cole um MAC existente juntamente com uma mensagem e chave para verificar se coincide.
Notas Técnicas
- O HMAC requer uma chave secreta — sem ela, é apenas um hash normal e não oferece qualquer garantia de autenticação.
- A mesma mensagem e chave produzem sempre o mesmo MAC, pelo que a verificação consiste em recalcular o MAC e compará-lo, e não em desencriptar nada.
- Mantenha a chave secreta privada; qualquer pessoa que a tenha pode gerar MACs válidos indistinguíveis dos seus.
Perguntas frequentes
Em que difere o HMAC de um hash simples?+
Um hash simples pode ser calculado por qualquer pessoa, por isso só deteta alterações acidentais. O HMAC incorpora uma chave secreta, portanto uma etiqueta válida também prova que a mensagem veio de alguém que possui essa chave. Sem chave, não oferece autenticação.
Como verifico um MAC? Pode ser decifrado?+
Um MAC não é cifragem e não pode ser revertido. Verificar significa recalcular o HMAC sobre a mensagem e a chave recebidas e compará-lo com a etiqueta esperada. Esta ferramenta faz essa comparação em tempo constante para evitar canais laterais de temporização.
É seguro usar HMAC-MD5 ou HMAC-SHA1?+
As fraquezas de colisão de MD5 e SHA-1 não quebram diretamente o HMAC, por isso estas variantes ainda aparecem em alguns protocolos antigos, como assinaturas antigas da AWS e OAuth 1.0. Para tudo o que for novo, use HMAC-SHA-256 ou mais forte.
