ITパスポート 2011年 秋期 問60
問題文
受信した電子メールにPKI(公開鍵基盤)を利用したディジタル署名が付与されている場合に判断できることだけを全て挙げたものはどれか。
a 電子メールの添付ファイルはウイルスに感染していない。
b 電子メールの内容は通信途中において、他の誰にも盗み見られていない。
c 電子メールの発信者は、なりすましされていない。
d 電子メールは通信途中で改ざんされていない。
選択肢
ア:a, b
イ:a, c
ウ:b, d
エ:c, d(正解)
🔒 解説は解答すると表示されます
電子メールのディジタル署名で判断できること【ITパスポート 解説】
正解の理由
PKI(公開鍵基盤:公開鍵と秘密鍵を使って認証や署名を行う仕組み)を用いたディジタル署名は、主に次の2点を保証します。
- 発信者の真正性(Authenticity):署名は送信者の秘密鍵で作られるため、対応する公開鍵で検証できれば「その公開鍵に対応する送信者が署名した」ことが確認できます。つまり「なりすましされていない」ことが判断できます(c)。
- 改ざん検出(Integrity):署名はメール本文などの内容のハッシュ(要約)を元に作られるため、受信後に内容が変わっていれば検証が失敗します。つまり「通信途中で改ざんされていない」ことが判断できます(d)。
一方で、ディジタル署名は暗号化(Confidentiality:内容を第三者に読まれないようにする)を自動的に行うものではありません。また、ウイルス感染の有無を検査する機能もありません。したがって a と b は判断できません。
解法ステップ
- 問題文で問われている機能は「PKI を利用したディジタル署名」です。まず「ディジタル署名が何を保証するか」を思い出します。
- ディジタル署名の主要な保証は「真正性(誰が作ったか)」と「完全性(改ざんされていないか)」であると確認する。
- 選択肢を各保証と照らし合わせる:
- なりすまし防止 → ○(c)
- 改ざん検出 → ○(d)
- 内容が盗み見られていない(暗号化) → ×(b)
- 添付ファイルがウイルスに感染していない → ×(a)
- 正しい組み合わせは c と d を含む選択肢(エ)であると判断する。
選択肢別の誤答解説
まず各記述 a〜d の正誤を示します。
-
a 電子メールの添付ファイルはウイルスに感染していない。 → 誤り
ディジタル署名はファイルの改ざん有無は検知できますが、ウイルスの存在そのもの(悪意のあるプログラムが含まれているか)までは判定できません。ウイルスは「正しい形式だが悪意ある内容」であることがあり得ます。 -
b 電子メールの内容は通信途中において、他の誰にも盗み見られていない。 → 誤り
これは「機密性(confidentiality)」の話です。暗号化(例:送信者が内容を受信者の公開鍵で暗号化する)を行えば盗み見防止になりますが、署名だけでは内容を暗号化しません。署名は改ざん検知と送信者の証明が目的です。 -
c 電子メールの発信者は、なりすましされていない。 → 正しい
送信者の秘密鍵で署名が作られ、対応する公開鍵で検証できれば「その鍵に対応する人」が送ったことの証拠になります。ただし、公開鍵が本当に正しい相手のものであること(公開鍵の正当性)は認証局(CA)や事前の確認で担保する必要があります。 -
d 電子メールは通信途中で改ざんされていない。 → 正しい
署名はメッセージのハッシュ(要約)に対して行われるため、メッセージが変われば検証に失敗します。よって改ざんの有無を判断できます。
選択肢(組合せ)ごと:
- ア: a, b → 両方とも誤りなので不適
- イ: a, c → a が誤りなので不適
- ウ: b, d → b が誤りなので不適
- エ: c, d → 両方正しいので正解
よくある誤解
-
「署名=暗号化」と考える誤解
両方とも暗号技術を使いますが目的が違います。署名は「誰が作ったか」「改ざんされていないか」を保証し、暗号化は「第三者に読まれないようにする」ことを保証します。署名だけでは内容を秘匿できません。 -
「署名があれば安全=ウイルスも無い」と考える誤解
署名は改ざんを検出できますが、正当な送信者があえてウイルス付きの添付ファイルを送ることもあり得ます。ウイルス対策は別途ウイルス対策ソフトなどで検査が必要です。 -
「公開鍵を入手できれば誰でも検証できる」ことへの安心しすぎ
公開鍵が偽装されていると検証は意味を持ちません。公開鍵の正当性を保証する仕組み(認証局(CA)や信頼できる公開鍵配布)が重要です。
補足コラム
簡単な技術の仕組み(イメージ):
- 送信側はまずメッセージ M のハッシュ値 (ハッシュ関数:長いデータを短い要約にする関数)を計算します。
- 次に送信者の秘密鍵でこのハッシュを「暗号化」して署名 を作ります。式で書くと 。
- 受信側は送られてきたメッセージ M と署名 S を受け取り、送信者の公開鍵で を復号して得られる値と、自分で計算した を比較します。一致すれば改ざんされていないと判断します。
関連する技術例:
- S/MIME(エス・マイム):電子メールに署名や暗号化を付ける標準的な仕組みの一つ。
- PGP(Pretty Good Privacy):個人間で使われる暗号・署名の仕組み。
簡単な擬似コード(概念説明用)
# 概念:送信側
M = "メール本文"
h = hash_function(M) # H(M)
signature = sign_with_private_key(h) # 署名 S
# 受信側
h_received = hash_function(M) # 受信メールで再計算
h_from_signature = verify_with_public_key(signature)
if h_received == h_from_signature:
print("改ざんなし・送信者確認OK")
else:
print("改ざんまたは署名不一致")
FAQ
Q1. ディジタル署名は受信者以外の第三者にも検証できますか?
A1. はい。公開鍵が分かれば誰でも検証できます。これが「改ざんされていないこと」を第三者が確認できる利点です。ただし、公開鍵自体の正当性は別途確かめる必要があります(認証局や事前共有など)。
A1. はい。公開鍵が分かれば誰でも検証できます。これが「改ざんされていないこと」を第三者が確認できる利点です。ただし、公開鍵自体の正当性は別途確かめる必要があります(認証局や事前共有など)。
Q2. 署名が有ればなりすましは絶対に防げますか?
A2. 基本的には有力な抑止力ですが、秘密鍵が漏洩すると署名を偽造できます。秘密鍵の管理が重要です。また、公開鍵の正当性が保証されないと偽の公開鍵で検証されてしまう恐れがあります。
A2. 基本的には有力な抑止力ですが、秘密鍵が漏洩すると署名を偽造できます。秘密鍵の管理が重要です。また、公開鍵の正当性が保証されないと偽の公開鍵で検証されてしまう恐れがあります。
Q3. メールを暗号化して内容を隠したい場合はどうすればよいですか?
A3. 受信者の公開鍵でメールを暗号化します(これによって第三者が内容を読めなくなります)。実務では「署名+暗号化」を両方行うことが多いです。
A3. 受信者の公開鍵でメールを暗号化します(これによって第三者が内容を読めなくなります)。実務では「署名+暗号化」を両方行うことが多いです。
関連キーワード: ディジタル署名、PKI、公開鍵、秘密鍵、ハッシュ関数、S/MIME、PGP、改ざん検知、認証局、電子メールセキュリティ

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

