本文へスキップ

HMACとは?

えいちまっく

HMACとは、秘密鍵とハッシュ関数組み合わせメッセージの完全性と正真性を同時に検証する、メッセージ認証コードの標準的な方式です。

HMAC(Hash-based Message Authentication Code)とは、暗号学的ハッシュ関数と秘密鍵を組み合わせメッセージ認証コード(MAC)を生成する方式です。RFC 2104として定義されておりデータ完全性(改ざんされていないこと)真正性(正しい送信者からのものであること)を同時に保証します。

HMACの基本的な仕組みは、秘密鍵をハッシュ関数の入力と組み合わせる二段階の演算です。具体的には、鍵を内側パディング(ipad)と組み合わせたハッシュを取り、その結果を鍵の外側パディング(opad)と組み合わせてさらにハッシュすることでHMAC値を生成します。この構造により、単純なハッシュが持つ長さ拡張攻撃の脆弱性を回避しています。

利用されるハッシュ関数により名称が変わり、代表的なものとして以下があります。

  • HMAC-SHA256:最も広く使われる組み合わせ
  • HMAC-SHA512:より高いセキュリティが必要な場面で使用
  • HMAC-SHA1:古いシステムで見られるが現在は非推奨

HMACはAPI認証、JWTの署名アルゴリズム(HS256など)、TLSのメッセージ検証、Webhookの署名検証など広範な場面で使用されています。鍵の秘密性が保たれる限り、送信者の検証と改ざん検知を確実に行える実用的な仕組みです。

使い方・例文

「WebhookのリクエストにHMAC-SHA256署名を付与し、受信側で署名を検証することで、なりすましリクエストを排除する」のような形で使われます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語