2016-12-21 1 views
3

현재 모든 중간 및 최종 엔티티 인증서에 대해 verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx) 함수에서 OCSP 요청을 보내는 구현이 있습니다. verify_callback 기능은 SSL_CTX_set_verify() 기능을 사용하여 설정됩니다.클라이언트 측에서 전통적인 OCSP 및 OCSP 스테이플 링을 처리하는 방법

이제 구현에 OCSP 스테이플 링을 추가하고 싶습니다. OCSP 스테이플 링을 포함하는 방법에 관한 게시물 OpenSSL certificate revocation check in client program using OCSP stapling을 보았습니다.

위의 OCSP 콜백을 추가 할 때의 문제점은 OCSP 스테이플 링 콜백 함수보다 먼저 verify_callback()이 먼저 호출된다는 것입니다.

제 질문은 서버에서 OCSP 스테이플 링 응답이없는 경우 클라이언트가 OCSP 요청을 보내는 방식으로 두 가지를 모두 가질 수 있다는 것입니다.

verify_callback() 기능에 도달하기 전에 OCSP 스테이플 링이 지원되는지 여부를 확인하는 방법이 있습니까?

답변

0

이 말이 맞는 것인지 확실하지 않습니다. OCSP 스테이플 링의 요점은 응답이 초기 TLS 핸드 셰이크에 추가된다는 것입니다 (cf. Wikipedia. 따라서 TLS 핸드 셰이크의 유효성은 해당 콘텐츠를 평가하기 전에 설정해야합니다. 따라서 OpenSSL은 핸드 쉐이크 자체를 확인하기 위해 verify_callback()을 먼저 트리거하고 핸드 쉐이크가 유효한 것으로 확인 된 경우에만 핸드 셰이크에 포함 된 추가 데이터를 확인할 수 있도록 OCSP 콜백 함수를 트리거합니다.

그렇지 않으면 TLS 핸드 셰이크가 실패하면 왜 전통적인 OCSP 요청을 제출해야합니까?

OCSP 요청을 제 3 자에게 수동으로 제출하려는 경우 TLS 핸드 셰이크가 완료된 후 (이 경우 해당 연결에서 추가 데이터를 보내거나받은 모든 데이터를 처리하기 전에)이를 수행해야합니다. 또는 원격 서버에 연결하기 전에 (물론 미리 인증서를 알고 있다면)이 워크 플로는 OCSP 스테이플 링을 사용할 필요가 없습니다.

관련 문제