公開鍵基盤
公開鍵基盤(PKI)とは、公開鍵を検証済みの身元に紐付ける認証局、デジタル証明書、およびポリシーのシステムであり、これまで会ったことのない当事者同士が互いの鍵を信頼できるようにするものです。
Definition
公開鍵基盤とは、公開鍵を身元に紐付けるデジタル証明書を作成、配布、保存、検証、および失効させるために必要な役割、ポリシー、ハードウェア、およびソフトウェアの集合体です。
Scope
このトピックでは、PKIの構成要素と運用について扱います。具体的には、X.509証明書、認証局と信頼の連鎖、証明書の発行と検証、失効(CRL、OCSP)、および透明性メカニズムです。ウェブPKIの根底にある信頼モデルとその代替(ウェブ・オブ・トラスト)についても触れます。証明書が使用するデジタル署名アルゴリズムや、証明書を利用するセキュアチャネルプロトコル(TLS)は、別途扱われるため、ここでは除外します。
Core questions
- 依拠当事者は、公開鍵が特定の身元に属することをどのようにして確信できるのでしょうか?
- 証明書チェーンとルート認証局は、どのようにして階層的な信頼を確立するのでしょうか?
- 証明書はどのように検証され、鍵が侵害された場合の失効はどのように処理されるのでしょうか?
- どのような障害モード(CAの侵害、誤発行)が信頼モデルを脅かすのでしょうか?
- 証明書の透明性のようなメカニズムは、説明責任をどのように向上させるのでしょうか?
Key concepts
- X.509証明書
- 認証局(CA)
- 信頼の連鎖とルートストア
- 証明書署名要求
- 証明書の失効(CRL、OCSP)
- 証明書の透明性
- ウェブ・オブ・トラスト
- CAの侵害と誤発行
- 証明書ピンニング
Key theories
- 階層的な信頼の連鎖
- 信頼は、クライアントにプリインストールされた少数の自己署名ルート認証局に根ざしており、これらが中間CAに署名し、中間CAがエンドエンティティ証明書に署名するため、クライアントは信頼できるルートまでのチェーンを検証することで任意の証明書を検証できます。
- 失効と透明性
- 鍵が侵害されたり、証明書が誤発行されたりする可能性があるため、PKIは失効メカニズム(証明書失効リストとOCSP)を提供し、誤発行された証明書を検出して信頼しないように、公開監査ログ(証明書の透明性)がますます利用されています。
Mechanisms
申請者は鍵ペアを生成し、証明書署名要求を提出します。認証局(CA)は申請者の身元またはドメイン管理を検証し、公開鍵をその身元に紐付けるX.509証明書を、CAの秘密鍵で署名して発行します。依拠当事者は、信頼できるルートまでの署名チェーン、有効期間、名前、および失効ステータス(CRLまたはOCSP経由)を確認することで証明書を検証します。証明書の透明性(Certificate Transparency)は、発行されたすべての証明書を公開ログに記録し、ドメイン所有者が不正な発行を検出できるようにします。
Clinical relevance
ウェブPKIは、ブラウザの南京錠マークに意味を与えるものです。すべてのHTTPS接続は、サーバーを認証するためにCA発行の証明書に依存しています。自動化された無料発行(Let's Encrypt)により、HTTPSのほぼ普遍的な採用が促進されました。PKIは、コード署名、セキュアメール、文書署名、および企業デバイスの身元認証の基盤でもあります。CAの障害(2011年のDigiNotar侵害など)は世界的な影響を及ぼすため、透明性と失効が重要となります。
Evidence & guidelines
X.509証明書と失効はRFC 5280で、証明書の透明性はRFC 6962で、OCSPはRFC 6960で規定されています。CA/Browser Forum Baseline Requirementsは、公的に信頼されるCAを管理しています。ACMEプロトコル(RFC 8555)は発行を自動化します。ベストプラクティスとしては、短期間の証明書、自動更新、および証明書の透明性監視への依存が推奨されます。
History
証明書の概念は、Loren Kohnfelderの1978年のMIT論文で提案されました。X.509は1980年代後半のX.500ディレクトリの取り組みから生まれ、1990年代にSSL/TLSが普及するにつれてウェブPKIの基盤となりました。CAの度重なる侵害と誤発行(2011年のComodoとDigiNotar)は、無条件のCA信頼の脆弱性を露呈させ、証明書の透明性とより厳格なCAガバナンスを促すとともに、Let's Encrypt(2015年)は証明書発行を民主化しました。
Key figures
- Loren Kohnfelder
- Whitfield Diffie
- Ross Anderson
- Ben Laurie
Related topics
Seminal works
- stallings2017
- rfc5280
- anderson2020
Frequently asked questions
- 認証局は実際に何を検証するのでしょうか?
- 一般的なドメイン検証済み証明書の場合、CAは申請者がドメインを管理していることのみを確認します(例えば、チャレンジに応答することによって)。組織の正当性を保証するものではありません。より高い保証の証明書には、より多くの身元確認が含まれますが、ほとんどのウェブ証明書はドメイン管理のみを証明します。
- 認証局が侵害された場合、どうなるのでしょうか?
- 攻撃者は任意のサイトに対して不正な証明書を発行し、なりすましを可能にする可能性があります。防御策としては、CAの失効と信頼解除、不正な証明書を表面化させる証明書の透明性ログ、および悪用期間を制限する短い証明書ライフタイムなどがあります。