電子署名・証明書 — 本物であることの証明

概要 — まず全体をつかむ

初級では「秘密鍵で署名、公開鍵で検証、証明書で保証」と捉えました。中級では、署名の流れと、証明書をたどる仕組みを正確に見ます。

詳細 — 1段階ずつ追う

署名と検証の流れ

電子署名は、公開鍵暗号を「逆向き」に使います。

  1. 送り主がデータのハッシュ(指紋)を取り、それを秘密鍵で署名する
  2. 受け取った人は、送り主の公開鍵で検証する
  3. 一致すれば「本人が作った・改ざんされていない」と分かる

ハッシュを挟むのは、任意長のデータを固定長にまとめて効率よく署名するため。これで真正性(本人)・完全性(改ざんなし)・否認防止(やっていないと言わせない)を確かめられます。

この部分をもっと深く(上級
  • RSA-PSS — RSAベース。確率的パディングで安全性を高めた署名
  • ECDSA — 楕円曲線ベース。短く高速だがnonce(署名ごとの乱数)の扱いが命
  • EdDSA(Ed25519) — 決定的nonceで事故を防ぐ、現代的で高速な方式

流れは「データ→ハッシュ→秘密鍵で署名/公開鍵で検証」。ハッシュを挟むのは、任意長を扱い、安全性を担保するためです。

やさしく言うと(初級

公開鍵暗号を「逆向き」に使います。

  1. 送り主が、データのハッシュ(指紋)を秘密鍵で署名する
  2. 受け取った人は、送り主の公開鍵で検証する
  3. 一致すれば「本人が作った・改ざんされていない」と分かる
アニメーション『電子署名と検証』を開く
送り主(署名する側)受取人(検証する側)
  • 送り主(署名する側)秘密鍵を持つ本人。データに署名して送る
  • 受取人(検証する側)公開鍵を持つ側。届いたものが本物かを確かめる
「▶ 再生」で通しで見るか、「次へ」で1手ずつ進めてください。
0 / 5

秘密鍵は本人だけが持つので、なりすまし・改ざんを見抜けます(真正性・完全性)。

証明書とPKI

署名の検証には、相手の公開鍵が本物である必要があります。それを保証するのが証明書PKI(公開鍵基盤)

  • 信頼チェーン — ルートCA → 中間CA → サーバ証明書、と署名でつながる
  • 認証局(CA) — 公開鍵の持ち主を保証する信頼された第三者
  • 失効の確認 — 期限前でも無効化できる(CRL/OCSPで確認)
  • HTTPSの鍵マーク — この検証が通った印
アニメーション『証明書の信頼チェーン』を開く
🔎 ブラウザ信頼するルートCAが起点署名で保証署名で保証ルートCA最上位・ブラウザに内蔵中間CAルートに署名されるサーバ証明書example.com🔒鎖が通ればHTTPSの鍵マーク鎖のどこかが欠けると検証失敗(中間証明書の欠落が定番トラブル)
この部分をもっと深く(上級

公開鍵が本物だと保証するのが PKI(公開鍵基盤)

  • 信頼チェーン — ルートCA → 中間CA → サーバ証明書、と署名でつながる
  • 失効CRL(リスト)/OCSP(オンライン確認)/OCSP stapling
  • Certificate Transparency(CT) — 発行された証明書を公開ログに記録し、不正発行を検知
  • ACME/自動化 — Let's Encrypt などで短命証明書を自動発行・更新
  • mTLS — サーバだけでなくクライアントも証明書で認証
やさしく言うと(初級

署名を検証するには、相手の公開鍵が本物である必要があります。でも「この公開鍵は本当にそのサイトのもの?」は、どう確かめる?

そこで証明書認証局(※1 CA) という信頼された第三者が、「この公開鍵は確かにこのサイトのもの」と署名して保証します。ブラウザはCAを信頼しているので、証明書をたどって本物か確かめられます。

登場人物メモ:

  • ※1 認証局(CA) — 公開鍵の持ち主を保証する信頼された第三者

⚠️ 気をつける

  • 秘密鍵の漏洩 — 署名の信頼が根本から崩れる
  • 証明書の期限切れ — 警告が出て検証に失敗
  • 中間証明書の欠落 — チェーンが切れて検証できない(よくあるトラブル)
  • オレオレ証明書 — CAの保証がなく、本物の証明にならない
この部分をもっと深く(上級
  • ECDSAのnonce事故 — 漏洩・再利用で秘密鍵露出(決定的nonce/EdDSAで回避)
  • CA侵害・誤発行 — 信頼の起点が破られると全体が揺らぐ(CTで検知)
  • 失効の伝播遅延 — 失効しても、確認が届くまで悪用の余地
  • 証明書ピンニングの運用難 — 固定しすぎると更新で自分が詰まる
  • 期限・チェーン不備 — 最も多いトラブルは、期限切れと中間証明書の欠落
やさしく言うと(初級
  • 証明書の期限切れ — 期限が切れると警告が出る
  • 信頼チェーン — CA→中間→サイト、と信頼をたどる。途中が欠けると検証失敗
  • オレオレ証明書 — 自分で作った(CAの保証がない)証明書は、本物の保証にならない

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. HTTPS証明書の「信頼チェーン」をたどる順として正しいのは?

2. 電子署名で、データそのものではなく「ハッシュ(指紋)」に署名する主な理由は?

3. 電子署名で確認できる性質に含まれないのはどれ?

4. 電子署名の署名と検証で使う鍵の組み合わせは?

5. 自己署名の「オレオレ証明書」が問題なのはなぜ?

6. HTTPSでよく起きる証明書トラブルとして正しいのは?

7. 公開鍵の持ち主を保証する、信頼された第三者を英字2文字の略語で答えてください。

8. 期限前でも証明書が無効化されたことを、オンラインで確認する仕組みを英字4文字で答えてください。