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에 전달
- 요청/응답 흐름
- 클라이언트가 받은 인증서의 상태를 확인하고자 함
- 해당 인증서의 Authority Information Access (AIA) 확장에서 OCSP URL 확인
- OCSP 요청 생성(인증서 일련번호 포함)
- OCSP 서버(Responder)에 요청 전송(보통 HTTP)
- 서버가 다음 중 하나의 응답 변환
- good : 인증서 유효
- revoked : 인증서 폐기됨
- unknown : 상태 알 수 없음
- 클라이언트는 이 정보를 기반으로 연결을 계속하거나 중단
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
'정보보호' 카테고리의 다른 글
| 포트스캐닝 도구 nmap 사용 방법 및 스텔스 스캔 (0) | 2025.06.06 |
|---|---|
| 리눅스 /etc/passwd 파일 및 /etc/shadow 파일에 대한 개념 (0) | 2025.06.03 |
| PKI(Public Key Infrastructure)에 대한 개념과 구성요소 (6) | 2025.05.31 |
| 파일시스템 FAT, NTFS, EXT 개념 (0) | 2025.05.28 |
| Heap Spray 공격의 개념과 방지방법(ASLR, DEP) (0) | 2025.05.27 |