1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TLS拡張によるOCSP応答

Posted at

概要

  • 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等、サーバ暗黙の場合は空のリストになる。
    client_hello_status_request.jpg

Server Hello / CerfificateStatus

  • TLSサーバはServer Hello拡張として、Certificate直後にCertificate Statusを応答する。
  • Certificate StatusにはOCSPステータスと証明書情報が含まれる。
  • OCSPステータスにはRFC2560定義のgood/revoked/unknownと、エラー状態を表すtryLater等がある。

goodの場合

  • サーバ証明書の有効の場合、OCSP応答はcertStatus:goodを応答する。
    certificate_status_ok.jpg

revokedの場合

  • サーバ証明書が失効の場合、OCSP応答はcertStatus:revokedを応答する。
    certificate_status_revoked.jpg

unknownの場合

  • OCSPレスポンダが要求されたサーバの証明書を見つけられない等、サーバ証明書が不明の場合、OCSP応答はcertStatus:unknownを応答する。
    certificate_status_unknown.jpg

Try Laterの場合

  • 一時亭にOCSP応答が得られない場合、OCSP応答はcertStatus:unknownを応答する。例えばOCSPレスポンダが停止している、TLSサーバ、OCSPレスポンダ間の通信ができない等の状況が考えられる。
    certificate_status_trylater.jpg
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?