概要
- OCSPによる証明書の有効性確認は、TLS拡張としてTLSハンドシェイク内で行うことができる。RFC6066
- OCSP要求はTLSクライアントからのstatus requestで発行される。(openssl s_clientの場合は、-statusオプションが該当する。)
- OCSP要求を受けたTLSサーバは、certificate statusにOCSPステータスを応答する。
- TLSクライアントは、TLSサーバからのcerfificate statusを診断し、ステータスが不完全な場合は、TLSを中断する等の対応が必要となる。
- TLS1.2拡張でやり取りされる、上記、OCSP要求・応答をWiresharkによるキャプチャで確認する。
Client Hello
- TLSクライアントがOCSP要求すると、Client Hello拡張にstatus requestを含む。
- status requestのcertificate status typeはOCSP。
- Responder ID listには、クライアントが信頼するOCSPレスポンダリストを乗せるが、本例のようにOCSPStapling等、サーバ暗黙の場合は空のリストになる。
Server Hello / CerfificateStatus
- TLSサーバはServer Hello拡張として、Certificate直後にCertificate Statusを応答する。
- Certificate StatusにはOCSPステータスと証明書情報が含まれる。
- OCSPステータスにはRFC2560定義のgood/revoked/unknownと、エラー状態を表すtryLater等がある。