TLS 확장을 통한 OCSP 응답

개요


  • OCSP에 의한 인증서의 유효성 확인은 TLS 확장으로서 TLS 핸드셰이크 내에서 수행될 수 있다. RFC6066
  • OCSP 요청은 TLS 클라이언트로부터 status request로 발행된다. (openssl s_client의 경우 -status 옵션이 적용됩니다.)
  • OCSP 요청을 받은 TLS 서버는 인증서 상태에 OCSP 상태를 응답한다.
  • TLS 클라이언트는 TLS 서버로부터 인증 상태를 진단하고 상태가 불완전한 경우 TLS를 중단하는 등의 대응이 필요하다.
  • TLS1.2 확장에서 상호 작용하는 위의 OCSP 요청 및 응답을 Wireshark의 캡처로 확인합니다.

  • Client Hello


  • TLS 클라이언트가 OCSP를 요청하면 Client Hello 확장에 status request가 포함됩니다.
  • status request의 certificate status type은 OCSP입니다.
  • Responder ID list에는, 클라이언트가 신뢰하는 OCSP 리스폰더 리스트를 태우지만, 본 예와 같이 OCSSPtapling 등, 서버 암묵의 경우는 하늘의 리스트가 된다.


  • Server Hello/CerfificateStatus


  • TLS 서버는 Server Hello 확장으로서 Certificate 직후 Certificate Status를 응답한다.
  • Certificate Status는 OCSP 상태와 인증서 정보를 포함한다.
  • OCSP 상태에는 RFC2560 정의의 good/revoked/unknown과 에러 상태를 나타내는 tryLater 등이 있다.

  • 좋은 경우


  • 서버 인증서가 유효한 경우 OCSP 응답은 certStatus : good에 응답합니다.


  • revoked의 경우


  • 서버 인증서가 해지되면 OCSP 응답은 certStatus : revoked를 응답합니다.


  • unknown의 경우


  • OCSP 응답자가 요청 된 서버의 인증서를 찾을 수없는 경우와 같이 서버 인증서가 알려지지 않은 경우 OCSP 응답은 certStatus : unknown을 응답합니다.


  • Try Later의 경우


  • 일시적으로 OCSP 응답을 얻을 수 없으면 OCSP 응답은 certStatus : unknown을 응답합니다. 예를 들어, OCSP 응답자가 중지 된 TLS 서버와 OCSP 응답자 간의 통신이 불가능한 상황이 고려된다.

  • 좋은 웹페이지 즐겨찾기