온라인 증명서 상태 프로토콜
Online Certificate Status Protocol온라인 증명서 상태 프로토콜 | |
상황 | 제안된 표준 |
---|---|
시작한 해 | 2002년 2월 4일 ([1] |
초판 | 2013년 2월 11일([1] |
작가들 |
|
기본 규격 |
|
도메인 | 디지털 증명서 |
웹 사이트 |
OCSP(Online Certificate Status Protocol)는 X.509 디지털 [2]증명서의 실효 상태를 취득하는 데 사용되는 인터넷 프로토콜입니다.RFC 6960에 기술되어 있으며 인터넷 표준 트랙에 있습니다.Certificate Revocation List(CRL; 증명서 취소 리스트)의 대체 수단으로서 작성되었으며, 특히 Public Key Infrastructure(PKI;[3] 공개키 인프라스트럭처)에서의 CRL 사용에 관한 특정 문제에 대처하고 있습니다.OCSP를 통해 통신되는 메시지는 ASN.1로 인코딩되며 보통 HTTP를 통해 통신됩니다.이러한 메시지의 「요구/응답」성질에 의해, OCSP 서버는 OCSP 응답기라고 불립니다.
일부 웹 브라우저(Firefox[4])는 OCSP를 사용하여 HTTPS 증명서를 검증하는 반면 다른 웹 브라우저(Firefox)는 [5][6]증명서를 디세블로 합니다.인터넷상의 대부분의 OCSP 실효 상태는 증명서 [7]유효기간 직후에 사라집니다.
CRL과의 비교
- OCSP 응답에는 일반적인 Certificate Revocation List(CRL; 증명서 취소 리스트)보다 적은 데이터가 포함되어 있기 때문에 네트워크 [8]및 클라이언트리소스에 대한 부하가 경감됩니다.
- OCSP 응답은 해석할 데이터가 적기 때문에 이를 처리하는 클라이언트 측 라이브러리는 CRL을 [9]처리하는 라이브러리보다 덜 복잡할 수 있습니다.
- OCSP 는, 특정의 네트워크 호스트가 특정의 시각에 특정의 증명서를 사용하고 있는 것을 응답 측에 공개합니다.OCSP는 암호화를 요구하지 않기 때문에 다른 당사자가 [2]이 정보를 가로채는 경우가 있습니다.
기본 PKI 구현
- Alice와 Bob은 Certificate Authority(CA; 인증국) Carol에 의해 발행된 공개키 증명서를 가지고 있습니다.
- Alice는 Bob과 거래를 하고 싶어하며, Bob에게 그녀의 공개 키 증명서를 보냅니다.
- Bob은 Alice의 개인 키가 침해되었을 가능성을 우려하여 Alice의 인증서 일련 번호가 포함된 'OCSP 요청'을 작성하여 Carol에게 보냅니다.
- Carol의 OCSP 응답측은 Bob의 요청에서 인증서 일련 번호를 읽습니다.OCSP 응답측은 인증서 일련 번호를 사용하여 Alice 인증서의 해지 상태를 검색합니다.OCSP 응답측은 Carol이 관리하는 CA 데이터베이스를 검색합니다.이 시나리오에서 Carol의 CA 데이터베이스는 Alice의 증명서에 대한 타협이 기록되는 유일한 신뢰할 수 있는 위치입니다.
- Carol의 OCSP 응답측은 Alice의 증명서가 아직 정상임을 확인하고 서명된 'OCSP 응답'을 Bob에게 반환합니다.
- 밥은 캐롤의 서명된 답변을 암호화하여 확인합니다.Bob은 이 거래 전에 Carol의 공개키를 저장해 두었습니다.밥은 캐롤의 공개키를 사용하여 캐롤의 응답을 확인합니다.
- 밥은 앨리스와의 거래를 완료한다.
프로토콜 세부 정보
OCSP 응답측(일반적으로 증명서 발행자에 의해 실행되는 서버)은 요청에 지정된 증명서가 "good", "revocated" 또는 "unknown"임을 나타내는 서명된 응답을 반환할 수 있습니다.요청을 처리할 수 없는 경우 오류 코드가 반환될 수 있습니다.
OCSP 요청 형식은 추가 확장을 지원합니다.이것에 의해, 특정의 PKI 스킴에 대한 광범위한 커스터마이즈가 가능하게 됩니다.
OCSP는 서명된 '좋은' 응답이 악의적인 중개자에 의해 캡처되어 대상 증명서가 취소된 후 나중에 클라이언트에 재생되는 [10]재생 공격에 취약할 수 있습니다.OCSP를 사용하면 대응하는 응답에 포함될 수 있는 요구에 난스를 포함할 수 있습니다.부하가 높기 때문에 대부분의 OCSP 응답자는 각 요구에 대해 다른 응답을 작성하기 위해 난스 확장을 사용하지 않습니다.대신 유효기간이 여러일인 사전 서명된 응답을 사용합니다.따라서 리플레이 공격은 검증 시스템에 큰 위협이 됩니다.
OCSP는 여러 CA 레벨을 지원할 수 있습니다.OCSP 요구는 대상 증명서에 적합한 발행 CA를 쿼리하기 위해 피어 응답자 간에 체인으로 연결되어 있으며 응답자는 자신의 OCSP 요구를 사용하여 루트 CA에 대한 서로의 응답을 검증합니다.
OCSP 응답측은, Delegated Path Validation(DPV; 위임 패스 검증) 서버에 의해서 실효 정보를 문의할 수 있습니다.OCSP 자체로는 제공된 증명서의 DPV는 실행되지 않습니다.
응답에 서명하는 키가 증명서에 서명된 키와 같을 필요는 없습니다.증명서 발급자는 OCSP 응답측으로 다른 권한을 위임할 수 있습니다.이 경우 응답측 증명서(응답에 서명하기 위해 사용되는 증명서)는 해당 증명서의 발행자에 의해 발행되어야 하며 OCSP 서명 기관으로 마크되는 특정 확장자(더 정확히는 OID {iso(1) 식별된 조직(6) dod(1) securi를 사용한 확장 키 사용 확장자)를 포함해야 합니다.ty(5) 메커니즘(5) pkix(7) keyPurpose(3) ocspSigning(9)}
프라이버시 문제
OCSP 체크에서는 증명서의 유효성을 확인하기 위해 클라이언트가 서드파티(클라이언트소프트웨어 벤더로부터 신뢰받는 당사자라도)에 연락할 필요가 있기 때문에 일부 사용자의 프라이버시 문제가 발생합니다.OCSP 스테이플링은 [2]CA에 브라우징 동작을 공개하지 않고 유효성을 검증하는 방법입니다.
비판
OCSP 기반 취소는 HTTPS 서버의 개인 키 손상을 완화하기 위한 효과적인 기술은 아닙니다.서버의 개인 키를 침해한 공격자는 일반적으로 네트워크상의 중간자 위치에 있어야만 개인 키를 악용하여 서버를 가장할 수 있습니다.이러한 위치에 있는 공격자는 일반적으로 클라이언트의 OCSP 쿼리를 방해할 수도 있습니다.대부분의 클라이언트는 쿼리가 타임아웃되면 OCSP를 무시하기 때문에 OCSP는 HTTPS 서버 키의 [11]손상을 완화하는 신뢰할 수 있는 수단이 아닙니다.
증명서 내의 MustStaple TLS 확장에서는 스테이플러에 의한 OCSP 응답에 의한 증명서 검증이 요구되어 이 [8]문제가 완화될 수 있습니다.또, 공격자가 「man-in-the-middle」(코드 서명 또는 에러로 발행된 증명서)이 아닌 경우에도, OCSP는 유효한 방어 수단입니다.
OCSP 프로토콜은 요청자가 적절한 OCSP 응답 측에 연결하기 위한 네트워크 액세스를 가지고 있다고 가정합니다.일부 요청자는 로컬 네트워크에서 직접 인터넷에 액세스할 수 없기 때문에 연결하지 못할 수 있습니다(데이터 센터 내부 노드의 일반적인 관행).OCSP를 사용하기 위해 내부 서버를 강제로 인터넷에 접속하는 것은 주변 해제 경향에 기여합니다.OCSP 스테이플링 프로토콜은 서버가 OCSP 응답을 캐시할 수 있도록 하는 대체 프로토콜입니다.이것에 의해, 요구자가 OCSP 응답 측에 직접 연락할 필요가 없어집니다.
브라우저 지원
대부분의 주요 브라우저에서는 OCSP가 폭넓게 지원됩니다.
- Internet Explorer 는 Windows 의 CryptoAPI 를 기반으로 하기 때문에, Windows Vista(XP 가 아닌[12]) 버전7 이후에서는 OCSP 체크가 [13]서포트되고 있습니다.
- 모든 버전의 Mozilla Firefox는 OCSP 검사를 지원합니다.Firefox 3은 기본적으로 OCSP 체크를 [14]이니블로 합니다.
- MacOS의 Safari는 OCSP 체크를 지원합니다.Mac OS X 10.7(Lion)에서는 디폴트로 유효하게 되어 있습니다.그 전에 [15]키 체인 설정에서 수동으로 활성화해야 합니다.
- 8.0부터 현재[16][17] 버전까지의 Opera 버전은 OCSP 체크를 지원합니다.
하지만 구글 크롬은 특이하다.Google은 지연 시간 및 개인 정보[18] 보호 문제를 이유로 2012년에 OCSP 검사를 기본적으로 비활성화했으며 대신 자체 업데이트 메커니즘을 사용하여 해지된 인증서를 [19]브라우저로 전송합니다.
실장
커스텀 애플리케이션을 구축하기 위한 풀기능의 서버나 라이브러리 등, 오픈 소스 및 독자적인 OCSP 실장이 몇개인가 존재합니다.OCSP 클라이언트는 HTTPS와 월드 와이드 웹의 보급으로 많은 운영체제시스템, 웹 브라우저 및 기타 네트워크 소프트웨어에 포함되어 있습니다.
서버
오픈 소스
- Let'[20]s Encrypt(Go)에서 개발 및 사용하는 Boulder, CA 및 OCSP 응답기
- DogTag,[21] 오픈소스 인증국 CA, CRL 및 OCSP 응답측.
- EJBCA,[22] CA 및 OCSP 응답측(Java)
- XiPKI,[23] CA 및 OCSP 응답측RFC 6960 및 SHA3(Java) 지원
독자 사양
도서관
오픈 소스
고객
「 」를 참조해 주세요.
레퍼런스
- ^ a b "History for draft-ietf-pkix-rfc2560bis-20". Retrieved December 23, 2021.
{{cite web}}
: CS1 maint :url-status (링크) - ^ a b c A., Jesin (June 12, 2014). "How To Configure OCSP Stapling on Apache and Nginx". Community Tutorials. Digital Ocean, Inc. Retrieved March 2, 2015.
- ^ "OCSP Stapling". GlobalSign Support. GMO GlobalSign Inc. August 1, 2014. Retrieved March 2, 2015.
- ^ "CA/Revocation Checking in Firefox". wiki.mozilla.org. Retrieved 29 June 2022.
- ^ "Are revoked certificates detected in Safari and Chrome?". Retrieved 29 June 2022.
- ^ "CRLSets". Retrieved 29 June 2022.
- ^ Korzhitskii, Nikita; Carlsson, Niklas (2021). "Revocation Statuses on the Internet". In Hohlfeld, Oliver; Lutu, Andra; Levin, Dave (eds.). Passive and Active Measurement. PAM 2021. LNCS. Vol. 12671. pp. 175–191. arXiv:2102.04288. doi:10.1007/978-3-030-72582-2_11. ISBN 978-3-030-72582-2. ISSN 0302-9743.
- ^ a b Gibson, Steve. "Security Certificate Revocation Awareness: The case for "OCSP Must-Staple"". Gibson Research Corporation. Retrieved March 2, 2015.
- ^ Keeler, David (July 29, 2013). "OCSP Stapling in Firefox". Mozilla Security Blog. Mozilla Foundation. Retrieved March 2, 2015.
- ^ RFC 6960 섹션 5, 보안 고려 사항
- ^ "No, Don't Enable Revocation Checking". 19 April 2014. Retrieved 24 April 2014.
- ^ "Windows XP Certificate Status and Revocation Checking". Microsoft. Retrieved 9 May 2016.
- ^ "What's New in Certificate Revocation in Windows Vista and Windows Server 2008". Microsoft. Retrieved 9 May 2016.
- ^ "Mozilla Bug 110161 – Enable OCSP by Default". Mozilla. 1 October 2007. Retrieved 18 July 2010.
- ^ Wisniewski, Chester (26 March 2011). "Apple users left to defend themselves against certificate attacks". Sophos. Retrieved 26 March 2011.
- ^ Pettersen, Yngve Nysæter (November 9, 2006). "Introducing Extended Validation Certificates". Opera Software. Archived from the original on 10 February 2010. Retrieved 8 January 2010.
- ^ Pettersen, Yngve Nysæter (3 July 2008). "Rootstore newsletter". Opera Software. Retrieved 8 January 2010.
- ^ Langley, Adam (5 Feb 2012). "Revocation checking and Chrome's CRL". Archived from the original on 2012-02-12. Retrieved 2015-01-30.
- ^ "Chrome은 증명서 실효를 더 잘합니다", 2014년 4월 21일, Larry Seltzer, ZDNet
- ^ "Boulder – an ACME CA". GitHub. 16 March 2018. Retrieved 17 March 2018.
- ^ "Dogtag Certificate System". Retrieved 12 Aug 2019.
- ^ "EJBCA – Open Source PKI Certificate Authority". PrimeKey. 2 February 2018. Retrieved 17 March 2018.
- ^ "XiPKI". GitHub. 13 March 2018. Retrieved 17 March 2018.
- ^ "Certificate Services (Windows)". Windows Dev Center. Microsoft. 2018. Retrieved 17 March 2018.
- ^ "Package ocsp". cfssl GoDoc. 25 February 2018. Retrieved 17 March 2018.
- ^ "OCSP_response_status". master manpages. OpenSSL. 2017. Retrieved 17 March 2018.
- ^ "OCSP in wolfSSL Embedded SSL – wolfSSL". 2014-01-27. Retrieved 2019-01-25.
외부 링크
- 공개 키 인프라스트럭처: Curlie의 운영 프로토콜
- RFC 2560, X.509 인터넷 공개 키 인프라스트럭처 온라인 증명서 상태 프로토콜 - OCSP
- RFC 4806, IKEv2로의 Online Certificate Status Protocol(OCSP) 확장
- RFC 5019, 대량 환경용 Lightweight Online Certificate Status Protocol(OCSP) 프로파일
- RFC 6960, X.509 인터넷 공개 키 인프라스트럭처 온라인 증명서 상태 프로토콜 - OCSP
- Processor.com 2009년 4월호 Online Certificate Status Protocol 관련 기사