CyberGlossary

密码学

HMAC

别称: 带密钥哈希 MAC, RFC 2104 HMAC

定义

基于密码学哈希函数的带密钥消息认证码结构,由 RFC 2104 与 FIPS 198-1 定义。

HMAC(Hash-based Message Authentication Code)是一种对称 MAC 构造,定义于 RFC 2104 与 FIPS 198-1,将秘密密钥 K 与哈希函数 H 结合生成 tag:HMAC(K,m) = H((K' XOR opad) || H((K' XOR ipad) || m))。这种嵌套结构使 HMAC 即使在与 Merkle-Damgård 类哈希(如 SHA-256)配合使用时,也能抵御长度扩展攻击;其安全性可归约为压缩函数的弱抗碰撞性与伪随机性。常见实例 HMAC-SHA-256 与 HMAC-SHA-512 被广泛用于 TLS 记录保护、JWT 签名、OAuth、IPsec,以及作为 PBKDF2 和 HKDF 的内部 PRF。HMAC 仍是对称消息认证的可靠默认选择。

示例

  • 采用 HS256 算法的 JWT 令牌使用 HMAC-SHA-256 进行签名。
  • AWS Signature Version 4 使用 HMAC-SHA-256 对 API 请求进行签名。

相关术语