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
728x90

PKI(Public Key Infrastructure)란?

PKI는 암호화 기술을 이용해 디지털보안을 제공하는 체계입니다.

주로 인터넷과 같은 개방된 네트워크에서 신원확인, 데이터무결성보장, 기밀성 유지, 부인방지 기능을 제공하기 위해서 사용됩니다.

비대칭키 암호화 기술을 기반으로 하며, 공개키와 개인키의 쌍을 사용하여 보안을 제공합니다.

  • 공개키(Public Key) : 누구나 접근 가능한 키
  • 개인키(Private Key) : 소유자만 알고 있는 비밀키

PKI는 이 키쌍을 신뢰할 수 있는 방식으로 관리하고, 디지털 인증서를 통해 공개키가 특정 사용자 또는 조직에 속해있음을 보증합니다.

 

 

PKI의 주요 구성 요소

1. CA(Certificate Authority, 인증 기관)

  • 역할
    • CA는 공개키 인증서를 발급, 서명, 관리하는 가장 핵심적인 기관입니다. 사용자나 시스템이 제출한 공개키에 대해 신원을 확인한 후 이를 디지털 인증서로 만들어 서명합니다. 이 인증서는 해당 공개키가 특정 개인, 조직, 도메인 등에 속함을 증명합니다.
  • 상세 기능
    • 디지털 인증서 생성 및 서명
    • 인증서 갱신 및 폐기
    • 신뢰 체계 형성(루트 CA, 중간 CA 체계)
    • 정책(CPS : Certification Practice Statement) 관리
  • 예시
    • 상업용 CA : DigiCert, GlobalSign, Sectigo
    • 공공기관 CA : 한국정보인증, KISA 루트 CA
    • 오픈소스 루트 CA : Let's Encrypt

 

2. RA(Registration Authorith,  등록기관)

  • 역할
    • RA는 CA의 위임을 받아 인증서 요청자의 신원을 검증하는 기관입니다. CA가 인증서를 발급하기 전에 RA가 사용자 또는 시스템의 신원과 정보를 확인하고 그 결과를 CA에 전달합니다.
  • 상세 기능
    • 인증서 신청 접수 및 사용자 신원 확인
    • 신원확인 절차 수행(여권, 주민등록증, 도메인 소유권 확인 등)
    • CSR(Certificate Signing Request) 처리
    • CA와의 통신을 통한 발급 요청
  • 비고
    • RA는 보통 별도의 기관이 될 수 있고 CA 내부에 통합될 수도 있음
    • 대규모 조직에서는 내부 RA를 통해 인증서 자체를 관리

3. Ceritificate(디지털 인증서)

  • 역할
    • 디지털인증서는 공개키와 해당 소유자의 정보를 포함하며, CA의 디지털 서명이 포함되어 있어 인증서의 무결성과 신뢰성을 보장합니다. 이를 통해 해당 공개키가 누구의 것인지 신뢰할 수 있습니다.

 

4. CRL(Ceritificate Revocation List, 인증서 폐지 목록)

  • 역할
    • CRL은 폐기된 인증서들의 목록입니다. 인증서가 유효기간 내라도, 유출되었거나 사용 중단되었을 경우에는 신뢰할 수 없게 됩니다. 이런 인증서를 리스트에 올려서 수신자가 확인하고 무효 인증서를 거를 수 있게 합니다.
  • 상세 기능
    • 인증서의 유효성 검증 시 사용
    • 주기적으로 CA가 업데이트함
    • 인증서 일련번호 깁만 목록 제공
  • 한계
    • 최신 CRL 확인을 위한 시간 지연
    • 해결책 : OCSP(Online Ceritificate Status Protocol) 사용 -> 실시간 검증 가능

5. PKI 사용자(Entity)

  • 역할
    • PKI를 사용하는 사람, 소프트웨어, 디바이스 등을 통칭합니다. 이들은 CA로부터 발급받은 인증서를 사용하여 암호화, 서명, 인증 등의 작업을 수행합니다.
  • 예시
    • 사용자의 이메일 클라이언트(S/MIME 사용)
    • 웹 서버(HTTPS 적용을 위한 SSL 인증서 사용)
    • IoT 장비(기기간 인증 및 보안 통신)
    • 기업의 VPN 클라이언트(사용자 인증을 위해 인증서 사용)
  • 종류
    • End-entity : 최종 사용자, 서버, 클라이언트 등
    • Application : 소프트웨어 모듈 또는 웹 서비스 등

6. Repository(저장소)

  • 역할
    • 인증서와 CRL 등 관련 정보를 저장하고 사용자 및 시스템이 이를 검색하고 검증할 수 있게 해주는 저장소 역할을 합니다. 일반적으로 인터넷에 공개되어 누구나 접근할 수 있도록 설정됩니다.
  • 내용물
    • CA의 루트 인증서 및 중간 인증서
    • 사용자 인증서
    • CRL(또는 OCSP Responder 정보)
    • 인증서 정책 문서(CPS 등)

 

인증서의 구성 요소

디지털 인증서는 보통 X.509 표준을 따릅니다. 주요 항목은 다음과 같습니다.

  • 사용자 이름, 이메일 주소, 조직 등 식별 정보
  • 공개키
  • 인증서 발급자 정보(CA)
  • 유효기간
  • 일련번호
  • 서명 알고리즘
  • CA의 디지털 서명

 

PKI작동원리

1.인증서 발급과정

  1. 사용자가 인증서를 요청(CSR : Certificate Signing Request 생성)
  2. RA가 사용자의 신원을 확인
  3. CA가 확인된 사용자에게 인증서 발급
  4. 사용자는 자신의 공개키가 포함된 인증서를 받음

 

2. 데이터 암호화 및 복호화

  • 기밀성(Confidentiality): 송신자가 수신자의 공개키로 암호화 -> 수신자는 자신의 개인키로 복호화
  • 무결성 및 부인방지(Integrity & Non-repudiation) : 송신자가 자신의 개인키로 서명 -> 수신자가 송신자의 공개키로 서명 검증

3. 인증서 검증

  1. 인증서를 수신하면, 인증서에 서명한 CA의 공개키로 서명을 검증
  2. 인증서의 유효기간을 확인
  3. CRL이나 OCSP를 통해 인증서 폐지 여부 확인

 

PKI가 제공하는 보안기능

보안 기능 설명
기밀성 공개키로 암호화, 개인키로 복호화
무결성 디지털 서명으로 데이터 변경 여부 확인
인증(Authentication) 디지털 인증서로 사용자 신원 확인
부인방지 디지털 서명으로 행동에 대한 책임 추적 기능

 

 

PKI의 실제 활용 예시

  • HTTPS / SSL 인증서 : 웹사이트의 신원을 보장하고 안전한 통신 제공
  • 전자서명 : 문서 위변조 방지 및 서명자 신원 확인
  • 이메일 암호화(S/MIME) : 이메일 기밀성과 무결성 보장
  • VPN 및 무선 네트워크 인증
  • IoT 기기 인증 및 통신 보안
728x90

+ Recent posts