HMAC
HMAC (code d'authentification de message fondé sur le hachage) est un code d'authentification combinant une fonction de hachage et une clé secrète, fournissant intégrité et authenticité.
Objectif
Construit un MAC sûr à partir d'une fonction de hachage existante, sans conception dédiée.
Mécanisme
HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m)), où ipad/opad sont des bourrages fixes. Les clés plus longues que le bloc de hachage sont d'abord hachées. À utiliser avec un hachage sûr (SHA-256) ; bien que MD5/SHA-1 soient cassés comme hachages, HMAC-MD5/SHA1 restent comparativement sûrs.
Cas d’usage
- Signature de requêtes API (ex. AWS SigV4)
- Signature JWT HS256
- MAC d'enregistrements TLS
- Protection des cookies contre la falsification
Exemples
- entrée
key + messageOutputHMAC-SHA256 tag32-byte authentication tag
Erreurs courantes
- Using the bare hash H(key||msg) as a MAC (vulnerable to length-extension attacks)
- Always use the HMAC construction
Termes associés
SHA-256
SHA-256 est le membre de la famille SHA-2 à sortie de 256 bits, très utilisé dans TLS, les blockchains et les applications cryptographiques, sans attaque pratique connue. GLOSSAIRE
SHA-512
SHA-512 est le membre de la famille SHA-2 à sortie de 512 bits ; plus rapide que SHA-256 sur les plateformes 64 bits, il offre une marge de sécurité supérieure. GLOSSAIRE
MD5
MD5 est une fonction de hachage cryptographique de 128 bits conçue par Ronald Rivest ; prouvée non sûre par des attaques par collision, elle ne sert plus aujourd'hui qu'à des usages sans exigence de sécurité comme les sommes de contrôle. GLOSSAIRE
JWT
JWT (JSON Web Token) est un jeton compact et autonome qui transmet de façon sûre des affirmations en objet JSON, largement utilisé pour l'authentification sans état et l'échange d'informations. GLOSSAIRE