728x90

OCSP란?

Online Certificate Status Protocol은 디지털 인증서의 실시간 유효성 검증을 위한 인터넷 프로토콜입니다. 기존의 CRL(Certificate Revocation List) 방식이 가지는 단점을 보완하기 위해 만들어졌습니다.

RFC 6960에서 표준으로 정의되었으며, 주로 웹 브라우저, 메일 클라이언트, VPN 클라이언트 등에서 사용됩니다.

 

OCSP의 필요성

  • 기존 방식 : CRL의 한계
    • CRL은 CA에서 정기적으로 폐기된 인증서를 목록으로 배포
    • 수백 KB ~ 수 MB 이상인 경우도 있어 다운로드 시간이 오래 걸림
    • 폐기된 인증서 정보가 반영되기 까지 시간 지연 발생
    • 네트워크 부하 및 클라이언트 자원 소비 증가
  • 개선 방식 :OCSP의 장점
    • 클라이언트는 특정 인증서의 상태만 요청
    • 응답크기가 매우 작음(수백 바이트 ~ 수 KB)
    • 실시간 상태 확인 가능
    • 서버-클라이어트간 빠른 통신

OCSP의 작동 원리

  • 주요 참여자
    • OCSP Client : 인증서 상태를 확인하고자 하는 주체(ex. Web Browser)
    • OCSP Responder : 인증서 상태 정보를 제공하는 서버(CA가 직접 운영하거나 위임)
    • CA : 인증서를 발급하고 상태 정보를 OCSP Responder에 전달
  • 요청/응답 흐름
    1. 클라이언트가 받은 인증서의 상태를 확인하고자 함
    2. 해당 인증서의 Authority Information Access (AIA) 확장에서 OCSP URL 확인
    3. OCSP 요청 생성(인증서 일련번호 포함)
    4. OCSP 서버(Responder)에 요청 전송(보통 HTTP)
    5. 서버가 다음 중 하나의 응답 변환
      • good : 인증서 유효
      • revoked : 인증서 폐기됨
      • unknown : 상태 알 수 없음
    6. 클라이언트는 이 정보를 기반으로 연결을 계속하거나 중단
CertID: 0x1234ABCD
Status: good
This Update: 2025-05-31 10:00:00
Next Update: 2025-05-31 12:00:00
Signature: (CA 서명)

 

보안강화 : OCSP Stapling

  • OCSP는 실시간 서버 조회가 필요하므로 다음과 같은 문제점이 발생
    • OCSP 서버 장애 -> 인증 실패
    • 프라이버시 이슈 : 누가 어떤 사이트에 접속했는지 추적 가능
    • 지연 발생 : HTTPS 연결 성능 저하

이러한 문제를 해결하기 위하여 OCSP Stapling 기능이 도입되었다.

  • 개념
    • 웹서버가 미리 OCSP  응답을 가져와 자신의 TLS 인증서와 함께 스테이플해서 클라이어트에게 전달
    • 클라이언트는 OCSP 서버에 직접 요청하지 않고도 상태 확인 가능
  • 장점
    • 빠른 연결(OCSP 서버 연결 불필요)
    • 프라이버시 보호
    • CA부하 감소

 

OCSP vs CRL 비교 정리

항목 CRL OCSP
방식 전체 폐기 목록 다운로드 개별 인증서 상태 실시간 요청
응답속도 느림(수초 이상) 빠름(수백 ms)
데이터 크기 수백 KB 이상 수 KB 이하
실시간성 낮음 높음
프라이버시 보호됨 서버 요청 시 노출 가능
(OCSP Stapling으로 보완 가능)
사용 편의성 단순함 설명 복잡할 수 있음

 

 

실무 활용 예시

  • 웹 브라우저 : HTTPS 접속 시 OCSP로 인증서 상태 확인
    (Chrome, Firefox, Edge 등 대부분 OCSP 또는 Stapling 지원)
  • 메일 클라이언트 : S/MIME 인증서 검증
  • VPN 클라이언트 : 사용자 인증서 상태 확인
  • 서버 인증 : 인증서 폐기 되었는지 판단하여 연결 거부

자체 OCSP 서버를 구현하기 위한 구성 요소

요소 설명
CA (인증기관) 인증서와 폐기  정보(CRL 또는 상태 DB) 생성
OCSP Responder 클라이언트의 요청을 받고, 인증서 상태를 실시간으로 응답
데이터 저장소 인증서 상태(유효, 폐기 등)를 저장
키 및 인증서 OCSP 응답에 서명하기 위한 OCSP 전용 서명키와 인증서 필요

 

 

구현방식

1. OpenSSL 기반 OCSP Responder

  • OpenSSL에는 간단한 OCSP 서버 기능이 내장되어 있음
  • 테스트용 또는 내부 환경에 적합
openssl ocsp \
  -port 2560 \
  -index index.txt \
  -CA ca.crt \
  -rsigner ocsp-cert.pem \
  -rkey ocsp-key.pem \
  -text
  • index.txt : CA에서 발급한 인증서 상태DB
  • ocsp-cert.pem : OCSP 응답에 사용할 인증서(CA가 발급한 OCSP 전용 인증서)

 

2. EJBCA

  • JAVA 기반의 완전한 오픈소스 PKI 서버
  • OCSP 기능 포함
  • 대규모 배포 및 고급 설정 가능

 

3. Dogtag Certificate System

  • RedHat이 주도하는 PKI 솔루션
  • OCSP 포함

 

728x90

+ Recent posts