HMACとは?えいちまっく
HMACとは、Hash-based Message Authentication Codeの略で、ハッシュ関数と送受信者だけが共有する秘密鍵を組み合わせてメッセージ認証符号(MAC)を作る方式である。RFC 2104で標準化され、HMAC-SHA256のようにハッシュ関数名を添えて呼ぶ。受信側が同じ鍵で計算し直して一致すれば、改ざんの有無と、鍵を持つ相手が送ったことを確かめられる。TLS、IPsec、Web APIの署名、JWT(HS256)で広く使われる。
最終更新:2026-10-06
情報処理安全確保支援士を最短で暗記・合格する →背景
ハッシュ値だけを添えても、内容ごと差し替えて計算し直せば誰でも整合させられる。鍵を混ぜれば第三者は正しい値を作れないが、単純に「鍵+メッセージ」を連結してハッシュすると、MD5やSHA-1のような構造のハッシュでは末尾にデータを足して有効な値を作る伸長攻撃が成立する。鍵を内側と外側の2回に分けて混ぜ、この弱点を塞いだ構成がHMACである。
具体例
AWSのAPI呼び出しに使う署名バージョン4は、シークレットアクセスキーから派生させた鍵でリクエストの正規化文字列をHMAC-SHA256で署名する。勤怠SaaSのWebhookでも、送信元が共有鍵でペイロードのHMACを計算してヘッダに付け、受信側の自社システムが再計算して一致を確かめる形が一般的である。
試験での引っ掛け
HMACは共通鍵方式なので、受信者も同じ鍵で有効な値を作れる。したがって「送信者が送ったこと」を第三者に証明する否認防止は満たさず、それが必要ならデジタル署名(公開鍵方式)を使う。またHMACは暗号化ではないため機密性は提供しない。鍵とメッセージを単に連結してハッシュしたものとHMACを同一視する選択肢にも注意する。
関連用語
出典・参考
公式シラバスの3 技術要素 > 1. 情報セキュリティ > (8) 情報セキュリティに関する技術に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。