メインコンテンツまでスキップ

6.5. 証明書失効 (Certificate Revocation)

以下の考慮事項と推奨事項は、一般的な公開鍵証明書 [RFC5280] の失効ステータスをチェックする問題に対する完全かつ効率的な解決策が存在しないにもかかわらず、証明書失効に関する現在の技術水準を表しています:

  • 証明書失効リスト (CRL) は失効情報を配布するための最も広くサポートされているメカニズムですが、その有用性を制限する既知のスケーリング上の課題があります (パーティション化されたCRLやデルタCRLなどの回避策にもかかわらず)。

  • Webブラウザーのコンフィギュレーションデータベースに失効リストを埋め込む独自のメカニズムは、最も頻繁に使用されるWebサーバーの少数を超えてスケールできません。

  • オンライン証明書ステータスプロトコル (OCSP) [RFC6960] は、スケーラビリティとプライバシーの両方の問題を提示します。さらに、クライアントは通常「ソフトフェイル」します。つまり、OCSPサーバーが応答しない場合、TLS接続を中止しません。(ただし、これはOCSPレスポンダがオフラインにされた場合のサービス拒否攻撃を回避するための回避策である可能性があります。)

  • TLS証明書ステータス要求拡張 ([RFC6066] のセクション8)、一般に「OCSPステープリング」と呼ばれるものは、OCSPの運用上の問題を解決します。ただし、MITM攻撃者の存在下ではまだ効果がありません。攻撃者は単にクライアントのステープルされたOCSP応答の要求を無視できるためです。

  • [RFC6066] で定義されているOCSPステープリングは、証明書チェーンで使用される中間証明書には拡張されません。Multiple Certificate Status拡張 [RFC6961] はこの欠点に対処していますが、展開があまり進んでいない最近の追加です。

  • CRLとOCSPの両方とも、インターネットへの比較的信頼性の高い接続性に依存していますが、これは特定の種類のノード (初めて起動するために安全な接続を確立する必要がある新しくプロビジョニングされたデバイスなど) には利用できない可能性があります。

一般的な公開鍵証明書に関して、サーバーは、現在の技術水準を考慮したベストプラクティスとして、また可能な将来の解決策の基礎として、以下をサポートすべきです (SHOULD):

  1. OCSP [RFC6960]

  2. [RFC6066] で定義されているstatus_request拡張と [RFC6961] で定義されているstatus_request_v2拡張の両方 (これにより、最も広範囲のクライアントとの相互運用性が可能になる可能性があります。)

  3. [RFC6961] で定義されているOCSPステープリング拡張

このセクションの考慮事項は、DANE-TLSAリソースレコード [RFC6698] が、サーバーがTLS接続に使用するのに有効で適切と考える証明書をクライアントに通知するために使用されるシナリオには適用されません。