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署名を付与し、受信側で署名を検証することで、なりすましリクエストを排除する」のような形で使われます。
この用語をシェア
最終更新: