情報処理安全確保支援士試験 令和4年秋期午前Ⅱ メッセージ認証符号

出典:令和4年秋期 午前Ⅱ 問1 分野:セキュリティ / 情報セキュリティ
送信者から受信者にメッセージ認証符号(MAC:Message Authentication Code)を付与したメッセージを送り,さらに受信者が第三者に転送した。そのときのMACに関する記述のうち,適切なものはどれか。ここで,共通鍵は送信者と受信者だけが知っており,送信者と受信者のそれぞれの公開鍵は3人とも知っているとする。
  • ア:MACは,送信者がメッセージと共通鍵を用いて生成する。MACを用いると,受信者がメッセージの完全性を確認できる。
  • イ:MACは,送信者がメッセージと共通鍵を用いて生成する。MACを用いると,第三者が送信者の真正性を確認できる。
  • ウ:MACは,送信者がメッセージと受信者の公開鍵を用いて生成する。MACを用いると,第三者がメッセージの完全性を確認できる。
  • エ:MACは,送信者がメッセージと送信者の公開鍵を用いて生成する。MACを用いると,受信者が送信者の真正性を確認できる。
解説

メッセージ認証符号(MAC)は、メッセージが改ざんされていないことと、正しい相手から送られてきたことを確認するための値です。

MACは、送信者と受信者だけが知っている共通鍵と、送信するメッセージをもとに生成されます。同じメッセージと同じ共通鍵を使えば、同じMACが生成されます。

方式 特徴
CMAC ブロック暗号を使ってMACを生成する方式。暗号化処理の結果を利用して、メッセージの正しさを確認する
HMAC ハッシュ関数を使ってMACを生成する方式。メッセージと共通鍵を組み合わせてハッシュ化する

MACを使った確認の流れは、次のとおりです。

  1. 送信者は、メッセージと共通鍵を使ってMACを生成する
  2. 送信者は、メッセージとMACを受信者に送る
  3. 受信者は、受け取ったメッセージと共通鍵を使って、自分でもMACを生成する
  4. 受信したMACと、自分で生成したMACを比較する
  5. 2つのMACが一致すれば、メッセージが改ざんされていないと判断できる

ここで重要なのは、メッセージ自体は暗号化されていない点です。そのため、受信者がメッセージを復号する必要はありません。

つまりMACは、「共通鍵を知っている相手が作ったメッセージか」「途中で内容が変わっていないか」を確認するためのチェック値と考えると分かりやすいです。

したがって、が適切です。

❌他選択肢が誤りの理由
イ:MACは,送信者がメッセージと共通鍵を用いて生成する。MACを用いると,第三者が送信者の真正性を確認できる。
⇒MACを共通鍵で生成する点は正しいですが、第三者はその共通鍵を知らないため、MACを検証できません。また、受信者も同じ共通鍵でMACを生成できるため、第三者に対して送信者の真正性を証明する仕組みではありません。
ウ:MACは,送信者がメッセージと受信者の公開鍵を用いて生成する。MACを用いると,第三者がメッセージの完全性を確認できる。
⇒MACは公開鍵ではなく、送信者と受信者が共有する共通鍵を用いて生成します。公開鍵を使うデジタル署名とは仕組みが異なり、第三者が検証できるものではありません。
エ:MACは,送信者がメッセージと送信者の公開鍵を用いて生成する。MACを用いると,受信者が送信者の真正性を確認できる。
⇒MACは送信者の公開鍵ではなく、共通鍵を用いて生成します。送信者の秘密鍵で署名し、公開鍵で検証するデジタル署名とは異なります。MACでは完全性や共通鍵を知る相手からのメッセージであることは確認できますが、公開鍵暗号による署名の説明ではありません。
TSUNAGARU-ADVICE

まず押さえたいこと

MACは、送信者と受信者だけが知っている共通鍵とメッセージを使って生成します。受信者は同じ共通鍵でMACを検証し、メッセージが改ざんされていないことを確認できます。

迷ったときの判断軸

MACは共通鍵を使う仕組みなので、第三者は検証できません。また、公開鍵を使って生成するものでもありません。したがって、送信者と受信者の間で完全性を確認する仕組みと整理すると判断しやすくなります。

科目Bにつなげるために

科目Bでは、MACとデジタル署名の違いが問われることがあります。MACは共通鍵を共有する相手同士で完全性を確認する仕組みであり、第三者に対して送信者を証明する用途には向きません。第三者検証が必要ならデジタル署名と切り分けましょう。