Aller au contenu
uencoder

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 + message
    Output
    HMAC-SHA256 tag

    32-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

Outils associés

References