基本情報技術者 2012年 春期 午前(科目A) 問40
問題文
送信者から電子メール本文とそのハッシュ値を受け取り、そのハッシュ値と、受信者が電子メール本文から求めたハッシュ値を比較することで実現できることはどれか。ここで、受信者が送信者から受け取るハッシュ値は正しいものとする。
選択肢
ア:電子メールの送達の確認
イ:電子メール本文の改ざんの有無の検出(正解)
ウ:電子メール本文の盗聴の防止
エ:なりすましの防止
🔒 解説は解答すると表示されます
電子メール本文のハッシュ検証【午前解説】
正解の理由
送信者が正しいハッシュ値を送ってきた前提で、受信者が受け取った本文から同じハッシュ関数でダイジェストを計算し比較することで、本文に変更があればハッシュ値が一致しなくなります。したがって、比較によって電子メール本文の改ざんの有無(完全性の検証)が実現できます。他の選択肢が指す「送達確認」「盗聴防止」「なりすまし防止」はハッシュ単独の比較では達成できません。
解法ステップ
- 問題の手順を整理する: 送信者→本文とハッシュ値、受信者→本文からハッシュ計算、比較。
- ハッシュ関数の性質を確認: 一方向性、微小な変化でハッシュ値が変わる(感度)、固定長出力。
- 各選択肢がどのセキュリティ目的に対応するかを照合する: 送達、完全性(改ざん検出)、機密性(盗聴防止)、認証(なりすまし防止)。
- ハッシュ比較は「改ざん検出(完全性)」に該当するため該当選択肢を選ぶ。
選択肢別の誤答解説
- ア: 電子メールの送達の確認
- 誤り。送達確認は配達通知や受信確認(ACK)の仕組みが必要であり、ハッシュ比較は送達の成功・失敗を示しません。
- イ: 電子メール本文の改ざんの有無の検出
- 正解。本文とハッシュ値を比較することで、本文が途中で変えられていないか(整合性)が確認できます。
- ウ: 電子メール本文の盗聴の防止
- 誤り。盗聴防止(機密性)は暗号化(例えばTLSや公開鍵暗号)で実現し、ハッシュは情報を隠しません。
- エ: なりすましの防止
- 誤り。送信者の真正性を確かめるには公開鍵暗号を用いた電子署名やHMACなどの認証手段が必要であり、ハッシュ比較だけでは防げません。
よくある誤解
- ハッシュ値を送れば盗聴が防げると思う誤解: ハッシュはデータの短い代表値であり、本文を隠す(暗号化する)ものではありません。
- ハッシュ比較で送信者本人の証明ができると思う誤解: ハッシュ値自体に署名や鍵による保護がなければ、なりすまし(誰が送ったかの証明)はできません。
- ハッシュの一致で完全に安全だと考える誤解: 受け取ったハッシュ値が途中で改ざんされていないという前提が崩れると検知できないため、ハッシュの送り方も重要です。
補足コラム
- ハッシュ比較で改ざん検出を強固にするには、受け取るハッシュ値自体が改ざんされていないことを保証する必要があります。これには次の手法があります。
- 電子署名: 送信者がハッシュに自分の秘密鍵で署名すれば、受信者は公開鍵で署名を検証して真正性と完全性を同時に確認できます。
- HMAC: 送信者と受信者が共有する秘密鍵を用いると、メッセージ+ハッシュの整合性と認証が可能になります。
- ハッシュ関数は衝突耐性(異なる入力が同じハッシュを出す確率が極めて低い)を持つものを選ぶ必要があります。近年は SHA-256 等の安全なハッシュが推奨されます。
FAQ
Q1: ハッシュだけ送れば安全に改ざん検出できるのですか?
A1: 受け取ったハッシュが正しい(途中で改ざんされていない)という前提が必要です。ハッシュ自体を保護するために署名やHMACを併用します。
A1: 受け取ったハッシュが正しい(途中で改ざんされていない)という前提が必要です。ハッシュ自体を保護するために署名やHMACを併用します。
Q2: ハッシュが一致しても絶対に改ざんされていないと言えますか?
A2: 実用上は高い確度で改ざんされていないと判断できますが、理論的にはハッシュ衝突の可能性があり、より強力な対策(長いハッシュ、信頼できるアルゴリズム)が重要です。
A2: 実用上は高い確度で改ざんされていないと判断できますが、理論的にはハッシュ衝突の可能性があり、より強力な対策(長いハッシュ、信頼できるアルゴリズム)が重要です。
Q3: なりすまし防止はどうすればよいですか?
A3: 送信者の秘密鍵で署名する電子署名や、共有鍵を用いたHMACを使うことで認証が提供されます。
A3: 送信者の秘密鍵で署名する電子署名や、共有鍵を用いたHMACを使うことで認証が提供されます。
関連キーワード: ハッシュ関数、整合性、改ざん検知、メッセージダイジェスト、デジタル署名、HMAC、暗号化、電子メール、衝突耐性

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

