【オーシーエスピーステープリング】

OCSPステープリング とは?

最終更新:
💡 証明書の失効状態の回答を、サーバーが添えて渡す

TLS接続で、サーバーが取得した証明書の失効状態を示すOCSPレスポンスをクライアントへ添付する仕組み。クライアントが署名や鮮度を検証し、直接OCSPへ問い合わせる通信を減らせる。

📌 このページのポイント
失効状態の回答をサーバーが添付する ① サーバーが事前に取得 サーバー OCSP応答者 問い合わせ 署名付き回答 ② TLS接続で添付 クライアント サーバー 証明書+ OCSP回答 受け取った側が署名・対象・鮮度を確認 回答を添えるだけで、全検証が済むわけではない
上段はサーバーによるOCSP回答の取得、下段はTLS接続時の添付です。クライアントは回答の署名・対象・鮮度を検証します。証明書全体の検証も別に必要です。
ひよこ ひよこ
OCSPステープリングって、普通のOCSPと何が違うの?
ペンギン先生 ペンギン先生
OCSPは証明書の失効状態を問い合わせる仕組みだよ。クライアント自身が問い合わせる代わりに、サーバーが取得した回答をTLS接続時に添えて渡すのがステープリングなんだ。
ひよこ ひよこ
どんな利点があるの?
ペンギン先生 ペンギン先生
クライアントから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の回答も添えるイメージなんだ。

参考資料

← 用語集にもどる