基本情報技術者 2015年 秋期 午前(科目A) 問36
問題文
手順に示す処理を実施することによって、メッセージの改ざんの検知の他に、受信者Bができることはどれか。
〔手順〕
送信者Aの処理
(1)メッセージから、ハッシュ関数を使ってダイジェストを生成する。
(2)秘密に保持している自分の署名生成鍵を用いて、(1)で生成したダイジェストからメッセージの署名を生成する。
(3)メッセージと、(2)で生成した署名を受信者Bに送信する。
受信者Bの処理
(4)受信したメッセージから、ハッシュ関数を使ってダイジェストを生成する。
(5)(4)で生成したダイジェスト及び送信者Aの署名検証鍵を用いて、受信した署名を検証する
選択肢
ア:メッセージが送信者Aからのものであることの確認(正解)
イ:メッセージの改ざん部位の特定
ウ:メッセージの盗聴の検知
エ:メッセージの漏えいの防止
電子署名による送信者確認と改ざん検知【午前2 解説】
要点まとめ
- 結論:受信者Bは送信者Aの署名検証鍵で署名を検証することで、送信者本人による送信と改ざんの有無を確認できます。
- 根拠:送信側がダイジェストに秘密鍵で署名し、受信側は同じハッシュと送信者の公開鍵で検証するため、署名の成立は送信者性と内容一致を示します。
- 差がつくポイント:電子署名は「認証(送信者確認)」と「完全性(改ざん検知)」を提供しますが、盗聴検知や機密保持(暗号化)は別の手段が必要です。
正解の理由
送信者Aはメッセージのダイジェストに自分の秘密鍵で署名を行っています。受信者Bは受信メッセージのダイジェストを算出し、送信者Aの署名検証鍵(公開鍵)で署名を検証します。検証が成功すれば、
- ダイジェストが送信時と同一である(改ざんされていない)こと
- 署名が送信者Aの秘密鍵によって作成された可能性が高いこと の両方が示され、結果として「送信者Aから送られたこと」を確認できます。ただしこの確認は、検証鍵が確かにAのものであるという前提(鍵の信頼性、PKIなど)を含みます。
よくある誤解
- 電子署名は機密性(第三者による閲覧防止)を提供するという誤解:署名は認証と完全性を保証するのみで、暗号化しない限り盗聴や漏えいは防げません。
- 改ざん箇所が特定できると考える誤解:署名検証は「一致/不一致」を示すだけで、どの箇所が改ざんされたかまでは示しません。
- 公開鍵が正しく送信者Aに紐づいていることを無視する誤解:公開鍵そのものが第三者に偽装されていると、署名検証の結果が誤った信頼につながる可能性があります(PKIや証明書の信頼性が必要)。
解法ステップ
- 手順を確認し、どの暗号技術が使われているかを把握する(ハッシュ+秘密鍵で署名=電子署名)。
- 電子署名の保証する属性を列挙する(認証=送信者確認、完全性=改ざん検知、否認防止=場合によっては)。
- 選択肢をそれぞれ当てはめ、電子署名でカバーされる項目を選ぶ(機密性や盗聴検知は含まれない)。
- 公開鍵の信頼性の前提に注意して、最も適合する選択肢を決定する。
選択肢別の誤答解説
- ア: メッセージが送信者Aからのものであることの確認
理由:正解。署名検証が成功すれば送信者Aの秘密鍵で署名されたことが示唆され、送信者性(認証)が確認できます。ただし公開鍵の真正性が前提です。 - イ: メッセージの改ざん部位の特定
理由:不正解。ハッシュ+署名による検証は改ざんの有無を検出できますが、どの部分が改ざんされたか(バイト位置など)は示しません。差分解析等は別途必要です。 - ウ: メッセージの盗聴の検知
理由:不正解。盗聴(第三者がメッセージを傍受した事実)の検知はできません。署名は内容の改ざんや送信者性の検証に関係しますが、通信経路での傍受を検出する機能はありません。 - エ: メッセージの漏えいの防止
理由:不正解。漏えい防止=機密性は暗号化(例えば受信者の公開鍵で暗号化)によって達成されます。署名だけでは内容の秘匿は行われません。
補足コラム
- 公開鍵の信頼性確保:署名の検証は公開鍵が確かに送信者Aに属するという前提が必要です。これを保証するためにX.509証明書とCAといったPKIが用いられます。
- 非否認性(否認防止):電子署名は、適切に運用されれば送信者が後にその送信を否認できない証拠として機能することがあります。ただし鍵管理が不適切だと否認防止は弱まります。
- ハッシュ衝突リスク:使用するハッシュ関数に衝突脆弱性があると、改ざん検知や署名の信頼性が損なわれます。現在はSHA-2やSHA-3等の安全なハッシュを用いるのが望ましいです。
FAQ
Q1: 電子署名だけで安全な通信は成立しますか?
A1: いいえ。電子署名は認証と完全性を提供しますが、機密保持(盗聴防止)や通信の可用性は別手段(暗号化、TLS等)で確保する必要があります。
A1: いいえ。電子署名は認証と完全性を提供しますが、機密保持(盗聴防止)や通信の可用性は別手段(暗号化、TLS等)で確保する必要があります。
Q2: 署名検証に失敗したらどう判断すべきですか?
A2: 受信メッセージが改ざんされたか、送信者の公開鍵が異なっているか、ハッシュ関数や実装に問題がある可能性があります。公開鍵の正当性確認と再送要求が基本対応です。
A2: 受信メッセージが改ざんされたか、送信者の公開鍵が異なっているか、ハッシュ関数や実装に問題がある可能性があります。公開鍵の正当性確認と再送要求が基本対応です。
Q3: 改ざん箇所を特定する方法はありますか?
A3: 部分ごとに個別のハッシュやメッセージ認証コード(MAC)、差分検出ツール、またはログ/バージョン管理等で変更箇所を特定できます。一般的な単一の署名検証だけでは特定できません。
A3: 部分ごとに個別のハッシュやメッセージ認証コード(MAC)、差分検出ツール、またはログ/バージョン管理等で変更箇所を特定できます。一般的な単一の署名検証だけでは特定できません。
関連キーワード: 電子署名、ダイジェスト、ハッシュ関数、公開鍵暗号、改ざん検知、認証、完全性、PKI、非否認性、機密保持

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

