Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

OCSP(オーシーエスピー)とは | 意味や読み方など丁寧でわかりやすい用語解説

OCSP(オーシーエスピー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

オンライン証明書ステータスプロトコル (オンラインショウメイショステータスプロトコル)

英語表記

OCSP (オーシーエスピー)

用語解説

OCSPはOnline Certificate Status Protocolの略称であり、デジタル証明書の失効状態をリアルタイムで確認するためのプロトコルである。Webサイトへの安全な接続を確立するHTTPS通信などで用いられるX.509デジタル証明書は、発行後に悪用されるなどの理由で無効化される場合がある。このような証明書は失効とよばれ、その状態を適切に確認することが通信の安全性を保つ上で不可欠となる。OCSPは、従来の失効リストであるCRL(Certificate Revocation List)が抱えていた情報鮮度の問題やファイルサイズの増大といった課題を解決するために考案された。クライアントが証明書の失効状態を知りたい際に、専用のOCSPレスポンダーに問い合わせることで、その証明書が「有効(Good)」「失効済み(Revoked)」「不明(Unknown)」のいずれであるかを即座に確認できる仕組みを提供する。これにより、不正に利用されている可能性のある証明書を使用することを未然に防ぎ、通信の信頼性を高める上で重要な役割を担っている。

デジタル証明書は、インターネット上での通信相手の身元を確認し、データの盗聴や改ざんを防ぐための暗号化通信を確立するために用いられる。この証明書は、信頼できる第三者機関である認証局(CA: Certificate Authority)によって発行され、対象となるサーバーや個人の公開鍵が本当にそのサーバーや個人に属していることを証明する。しかし、証明書の秘密鍵が漏洩したり、証明書の発行元であるCAが信頼できなくなったりするなど、何らかの理由でその証明書が安全ではない状態になる可能性がある。このような状況では、発行済みの証明書を無効化する「失効」という措置が必要となる。

失効した証明書をクライアントが利用し続けないようにするため、これまでは主にCRLが使われてきた。CRLは、CAが発行した失効済み証明書のリストであり、定期的に更新され公開される。しかし、CRLはファイルサイズが大きくなりがちであり、特に多くの証明書が失効する大規模な環境では、そのダウンロードと処理に時間がかかるという問題があった。また、CRLは定期的な更新であるため、最新の失効情報が反映されるまでに時間差が生じ、その間に失効したばかりの証明書が誤って有効と判断されてしまう「情報鮮度の遅延」という課題も抱えていた。

これらの課題を解決するために開発されたのがOCSPである。OCSPの動作は、クライアントが証明書の失効状態を知りたいときに、OCSPレスポンダーとよばれる専用のサーバーに直接問い合わせを行うことで実現される。クライアントは、検証したい証明書のシリアル番号や発行者の情報などを含むリクエストをOCSPレスポンダーへ送信する。OCSPレスポンダーは、その情報に基づいて自身のデータベースを検索し、対象の証明書が現在どのような状態にあるかを確認する。そして、その状態が「Good」(有効)、「Revoked」(失効済み)、または「Unknown」(情報なし)のいずれであるかを記したレスポンスをクライアントに返す。このレスポンスは、OCSPレスポンダーの秘密鍵でデジタル署名されており、その信頼性が保証される。これにより、クライアントはレスポンダーから返された情報が改ざんされていないこと、そしてそれが信頼できる情報であることを確認できる。

OCSPの最大の利点は、リアルタイム性にある。CRLのようにリスト全体をダウンロードして処理する必要がなく、特定の証明書の状態のみを問い合わせるため、応答が高速である。また、レスポンダーは常に最新の失効情報を保持しているため、情報鮮度の遅延が大幅に改善される。ネットワーク帯域の消費も、CRL全体をダウンロードする場合と比較してはるかに少ない。

さらにOCSPの効率を向上させる技術として、OCSP Stapling(OCSPステープリング)がある。通常のOCSPでは、WebブラウザなどのクライアントがWebサーバーから受け取った証明書を検証するために、別途OCSPレスポンダーへ問い合わせを行う必要がある。この追加の問い合わせは、Webサイトへの接続処理に遅延をもたらし、またクライアントがOCSPレスポンダーに直接アクセスすることで、どのサイトにアクセスしようとしているかという情報がOCSPレスポンダーに知られてしまうというプライバシー上の懸念も生じる。OCSP Staplingはこれらの問題を解決するために考案された。Webサーバーが自身のデジタル証明書の失効状態を事前にOCSPレスポンダーから取得し、その情報を自身の証明書と「ホチキス留め(staple)」するように、TLSハンドシェイク時にクライアントに提供する仕組みである。これにより、クライアントはOCSPレスポンダーに直接問い合わせを行う必要がなくなり、接続の高速化、OCSPレスポンダーへの負荷軽減、そしてクライアントのプライバシー保護が実現される。

OCSPは、WebブラウザでのHTTPS通信だけでなく、VPN接続、コード署名、電子署名、ソフトウェアの更新メカニズムなど、X.509デジタル証明書が利用されるあらゆる場面でその失効状態を効率的かつ確実に確認するために広く活用されている。デジタル社会における信頼性の基盤を支える重要なセキュリティプロトコルであり、システムエンジニアが理解しておくべき基本的な技術の一つである。

関連コンテンツ