情報セキュリティの基礎
メッセージ認証コード(MAC)とデジタル署名を比べたときの説明として正しいものはどれか。
- AMACは公開鍵で誰でも検証できるので、否認防止の効果はデジタル署名より強い
- BMACは送り手と受け手が共有する共通鍵で作るので、改ざんの検出はできるが、受け手も同じMACを作れるため、第三者に対して送り手が作ったことを証明する否認防止には使えない
- CMACは鍵を使わずにハッシュ値を計算するだけなので、攻撃者がメッセージを書き換えたうえでMACを計算し直しても、受け手は気づくことができる
答えと解説を見る
正解:B. MACは送り手と受け手が共有する共通鍵で作るので、改ざんの検出はできるが、受け手も同じMACを作れるため、第三者に対して送り手が作ったことを証明する否認防止には使えない
メッセージ認証コード(MAC)は、メッセージと共通鍵から計算する短い値で、ハッシュ関数を使うHMACがよく使われます。受け手は同じ鍵で計算し直して比べ、一致すれば、鍵を知っている相手から送られ、途中で改ざんされていないことが分かります。鍵を知らない攻撃者は、書き換えたメッセージに合う正しいMACを作れません。ただし、同じ鍵を受け手も持っているので、受け手もMACを作れます。そのため、受け手が第三者に「これは送り手が作ったものだ」と証明することはできず、否認防止にはなりません。デジタル署名は送り手の秘密鍵でしか作れず、公開鍵で誰でも検証できるので、否認防止に使えます。一方、MACは計算が軽く、通信の1つ1つのパケットの改ざんの検出など、当事者どうしの確認に広く使われています。鍵を使わない単なるハッシュ値は、攻撃者がメッセージと一緒に計算し直せてしまうので、意図的な改ざんの検出には使えません。
- A. MACの検証には、作成と同じ共通鍵が必要で、公開鍵では検証しません。否認防止はデジタル署名の特徴です。
- B. 正しい。共通鍵を使うので改ざんの検出はできますが、受け手も同じMACを作れるため否認防止にはなりません。
- C. MACは共通鍵を使って計算します。鍵を使わない単なるハッシュ値なら、攻撃者が計算し直せるので改ざんに気づけません。