OCSP

OCSP

 OCSP (Online Certificate Status Protocol) は、SSL / TLS セキュリティプロトコルで使用される公開鍵証明書の状態を確認するためのプロトコルです。SSL / TLS セッションにおいて、クライアントが接続先サーバーの証明書を受信した後、その証明書の状態を確認するために使用されます。

 OCSP では、クライアントは証明書の発行元 (CA) の OCSP サーバーに対して証明書の状態を問い合わせます。OCSP サーバーは、その証明書の状態が有効かどうかを返信します。証明書の状態が失効している場合、クライアントは接続を拒否します。

OCSP には、次のような利点があります。

  1. 証明書の状態をリアルタイムで確認できるため、失効した証明書を使用した攻撃を防止できます。
  2. OCSP レスポンダが SSL / TLS サーバーと分離されているため、サーバーへの負荷が軽減されます。
  3. OCSP レスポンダが証明書の状態をキャッシュすることができるため、高速化が期待できます。

ただし、OCSP にもいくつかの問題があります。

  1. OCSP サーバーにアクセスできない場合、クライアントは接続を拒否するため、セッションが継続できない可能性があります。
  2. OCSP サーバーに問い合わせた情報が盗聴されると、証明書の状態がわかってしまうため、セキュリティ上の問題が生じます。
  3. OCSP レスポンダがキャッシュした情報が古い場合、有効期限が切れた証明書が検証されない可能性があります。
  4. 大量の OCSP クエリがサーバーに送信された場合、サーバーに負荷がかかり、DoS (Denial of Service) 攻撃につながる可能性があります。

 OCSPのプロトコルには、OCSP RequestとOCSP Responseがあります。クライアントがサーバーに対して証明書の有効性を確認するために、OCSP Requestを送信します。サーバーはOCSP Responseを返し、証明書の有効性ステータスを返します。

 OCSPは、証明書失効リスト(CRL)に比べて、よりリアルタイムな失効情報を提供することができます。ただし、OCSPは証明書の失効ステータスを確認するために、常にインターネット接続が必要となります。また、OCSPの応答が遅い場合、証明書の有効性を確認するためのプロセスが遅くなることがあります。

 OCSPのセキュリティには、OCSPレスポンダーのプライバシーと信頼性の問題があります。OCSPレスポンダーは、クライアントに対して証明書の失効ステータスを提供するために必要な情報を持っています。したがって、OCSPレスポンダーが不正な場合、クライアントは正しい失効ステータスを受け取らない可能性があります。

 OCSPにおける信頼性の問題に対処するために、OCSP Staplingが導入されました。OCSP Staplingは、Webサーバーが定期的にOCSPレスポンスを取得し、証明書のステータスをOCSPレスポンダーから取得し、サーバー自身がOCSPレスポンダーとしてクライアントに提供することで、信頼性を向上させます。