HMAC - 暗号化全般

暗号化全般 | IT用語集

HMACとは

HMAC(Hash-based Message Authentication Code)は、ハッシュ関数と秘密鍵を組み合わせてメッセージの完全性と認証を提供する技術です。RFC 2104で標準化されており、TLS、API認証、JWT、IPsecなど広く使用されています。

HMAC-SHA256の計算式:

HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m))

AIエンジニアとしての実体験

API認証やWebhookの検証にHMACを頻繁に使用します:

import hmac
import hashlib

# HMAC-SHA256の計算
secret = b'my_secret_key'
message = b'important data'
signature = hmac.new(secret, message, hashlib.sha256).hexdigest()

# 署名の検証(タイミング攻撃対策)
expected_signature = "..."
is_valid = hmac.compare_digest(signature, expected_signature)

HMAC vs 単純ハッシュ

  • 認証:HMACは秘密鍵を知る者のみが生成可能
  • 長さ拡張攻撃への耐性:HMACは設計上安全

用途

  • API認証(AWS Signature V4など)
  • JWTトークンの署名
  • Webhookペイロードの検証
  • TLSのMAC

関連用語

📝 関連ブログ記事

【2026年最新】OpenSSLの深刻な問題とは?

API認証実装のご相談