問題 No.1911
A社からB社へ電子契約書を送信する際、第三者による偽造や契約内容の改ざんを防ぐため、A社が自身の秘密鍵を用いてデジタル署名を付与した。B社がこのデジタル署名の正当性を検証する手順として適切なものはどれか。
【正解の解説】
B社は、A社の公開鍵を用いて署名を検証し、データから算出したハッシュ値と比較する。
これはカギと錠前の関係をデジタル化したものであり、A社が「秘密のハンコ(秘密鍵)」で押した書類に対し、誰もが持っている「確認用のルーペ(公開鍵)」を使って本当にA社が押した本物かを確かめる作業に例えられます。この仕組みにより、送信途中の偽造や中身の書き換えがされていないことが完璧に証明できるため、電子契約の安全性が保たれるのです。
スポンサーリンク
【その他の選択肢の解説】
B社は、自身の秘密鍵を用いて署名を検証し、データから算出したハッシュ値と比較する。
秘密鍵は自分だけが絶対に他人に知られないよう隠し持っているべきものです。それを他人の署名の検証に使ってしまうと、誰でも鍵を作れてしまいセキュリティが崩壊します。検証には必ず相手の「公開鍵」を使うという大原則を勘違いさせるための典型的なひっかけパターンです。
B社は、認証局の公開鍵を用いて署名を検証し、データから算出したハッシュ値と比較する。
認証局の公開鍵は、あくまで「その公開鍵が本当にA社のものであるか」を証明する電子証明書の真偽を確認するために使います。データ自体のデジタル署名を検証するためには、認証局ではなく、署名した本人であるA社の公開鍵を使用するのが正しい手順となります。
B社は、A社の秘密鍵を用いて署名を検証し、データから算出したハッシュ値と比較する。
秘密鍵は署名(ハンコを押す)専用のプライベートなものであり、受信者側が持っているはずがありません。また、もし秘密鍵を使って検証しようとすると、誰でも簡単に偽の署名が作れてしまうため、秘密の保持と検証という非対称鍵暗号の根本的な仕組みを理解しているかが問われる選択肢です。