2011-07-06 2 views
3

http://www.openssl.org/docs/apps/ocsp.html에 설명 된 openssl ocsp 프로그램은 클라이언트가 인증서와 CA 인증서를 ocsp resopnder로 보내야합니다. 그러나 OCSP에 대한 RFC 2560에서는이를 요구하지 않습니다. OCSP 응답자가 CA 인증서로 사전 구성되어 클라이언트가 보낸 인증서에서 특정 CA를 찾을 수 없습니까? 답해 주셔서 감사합니다.openssl이 OCSP 프로토콜로 CA 인증서를 전송하는 이유

답변

7

openssl ocsp 응용 프로그램은 실제로 전체 발급자 인증서를 응답자에게 보내지 않습니다. 당신이 CertID (RFC 2560)의 정의를 보면

CertID   ::=  SEQUENCE { 
     hashAlgorithm  AlgorithmIdentifier, 
     issuerNameHash  OCTET STRING, -- Hash of Issuer's DN 
     issuerKeyHash  OCTET STRING, -- Hash of Issuers public key 
     serialNumber  CertificateSerialNumber } 

두 발행 관련 분야, issuerNameHash 및 issuerKeyHash이있다. openssl ocsp 명령은 편의상 모든 발급자 인증서를 사용하고 해당 인증서를 사용하여 최종 요청에 대해이 두 필드를 생성합니다.

대부분의 CA는 "루트 인증서"에 대해 여러 개의 하위 CA 인증서를 발행하므로 일반적으로 단일 CA 인증서에 대해 OCSP 응답자를 미리 구성 할 수 없습니다. 즉, CA는 일반적으로 이름에 단일 CA 인증서 루트가 있고 이 루트 인증서에 따라 여러 하위 CA 인증서를 자체 발행합니다 (예 : 하위 1, 하위 2 등. 관리 또는 의미 론적 의미와 별개로 하위 CA 중 하나에 대한 주요 위험이 루트 인증서보다 덜 심각한 추가 이점이 있습니다. 일상 업무는 하위 CA의 이름으로 이루어 지지만 루트 키는 하위 CA 인증서를 갱신하기 위해 한 번만 사용되며 나머지 시간은 가능한 한 안전하게 유지할 수 있습니다.

OCSP 응답자는 검사 할 인증서를 발급 한 하위 CA를 쉽게 구분할 수 없으며 검사 할 클라이언트 인증서 해지를 결정할 때 해당 정보가 필요합니다.

응답자가 일련 번호만으로이를 확인할 수 있다고 주장 할 수 있습니다.하지만 이는 발행자 의 일련 번호가 고유하게 인증서를 식별 할 수있는 이유입니다. 두 개의 CA (시나리오 하위 CA)는 동일한 일련 번호가있는 인증서를 발급합니다. 이것이 프로토콜이 클라이언트에게 발급자 정보를 보내도록 요구하는 이유입니다.

+0

종합적인 답변을 보내 주셔서 감사합니다. 이 경우 가능한 시나리오는 a) 취소 상태가 확인되는 인증서를 받음 b) 인증서에서 발급자 인증서가 결정되고 c) 발급자 인증서가 openssl ocsp 프로그램에 제공됩니다. 문제는 단계 (b)에서 인증서에서 발급자 인증서를 얻는 방법을 알지 못해서 클라이언트로부터 발급자 인증서를 얻고 싶지 않다는 것입니다. 답변을 주셔서 감사합니다 – doon

+0

a) - c) 수동 또는 프로그래밍 방식으로? 프로그램 방식으로, 어떤 언어로? – emboss

관련 문제