HMACとは

えいちまっく

ハッシュ関数と共通鍵を使うメッセージ認証コードの方式。鍵から作った2つの値 K ⊕ ipad と K ⊕ opad を使い、HMAC(K, m) = H((K ⊕ opad) ‖ H((K ⊕ ipad) ‖ m)) と、ハッシュ関数を2回使って計算する。単に鍵とメッセージをつなげてハッシュする方式と違い、SHA-256のようなMerkle–Damgård構造のハッシュ関数を使っても、長さ拡張攻撃を受けない。RFC 2104で定められ、TLS、IPsec、JWT、鍵導出関数のHKDFなどで広く使われる。

「HMAC」は、2分野の4問の練習問題に出てきます(暗号技術の基礎と応用, 情報セキュリティの基礎など)。

この用語の分野: 暗号技術の基礎と応用

HMACの練習問題に挑戦

メッセージ認証コード(MAC)とデジタル署名を比べたときの説明として正しいものはどれか。

  1. AMACは公開鍵で誰でも検証できるので、否認防止の効果はデジタル署名より強い
  2. BMACは送り手と受け手が共有する共通鍵で作るので、改ざんの検出はできるが、受け手も同じMACを作れるため、第三者に対して送り手が作ったことを証明する否認防止には使えない
  3. CMACは鍵を使わずにハッシュ値を計算するだけなので、攻撃者がメッセージを書き換えたうえでMACを計算し直しても、受け手は気づくことができる
答えと解説を見る

正解:B. MACは送り手と受け手が共有する共通鍵で作るので、改ざんの検出はできるが、受け手も同じMACを作れるため、第三者に対して送り手が作ったことを証明する否認防止には使えない

メッセージ認証コード(MAC)は、メッセージと共通鍵から計算する短い値で、ハッシュ関数を使うHMACがよく使われます。受け手は同じ鍵で計算し直して比べ、一致すれば、鍵を知っている相手から送られ、途中で改ざんされていないことが分かります。鍵を知らない攻撃者は、書き換えたメッセージに合う正しいMACを作れません。ただし、同じ鍵を受け手も持っているので、受け手もMACを作れます。そのため、受け手が第三者に「これは送り手が作ったものだ」と証明することはできず、否認防止にはなりません。デジタル署名は送り手の秘密鍵でしか作れず、公開鍵で誰でも検証できるので、否認防止に使えます。一方、MACは計算が軽く、通信の1つ1つのパケットの改ざんの検出など、当事者どうしの確認に広く使われています。鍵を使わない単なるハッシュ値は、攻撃者がメッセージと一緒に計算し直せてしまうので、意図的な改ざんの検出には使えません。

秘密の鍵Kとメッセージmをつなげた値のハッシュ値 SHA-256(K ‖ m) を、改ざんの検出用のタグとして使うのは危険とされる。その理由として正しいものはどれか。

  1. Aタグと入力の長さが分かれば、Kを知らなくても、mの後ろにデータを足したメッセージのタグを計算できるから
  2. BSHA-256の出力から、入力の先頭に置いた鍵Kの部分だけを逆算する、効率のよい方法が見つかっているから
  3. C鍵Kをメッセージの前に置くと入力が長くなり、SHA-256では衝突が見つかりやすくなるから
答えと解説を見る

正解:A. タグと入力の長さが分かれば、Kを知らなくても、mの後ろにデータを足したメッセージのタグを計算できるから

SHA-256のようなMerkle–Damgård構造のハッシュ関数では、出力のハッシュ値が、最後のブロックを処理した後の内部の状態そのものです。そのため攻撃者は、タグを内部の状態として計算を続け、K ‖ m に決まった形のパディングと任意のデータを付けたメッセージのハッシュ値を、Kを知らずに計算できます(長さ拡張攻撃)。HMACは、鍵から作った2つの値を使い、内側のハッシュ値をもう一度鍵と一緒にハッシュする構造で、この攻撃を防ぎます。SHA-3は構造上この攻撃を受けないので、鍵を前に付けるだけのKMACという方式も標準化されています。

解説の中の「HMAC」

「HMAC」が出てくる問題(4問)

  1. メッセージ認証コード(MAC)とデジタル署名を比べたときの説明として正しいものはどれか。
  2. 秘密の鍵Kとメッセージmをつなげた値のハッシュ値 SHA-256(K ‖ m) を、改ざんの検出用のタグとして使うのは危険とされる。その理由として正しいものはどれか。
  3. TLS 1.3などのプロトコルで、ECDHEの鍵交換で得た共有の秘密をそのまま暗号の鍵には使わず、HKDFのような鍵導出関数(KDF)を通して鍵を作る理由として、適切なものはどれか。
  4. TLS 1.3の暗号スイート TLS_AES_128_GCM_SHA256 が指定するものの組み合わせとして、正しいものはどれか。

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

ハッシュ関数 TLS ディフィー・ヘルマン鍵交換 メッセージ認証コード デジタル署名 情報エントロピー AES 認証付き暗号(AEAD) RSA暗号 暗号利用モード

用語集の一覧へ