メッセージ認証符号(MAC)は何のために使うのか
情報セキュリティマネジメント試験 平成31年度春期 午前 問26 / セキュリティ › 情報セキュリティ
過去問にチャレンジ
メッセージ認証符号の利用目的に該当するものはどれか。
- ア
メッセージが改ざんされていないことを確認する。
- イ
メッセージの暗号化方式を確認する。
- ウ
メッセージの概要を確認する。
- エ
メッセージの秘匿性を確保する。
会話形式の解説
講師今回はメッセージ認証符号、略してMACが何のために使われるかを問う問題です。完全性、つまり内容が変わっていないことの確認と、秘匿性、つまり内容を隠すことを区別できるかがポイントです。
受験者「認証」と付いているので、何かを守るための暗号の一種かと思っていました。内容を隠すという選択肢にも惹かれます。
講師そこが混同しやすいところです。まず仕組みを確認しましょう。MACは、送信者と受信者が共有している秘密鍵とメッセージから計算する短い値です。送信者はこの値をメッセージに添えて送ります。
受験者受信側では、その値をどう使うのですか。
講師受信側は、届いたメッセージから同じ鍵でMACを計算し直し、添えられてきたMACと比べます。一致すれば途中で内容が変わっていないと判断でき、一致しなければ改変されたと分かります。
受験者それなら、改ざんされていないことを確認するという選択肢がそのまま当てはまりますね。でも、MACを付ければ本文も守られるのではないですか。
講師MACを付けても、本文は平文のまま読めます。内容を第三者に知られないようにしたいなら、MACとは別に暗号化が必要です。なので、秘匿性を確保するという選択肢は誤りです。
受験者暗号化方式を確認するという選択肢はどうでしょう。MACの計算に暗号を使うと聞いたことがあります。
講師MACの方式には、共通鍵暗号を使うものと、HMACのようにハッシュ関数を使うものがあります。ただ、それは値を計算するための手段です。メッセージにどの暗号アルゴリズムが使われたかを識別するのが目的ではありません。
受験者メッセージの概要を確認するという選択肢は、短い値になるので要約のように思えてしまいました。
講師短い値ではありますが、人が読める要約ではありません。メッセージが変われば値も変わるのが通常なので、改ざんの検出には役立ちますが、内容の要点を示す役割は持ちません。
受験者整理すると、MACは鍵を使って計算し直して照合し、改ざんがないこと、つまり完全性を確かめるものです。内容を隠すのは暗号化の役割、ということですね。
講師そのとおりです。補足すると、秘密鍵を共有している相手しかMACを作れないので、送信元が正規の相手であることも確認できます。鍵を使わないハッシュ値だけだと、改ざんした人がハッシュ値も作り直せるので、送信元の確認にはなりません。
受験者それなら、MACで送信者が作ったことを証明する、つまり否認防止もできるのでしょうか。
講師そこはできません。受信者も同じ鍵を持っていて同じMACを作れるので、送信者が作成したことを第三者に証明できないからです。否認防止にはデジタル署名を使います。ここも混同しやすい点なので、あわせて押さえておきましょう。
まとめ
メッセージ認証符号(MAC)の主な目的は、メッセージが改ざんされていないこと(完全性)を確認することです。MACは送信者と受信者が共有する秘密鍵とメッセージから計算し、受信側が計算し直して照合します。MACを付けても本文は平文のままなので、秘匿性を確保するには別に暗号化が必要です。受信者も同じMACを作れるため、MACでは否認防止ができず、否認防止にはデジタル署名を使います。
解答・解説
正解はアです
この問題のテーマ
メッセージ認証符号(MAC)が何のために使われるのかを問う問題です。完全性の確認、内容の秘匿、暗号方式の識別といった、混同しやすいセキュリティ機能を区別できるかが問われています。
解き方の考え方
まず、MACは送信者と受信者が共有する秘密鍵を使い、メッセージから計算した短い値だということを思い出します。受信側は届いたメッセージから同じ鍵でMACを計算し直し、添えられてきたMACと比べます。一致しなければ途中で改変されたと判断できます。つまりMACは「内容が改ざんされていないか」を確かめる仕組みです。これに当てはまる選択肢を選び、残りは暗号化や要約など別の機能を説明していないかという観点で外していきます。
選択肢ごとの解説
- ○ア メッセージが改ざんされていないことを確認する。改ざんされていないことを確認するという説明は、MACの目的そのものです。受信側は再計算したMACと受信したMACを照合し、一致すれば途中で内容が変わっていないと判断できます。これは完全性の確認にあたります。
- ×イ メッセージの暗号化方式を確認する。暗号化方式を確認するという説明は誤りです。MACは、メッセージにどの暗号アルゴリズムが使われたかを識別する仕組みではありません。MACの計算に共通鍵暗号やハッシュ関数を使う方式はありますが、それは計算のための手段であり、方式を確認することが目的ではありません。
- ×ウ メッセージの概要を確認する。メッセージの概要を確認するという説明も当てはまりません。MACは人が読める要約を作るものではなく、改ざんを検出するための値です。メッセージが少しでも変われば値も変わるため、内容の要点を示す役割は持ちません。
- ×エ メッセージの秘匿性を確保する。秘匿性を確保するという説明は誤りです。MACを付けても、メッセージ本文は平文のまま読めます。内容を第三者に知られないようにするには、MACとは別に暗号化が必要です。
補足
MACはデジタル署名と混同されやすいので注意してください。MACでは受信者も同じ鍵を持っていて同じMACを作れるため、「送信者が作成した」ことを第三者に証明できません。そのため否認防止にはデジタル署名を使います。また、鍵を使わないハッシュ値だけでは、改ざんした人がハッシュ値も作り直せるので、送信元を認証できません。
POINT
- MACの主な目的は、メッセージが改ざんされていないこと(完全性)の確認です。
- MACは送信者と受信者が共有する秘密鍵とメッセージから計算し、受信側が計算し直して照合します。
- 秘密鍵を共有している相手だけがMACを作れるので、送信元が鍵を持つ正規の相手であることも確認できます。
- MACでは内容は隠れないため、秘匿性(機密性)を確保するには暗号化を使います。
- MACの方式には、共通鍵暗号を使うものと、ハッシュ関数を使うもの(HMACなど)があります。
