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

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

メッセージ認証符号(MAC:Message Authentication Code)は、送信するメッセージと、送信者・受信者だけが知っている共通鍵を使って作る固定長のビット列です。受信者はMACを確認することで、「本当に正しい相手から送られてきたか」と「途中でメッセージが改ざんされていないか」を確認できます。代表的な方式には、次の2つがあります。

方式 特徴
CMAC(Cipher-based MAC) メッセージをブロック暗号アルゴリズムで処理し、最後に得られたブロックをMACとして利用する方式
HMAC(Hash function-based MAC) メッセージと共通鍵を組み合わせ、その結果をハッシュ関数で処理してMACとして利用する方式

MACを使ったメッセージ認証の流れは、次のとおりです。なお、MACはメッセージの改ざん確認に使うものであり、メッセージ自体を暗号化する仕組みではありません。そのため、受信者側でメッセージを復号する必要はありません。

  1. 送信者は、メッセージと共通鍵をもとにMACを生成し、メッセージと一緒に受信者へ送信する
  2. 受信者は、受け取ったメッセージと自分が持っている共通鍵を使い、送信者と同じ方法でMACを生成する。
  3. 受信したMACと自分で生成したMACを比較します。

メッセージ、共通鍵、計算方法がすべて同じであれば、生成されるMACも同じになります。そのため、2つのMACが一致すれば、メッセージが途中で壊れたり、改ざんされたりしていないことを確認できます。

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

❌他選択肢が誤りの理由
イ:MACは,送信者がメッセージと共通鍵を用いて生成する。MACを用いると,第三者が送信者の真正性を確認できる。
⇒第三者が送信者の真正性を確認できる、という点で違います。第三者は共通鍵を知らないためMACを検証できず、またMACはデジタル署名のような否認防止には使えません。
ウ:MACは,送信者がメッセージと受信者の公開鍵を用いて生成する。MACを用いると,第三者がメッセージの完全性を確認できる。
⇒受信者の公開鍵を用いて生成する、という点で違います。MACは公開鍵ではなく、送信者と受信者が共有する共通鍵を用いて生成します。
エ:MACは,送信者がメッセージと送信者の公開鍵を用いて生成する。MACを用いると,受信者が送信者の真正性を確認できる。
⇒送信者の公開鍵を用いて生成する、という点で違います。公開鍵を用いる真正性確認はデジタル署名の考え方であり、MACは共通鍵を用います。
TSUNAGARU-ADVICE

まず押さえたいこと

MACは、送信者と受信者だけが知っている共通鍵とメッセージから生成され、受信者がメッセージの完全性と送信元の正当性を確認するために使う値です。

迷ったときの判断軸

MACは公開鍵を使う仕組みではなく、共通鍵を使う仕組みです。そのため、共通鍵を知らない第三者はMACを検証できません。したがって、MACで確認できるのは、共通鍵を共有している受信者による完全性確認と整理すると判断しやすくなります。

科目Bにつなげるために

科目Bでは、MACとデジタル署名の違いを理解しているかが問われます。MACは共通鍵を共有する当事者間での確認に向き、第三者に送信者の真正性を証明する用途には向かないと押さえておきましょう。