【オーシーエスピーステープリング】
OCSPステープリング とは?
最終更新:
💡 証明書の失効状態の回答を、サーバーが添えて渡す
TLS接続で、サーバーが取得した証明書の失効状態を示すOCSPレスポンスをクライアントへ添付する仕組み。クライアントが署名や鮮度を検証し、直接OCSPへ問い合わせる通信を減らせる。
📌 このページのポイント
- サーバーがOCSPレスポンスを取得し、TLSハンドシェイクで添付する
- クライアント側からOCSPへ直接問い合わせる通信を減らせる
- 回答の署名・対象の証明書・時刻などはクライアントが検証する
- 証明書の期限や接続先の名前など、ほかの検証も必要
OCSPステープリングって、普通のOCSPと何が違うの?
どんな利点があるの?
クライアントからOCSPレスポンダーへの追加の問い合わせを減らせるよ。その往復通信や、問い合わせ先へ利用者の接続情報が伝わる機会を減らせる。ただし、どの接続でも必ず速くなるとは限らないんだ。
サーバーが「失効していない」と嘘をついたら?
古い回答を添えればごまかせる?
署名だけでなく鮮度も確認するよ。thisUpdateが十分に新しいか、nextUpdateがあれば現在時刻より後か、といった検証が必要なんだ。サーバーも回答を更新しておく必要がある。
回答がgoodなら、その証明書は全部OK?
goodは失効状態への回答で、証明書全体の有効性を保証しないよ。証明書の信頼の連鎖、期限、接続先の名前なども別に検証する。対応や設定、回答を受け取れない場合の扱いもクライアントに依存するんだ。
もっと詳しく知りたい人へ
TLS 1.2とTLS 1.3で送り方は同じ?
TLS 1.2以前ではCertificateStatusメッセージで送ります。TLS 1.3では、対応する証明書のCertificateEntry内のstatus_request拡張に含めます。どちらも、クライアントがOCSP回答を受け取って検証する考え方です。SCTは証明書透明性に関する別の情報で、OCSPレスポンスと同じではありません。
まとめ:ざっくりこれだけ覚えればOK!
「OCSPステープリング」って出てきたら「サーバーが証明書の失効状態の回答を添えて渡す仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「OCSP Stapling(Online Certificate Status Protocol Stapling)」 = オンライン証明書状態プロトコルの回答を添付する仕組み
💬 Staplingはホチキスで留めるという意味だよ。証明書を送るときに、OCSPの回答も添えるイメージなんだ。