ITパスポート 2010年 春期 問65
問題文
電子商取引におけるディジタル署名で実現できることはどれか。
選択肢
ア:意図しない第三者が機密ファイルにアクセスすることの防止
イ:ウイルス感染していないファイルであることの確認
ウ:盗聴による取引内容の漏えいの防止
エ:取引相手の証明と、取引内容が改ざんされていないことの確認(正解)
🔒 解説は解答すると表示されます
電子商取引におけるディジタル署名で実現できることはどれか【ITパスポート 解説】
正解の理由
ディジタル署名(digital signature:電子データに付けて「誰が作ったか」と「改ざんされていないか」を確認する仕組み)は、送信者の証明(認証)とデータの改ざん検知(完全性)を実現します。したがって、選択肢のうち エ「取引相手の証明と、取引内容が改ざんされていないことの確認」が該当します。
ポイント:
- ディジタル署名は「誰が送ったか」を確かめられます(送信者の証明)。
- 同時に「届いた内容が送られた内容のままか」を確認できます(改ざんされていないことの確認)。
- これらは公開鍵暗号方式(public-key cryptography:秘密鍵と公開鍵の2つの鍵を使う暗号方式)とハッシュ関数(hash function:データの要約値を作る関数)を組み合わせて実現します。
解法ステップ
- 問題文で求める性質を確認:取引相手の証明(認証)と改ざん検知(完全性)か、機密保持(秘匿)か、ウイルスチェックか、アクセス制御か。
- ディジタル署名の主要な機能を思い出す:認証・完全性(+非否認性)であり、機密保持(盗聴防止)は直接の機能ではない。
- 各選択肢を当てはめる:
- 認証+完全性に合致するものが正解 → エ を選ぶ。
また、ディジタル署名の動作概要は次のようになります(暗号の流れ):
- 送信者はメッセージ m のハッシュ を作る。
- 送信者は自分の秘密鍵(private key)で を暗号化して署名 を作る:。
- 受信者は送られてきたメッセージと署名を受け取り、送信者の公開鍵(public key)で を復号してハッシュ値を得る。得られたハッシュと受け取ったメッセージのハッシュが一致すれば改ざんされていないこと、かつその公開鍵に対応する秘密鍵を持つ者が署名した(つまり送信者である可能性が高い)と判断する。
選択肢別の誤答解説
-
ア: 意図しない第三者が機密ファイルにアクセスすることの防止
→ これはアクセス制御や認証(ログイン制・アクセス権設定)や暗号化(encryption:第三者に内容を読まれないようにする技術)が担当します。ディジタル署名自体は「誰が作ったか」と「内容の改ざん有無」を示すだけで、アクセスを直接止める機能はありません。よって誤りです。 -
イ: ウイルス感染していないファイルであることの確認
→ ディジタル署名はファイルの作成者と改ざんの有無を示しますが、「ウイルスが含まれていない」ことまでは保証しません。署名された時点でウイルスがなかった可能性はありますが、その後に感染したり、署名者自身がマルウェアを含めて署名している可能性もあります。よって誤りです。 -
ウ: 盗聴による取引内容の漏えいの防止
→ 盗聴(第三者が通信を覗くこと)を防ぐには暗号化(通信の内容を読めなくする)や安全な通信路(TLSなど)が必要です。ディジタル署名は内容が改ざんされていないかを検出しますが、盗聴を防ぐものではありません。よって誤りです。 -
エ: 取引相手の証明と、取引内容が改ざんされていないことの確認
→ 上述の通り、ディジタル署名の主要な機能と一致します。正解です。
よくある誤解
-
「署名=暗号化」ではない
→ 署名はデータの改ざん検知と送信者確認が目的です。暗号化は内容を隠す(秘匿)ための技術です。別の目的を持つので混同しないようにしましょう。 -
「署名があればウイルスは絶対に入っていない」は誤り
→ 署名はファイル作成時点での完全性を示すだけです。署名済みでもマルウェアが含まれている場合や、その後に感染する場合があります。 -
公開鍵の真正性(その公開鍵が本当に相手のものか)を確認する必要がある
→ 署名の検証には相手の公開鍵が必要です。公開鍵が偽物だったら攻撃されます。これを防ぐのが電子証明書(digital certificate:公開鍵と所有者情報を結びつける証明書)やPKI(公開鍵基盤)です。
補足コラム
- 非否認性(sender non-repudiation):ディジタル署名があれば、署名者が後から「私は送っていない」と否認するのを防げる場合があります(ただし、キー管理が適切であれば、という前提があります)。
- 実務での利用例:電子契約、ソフトウェアのコード署名、メールの署名(S/MIME)など。銀行やECでの重要な取引ログにも使われます。
- 実際の仕組みでは、単に署名を使うだけでなく、署名に使う鍵の信頼性を保証するために認証局(CA:Certificate Authority)やタイムスタンプが使われます。これらは「その公開鍵が本当にその会社・個人のものか」を第三者が保証する仕組みです。
簡単なイメージコード(概念示例、ライブラリや鍵の準備は省略):
# 概念例:ハッシュを作って秘密鍵で署名、公開鍵で検証
import hashlib
# message = b'取引データ'
# H = hashlib.sha256(message).digest()
# signature = sign_with_private_key(H) # 実際はRSA/ECDSA等で署名
# # 相手側で検証
# H2 = hashlib.sha256(received_message).digest()
# valid = verify_with_public_key(H2, signature)
この流れを理解すれば、問題で「証明」「改ざんされていない」と出たらディジタル署名を思い出せます。
FAQ
Q1. ディジタル署名と電子証明書は同じですか?
A1. 違います。ディジタル署名は「データに付けるもの」。電子証明書は「公開鍵が誰のものかを証明する文書(第三者が発行)」です。署名の検証で公開鍵の正当性を確かめるのに証明書を使います。
A1. 違います。ディジタル署名は「データに付けるもの」。電子証明書は「公開鍵が誰のものかを証明する文書(第三者が発行)」です。署名の検証で公開鍵の正当性を確かめるのに証明書を使います。
Q2. 署名があれば改ざんは完全に防げますか?
A2. 署名は改ざんを「検出」できます。改ざん自体を物理的に防ぐわけではありません。改ざんがあれば検証で失敗します。
A2. 署名は改ざんを「検出」できます。改ざん自体を物理的に防ぐわけではありません。改ざんがあれば検証で失敗します。
Q3. だれでも署名を検証できますか?
A3. はい、公開鍵が入手できれば検証できます。ただし、その公開鍵自体が本物かどうか(真正性)を確かめる必要があります。ここで電子証明書やCAが役に立ちます。
A3. はい、公開鍵が入手できれば検証できます。ただし、その公開鍵自体が本物かどうか(真正性)を確かめる必要があります。ここで電子証明書やCAが役に立ちます。
関連キーワード: ディジタル署名、公開鍵暗号、ハッシュ関数、認証、データ改ざん検出、非否認性、電子証明書、暗号化、署名検証

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

