MENU

なぜその証明書は信頼できるのか?PKIの階層構造とオレオレ証明書の使い道

誰かが「私は本物です」と言い、それを別の誰かが「この人は本物です」と証明する。この連鎖を辿っていくと、最終的にどこに辿り着くのでしょうか。

インターネットの信頼のピラミッドには、絶対的な権威を持つ「ルート認証局」が存在します。今回は、このPKI(公開鍵基盤)の階層構造を分かりやすく図解するとともに、番外編として、自分自身でハンコを押す「オレオレ証明書」がなぜ危険なのか、あるいはどんな時に役立つのか、その最適解を考えてみましょう。

目次

用語

まずは出てくる用語の整理が必要です。証明書に関する用語は多くあるため、まずは用語を認識することから始めましょう。証明書とつく用語だけでも多くあり、それぞれが別物になります。ただ、いきなり用語の説明文を読んでも理解できないので、ここではどんな用語が出てくるか認識するだけで十分です。

  • PKI(公開鍵基盤) 公開鍵暗号技術と認証局を利用して、インターネット上でデータの真正性と機密性を担保するための基盤となる仕組みです。
  • ルート証明書 信頼の起点(トラスト・アンカー)としてOSやブラウザに最初から組み込まれている、認証局自身が発行する最上位の証明書です。
  • 中間証明書 ルート証明書の秘密鍵をオフラインで守るため、権限を委任されてサーバー証明書の発行業務を代行する「橋渡し役」の証明書です。
  • OCSP(Online Certificate Status Protocol) 証明書が現在も有効か失効しているかを、ブラウザから認証局へリアルタイムに問い合わせるためのプロトコルです。
  • CRL(Certificate Revocation List) 有効期限内に何らかの理由で無効化された証明書のシリアル番号を一覧化した、「失効リスト」データのことです。
  • CSR(Certificate Signing Request) サーバー運営者が認証局に対して、自身の公開鍵にデジタル署名をしてもらうために送る「証明書署名要求」ファイルです。
  • 自己署名証明書(オレオレ証明書) 第三者機関の認証を受けず、自分自身で署名して作成した証明書であり、主に閉鎖されたテスト環境などで利用されます。

PKIとは?

まずPKIとはPublic Key Infrastructureの略で日本語では公開鍵暗号基盤と言います。インターネット上で安全な通信や取引を行うため、公開鍵暗号技術と電子証明書を用いて、相手の認証やデータの暗号化を行うセキュリティインフラになります。認証局(CA)が発行するデジタル証明書を基に、なりすまし、盗聴、改ざんを防ぎ、信頼性の高いオンライン環境を構築する仕組みのことを指します。

ただ上記だけでは何のことかさっぱりなので、PKIの世界に登場する要素を、現実世界の印鑑制度に置き換えてみました。

PKIの用語実印の仕組みでの例え役割
秘密鍵実印(ハンコ本体)自分だけが持っている、本人しか押せないもの。
公開鍵印影(紙に押された跡)誰でも見ることができるが、偽造は困難。
SSL証明書印鑑証明書その印影が「間違いなく本人のもの」という公的な証明。
認証局(CA)役所(市区町村)本人を厳格に審査し、証明書を発行する公的機関。

秘密鍵や公開鍵についてわからない方は下記記事をご覧ください。

なぜこの仕組みが必要なのか?(ストーリー解説)

例えば、あなたが「もくもく太郎」という人物から、「100万円貸します」という契約書をネットでもらったとします。

1. 鍵(印影)だけでは不安

契約書には「もくもく太郎」の印影(公開鍵)がありますが、これだけでは「誰かが勝手に太郎さんの名前でハンコを彫って、勝手に押した偽物」かもしれませんと疑えてしまうのです。これをIT用語で「なりすまし」と言います。

2. 第三者の「お墨付き」が必要

そこで、もくもく太郎さんは、役所(認証局)が発行した「印鑑証明書(SSL証明書)」をセットで送ります。 この証明書には、役所の公印(デジタル署名)が押されており、「この印影(公開鍵)は、間違いなく本物の太郎さんのものです」と保証してくれます。

人によっては物理的な印鑑証明書は偽造が可能と思ったかもしれませんが、デジタルデータとしての証明書(SSL証明書)の改ざん・偽造は、現実的には不可能に近いほど困難でなります。

3. 「役所」を信じるから成立する

あなたがその契約を信じる理由は、太郎さんを直接知らなくても、「証明書を発行した役所(認証局)が信頼できる組織であること」を知っているからです。

PKIとは?:デジタル社会の「信頼のインフラ」

PKIについて実印の例えで解説したところで理解が深まったかと思います。今度はPKIで出てくる用語を利用して解説していきます。

1. PKIを構成する「3つの主要素」

PKIは、以下の3つの役割が連携することで成り立っています。

  • 認証局(CA / Certificate Authority) 証明書を発行する「信頼の源泉」です。申請者の身元を審査し、公開鍵に自身のデジタル署名を付与します。
  • 登録局(RA / Registration Authority) ユーザーからの申請を受け付け、本人確認を行う窓口です(CAが兼ねることもあります)。
  • リポジトリ(ディレクトリ) 発行された証明書や、失効した証明書のリスト(CRL)を公開・保管する場所です。

2. 証明書発行から利用までのフロー

実務でよく使われるCSRから始まる一連の流れを追うと、PKIの動きがよく見えます。

  1. 鍵ペアの作成と申請(CSR) サーバー管理者が「公開鍵」と「秘密鍵」のペアを作り、公開鍵を含めた申請書(CSR)を認証局へ送ります。
  2. 審査と発行 認証局(CA/RA)が申請者を審査し、問題なければCSRに認証局の署名を加えて「デジタル証明書」を発行します。
  3. 証明書の提示 ブラウザがサーバーにアクセスすると、サーバーは自身の「証明書」を提示します。
  4. 信頼の確認 ブラウザは、その証明書に「自分が信頼している認証局」の署名があるかを確認します。ここでルート証明書までの「信頼の連鎖」を辿ります。

3. 信頼を維持するための仕組み(CRLとOCSP)

一度発行された証明書も、秘密鍵の漏洩などのリスクがあれば無効にしなければなりません。PKIにはそのための「メンテナンス機能」も備わっています。

  • CRL(証明書失効リスト):無効になった証明書の「ブラックリスト」を定期的に配布する方式。
  • OCSP:証明書の有効性を、オンラインでリアルタイムに問い合わせるプロトコル。

信頼の家系図:ルート証明書と中間証明書の仕組み

ここまでPKIについて説明してきましましたが、PKI(公開鍵暗号基盤)という大きな枠組みの中で、「信頼の連鎖(Chain of Trust)」を作るためにルート証明書と中間証明書が階層構造で存在しています。

SSL証明書は、1枚のデータだけで完結しているわけではありません。実は「親・子・孫」のような階層構造になっており、このつながりを「証明書チェーン(信頼の連鎖)」と呼びます。

なぜ、わざわざ複数の証明書を介するのか?その役割と必要性を整理してみましょう。

1. ルート証明書(信頼の源)

ピラミッドの頂点に位置する、最も権威のある証明書です。

  • 役割: インターネットにおける「信頼の最終拠点」です。
  • 特徴: ルート証明書は、WindowsやMac、iOS、ChromeなどのOSやブラウザに、あらかじめ「信頼できるもの」として組み込まれています。
  • 重要ポイント: ルート認証局の秘密鍵が盗まれると、インターネット全体の信頼が崩壊します。そのため、ルート証明書は物理的に隔離された場所で厳重に保管され、めったに使用されません。

2. 中間証明書(信頼の橋渡し)

ルート証明書と、私たちがWebサイトで使う証明書の間に位置する「代理人」です。

  • 役割: ルート証明書に代わって、個別のサーバー証明書を発行(署名)します。
  • なぜ必要なのか?: 万が一、発行業務でミスや鍵の漏洩が起きても、ルート証明書(親)さえ無事なら、中間証明書(子)を切り替えるだけで被害を食い止められるからです。

3. サーバー証明書(エンドエンティティ)

私たちが実際にWebサーバーに設定し、ドメインの正当性を証明する「末端」の証明書です。中間証明書によって「このサイトは本物です」というお墨付きをもらっています。

証明書の階層構造を「パスポート」で例えると?

私たちが海外旅行に行くとき、入国審査官はなぜあなたのパスポートを見て「本人だ」と信じてくれるのでしょうか? それは、その冊子が「信頼できる大元(国)」から発行されているからです。

PKIの用語パスポートの仕組みでの例え役割
ルート証明書国家(日本国など)全ての信頼の源。その国が存在すること自体が前提。
中間証明書外務省やパスポートセンター国から権限を委任され、実際に発行業務を行う窓口。
サーバー証明書あなたのパスポートあなた個人(サイト)の身元を証明する最終的な書類。

信頼が成立するストーリー

あなたが海外(ブラウザ)の入国審査(サイト訪問)を受ける場面を想像してください。

1. 入国審査官(ブラウザ)は「国」を知っている

世界中の入国審査官は、「日本という国が発行する印鑑(ルート証明書)」のサンプルをあらかじめ持っています。これがブラウザに最初から入っているルート証明書です。

2. あなたは「パスポート(サーバー証明書)」を出す

審査官にパスポートを見せます。しかし、審査官は「天皇陛下や首相(ルート認証局)」と直接面識があるわけではありません。

3. 「窓口(中間証明書)」のハンコが鍵

パスポートには、「外務省(中間認証局)」のハンコが押されています。

  1. 審査官はまず、**「このパスポートは外務省が発行したものか?」**を確認します。
  2. 次に、**「その外務省に権限を与えたのは、私が知っている日本国(ルート認証局)か?」**を確認します。

4. 信頼の連鎖が完成

「国 → 外務省 → あなた」とハンコの跡を遡って確認できたので、審査官は「よし、このパスポートは本物だ!」と判断して入国を許可(鍵マークを表示)します。


なぜ「中間(窓口)」が必要なのか?

もし、中間証明書(窓口)がなくて、ルート証明書(国)が直接パスポートを発行していたらどうなるでしょうか。

  • リスクの分散: もし窓口のハンコが盗まれても、「その窓口を無効」にして新しい窓口を作れば済みます。しかし、国の印鑑(ルート証明書)そのものが盗まれたら、その国の信頼は完全に崩壊し、全ての国民のパスポートがゴミ屑になってしまいます。

そのため、大元の印鑑(ルート証明書)は金庫の奥深くに厳重に保管し、普段は「中間(窓口)」に仕事をさせているのです。


自己署名証明書(オレオレ証明書)が必要な理由

「ルート証明書は自己署名証明書(自己証明書)の一種です。

技術的な仕組みとしては同じですが、「世の中からの信頼度」「使われる目的」が全く異なります。ここを整理すると、PKIの構造がよりスッキリ理解できます。

1. 技術的な共通点

ルート証明書も、いわゆる「オレオレ証明書」も、どちらも「自分で自分を証明している(自己署名)」という点では同じです。

  • 発行者(Issuer): 認証局A
  • 主体者(Subject): 認証局A
  • 署名: 認証局Aの秘密鍵による署名

通常、証明書は「親」が「子」を保証しますが、ピラミッドの頂点にいるルート証明書には「さらに上の親」がいません。そのため、自分自身で署名するしかないのです。

2. 決定的な違い:「信頼の根拠」

では、なぜ片方は「信頼の源」になり、もう片方は「危険なオレオレ証明書」と呼ばれるのでしょうか。その違いは**「OSやブラウザに最初から入っているか、いないか」**にあります。

ルート証明書(信頼の源)

  • 信頼の根拠: 厳格な監査基準をクリアし、MicrosoftやApple、Googleなどのベンダーに「信頼できる機関」として認められ、OSやブラウザに最初からインストールされている。
  • 役割: 他の全ての証明書を保証する「信頼の起点」。

自己署名証明書(オレオレ証明書)

  • 信頼の根拠: 誰も保証していない。OSやブラウザもその存在を知らない。
  • 役割: 開発環境や、閉じられたネットワーク内でのテスト用。知らない人から送られてくると、ブラウザは「知らない人が自分を本物だと言い張っている」と判断し、警告を出します。
目次