情報処理安全確保支援士試験やセキュリティの勉強をしていると、必ず登場するPKI(公開鍵基盤)やデジタル証明書。
「誰の公開鍵で暗号化して、誰の秘密鍵で署名して、認証局が誰の鍵で……」と参考書を読んでいるうちに、ゲシュタルト崩壊を起こした経験はありませんか?
そこで今回は、昭和の名曲・デュエットの金字塔『カナダからの手紙』の世界観に乗せて、電子メールのデジタル署名の全貌を徹底的に整理します。
登場人物と鍵の対応表
| 役名 | 役割 | 持ち物・鍵 | 備考 |
|---|---|---|---|
| 畑中葉子 | 送信者(カナダ滞在) | ・葉子の秘密鍵 ・葉子の公開鍵 |
カナダの空の下から愛の手紙を送りたい女性。 |
| 平尾昌晃 | 受信者(東京在住) | ・大使館の公開鍵(既所持) | 東京で彼女からの手紙を心待ちにしている男性。 |
| カナダ大使館 | 認証局(CA) | ・大使館の秘密鍵 ・大使館の公開鍵 |
二人の遠距離通信の信頼を担保する公的機関。 |
鉄の掟(これだけは絶対に忘れてはいけない原則)
-
秘密鍵は絶対に門外不出
葉子さんの秘密鍵は、本人の心(PC)の中にだけ秘めておくもの。カナダ大使館にすら見せてはいけません。 -
証明書とは「公開鍵の身元保証書」
「この公開鍵は間違いなく本人のものです」と第三者が保証した書類です。 -
署名は「秘密鍵」で押し、検証はペアの「公開鍵」で行う
誰でも手に入る公開鍵で署名できたら偽造し放題。署名できるのは世界で一人、秘密鍵を持つ本人だけです。
全体フロー(全3幕)
第1幕:事前準備 〜葉子、カナダ大使館へ行く〜
葉子さんはカナダで手紙を書く前に、平尾さんに「これが私の本物の筆跡(公開鍵)よ」と信じてもらうための公的なお墨付き(デジタル証明書)をもらいに行きます。
[葉子] ----------------( 公開鍵のみ渡す )---------------> [カナダ大使館]
│
パスポート等で本人確認
│
【大使館の秘密鍵】で公印を押す!
│
[葉子] <-----------( 畑中葉子のデジタル証明書 )-------------------┘
-
鍵ペアの作成
葉子さんは自分のPCで「葉子の秘密鍵」と「葉子の公開鍵」を作ります。
-
ポイント:
葉子の秘密鍵は絶対に外に出しません。
-
証明書の発行申請(CSR)
葉子さんは、葉子の公開鍵だけを持ってカナダ大使館(CA)の窓口へ向かいます。 -
大使館による審査と署名
大使館は葉子さんのパスポートを厳しく確認し、「間違いなく畑中葉子本人である」と確認した上で、【大使館の秘密鍵】 を使って葉子さんの公開鍵に公印(デジタル署名)を押します。 -
証明書の交付
こうして完成した「畑中葉子のデジタル証明書(=大使館の署名入り公開鍵)」が葉子さんに渡されます。
第2幕:手紙の送信 〜カナダからのエアメール〜
いよいよ、東京の平尾さんへラブレターを送る時が来ました。
[手紙本文: ラブソングの歌詞]
│
├─ (ハッシュ関数) ──> [メッセージダイジェスト]
│ │
│ 【葉子の秘密鍵】で署名!
│ │
▼ ▼
[手紙本文] + [デジタル署名] + [葉子のデジタル証明書]
└────────────────────────────┬───────────────────────────────┘
│ (まとめてメール送信)
▼
[平尾昌晃]
-
ハッシュ値の計算
葉子さんは手紙本文(「カナダの空は今日も青いです…」)から、要約データ(ハッシュ値)を計算します。 -
葉子の署名
そのハッシュ値に対して、肌身離さず持っていた 【葉子の秘密鍵】 でサイン(暗号化)します。これがデジタル署名です。 -
3点セットを東京へ送信
葉子さんは以下の3つをまとめて平尾さんへ送ります。
- ① 手紙本文(平文)
- ② デジタル署名(葉子の秘密鍵で暗号化したハッシュ値)
- ③ 畑中葉子のデジタル証明書(第1幕で大使館からもらったもの)
第3幕:手紙の検証 〜平尾昌晃、愛を確かめる二段階チェック〜
東京で手紙を受け取った平尾さん。しかし、恋に盲目になってはいけません。セキュリティエンジニアたるもの、厳格な二段階検証を行います。
【ステップ1:証明書の検証(大使館のお墨付きか?)】
[葉子のデジタル証明書] ── 【大使館の公開鍵】で検証 ──> OK!本物の「葉子の公開鍵」を取り出す
【ステップ2:手紙の検証(改ざんはないか? 本人の署名か?)】
[デジタル署名] ────── 【葉子の公開鍵】で復号 ─────────> ハッシュ値A
│ (一致判定)
[手紙本文] ────── (自らハッシュ計算) ────> ハッシュ値B ─┘
│
一致!=「間違いなく君の筆跡だ!」
ステップ1:証明書を検証する(「この同封された公開鍵は本当に葉子のものか?」)
平尾さんの手元(PC/ブラウザ)には、信頼できる公的機関としてあらかじめ 【大使館の公開鍵】(ルート証明書)が保管されています。
- 大使館の公開鍵を使って、証明書についた大使館の署名をチェックします。
- 署名が正しければ、「よし! カナダ大使館が保証している通り、同封されているのは本物の葉子の公開鍵だ!」と確定します。
ステップ2:手紙本文の署名を検証する(「途中で改ざんされていないか? 葉子が書いたのか?」)
- ステップ1で手に入れた 【葉子の公開鍵】 を使って、手紙に添えられたデジタル署名を復号し、元のハッシュ値Aを取り出します。
- 届いた手紙本文から、平尾さん自身の手で改めてハッシュ値Bを計算します。
- ハッシュ値Aとハッシュ値Bを比較します。
- 値が完全に一致!
- 「一文字の改ざんもない(完全性)」かつ「間違いなく葉子の秘密鍵で書かれた手紙だ(真正性・否認防止)」と確信します。
平尾さんは安心して、高らかにデュエットのサビを歌い出すことができるのです。
試験対策チェックシート(よくある誤文パターン)
過去問のひっかけ選択肢は、登場人物と鍵を取り違えるパターンがほとんどです。
-
❌ 「認証局は、申請者の秘密鍵に署名した証明書を発行する」
-
$\rightarrow$ 大間違い。 葉子さんは秘密鍵を大使館に見せたりしません。署名されるのは「公開鍵」です。
-
❌ 「ルート認証局は、下位認証局の公開鍵にルート認証局の公開鍵で署名する」
-
$\rightarrow$ 大間違い。 署名に使うのは絶対に「秘密鍵」です。公開鍵でハンコは押せません。
-
❌ 「受信者は、送信者の秘密鍵で署名を検証する」
-
$\rightarrow$ 大間違い。 平尾さんが葉子さんの秘密鍵を持っていたら事件です。検証に使うのは「葉子の公開鍵」です。
まとめ
- 署名するとき:自分の 秘密鍵 を使う(自分しか押せないハンコ)
- 検証するとき:相手の 公開鍵 を使う(誰でも確認できる印鑑照合)
- 公開鍵が本物か疑わしいとき:認証局(カナダ大使館) に証明書を発行してもらう
『カナダからの手紙』が届いたら、まずは大使館の公開鍵で証明書を確かめ、次に彼女の公開鍵でサインを確かめる。この二段階の愛のチェックを思い出してください!
