PKI
PKI
PKI
PKI(Public Key Infrastructure, 공개 키 기반 구조)란?
PKI는 **공개 키 암호화(Public Key Cryptography)**를 기반으로, 디지털 인증서와 **신뢰 계층(Trust Hierarchy)**을 이용해 보안 통신을 보장하는 시스템입니다.
즉, 서버가 진짜인지, 클라이언트가 신뢰할 수 있는지를 보장하는 구조입니다. TLS, HTTPS, SSH 등에서 **서버 인증(Server Authentication)**에 활용됩니다.
1. PKI의 주요 요소
🔹 1) 공개 키(Public Key) & 비밀 키(Private Key)
- PKI에서는 비대칭 암호화를 사용하여 데이터를 보호합니다.
- 공개 키: 누구나 볼 수 있으며, 데이터를 암호화하는 데 사용됩니다.
- 비밀 키: 공개 키로 암호화된 데이터를 복호화하는 데 사용됩니다. 반드시 보호해야 합니다.
🔹 2) 디지털 인증서(Digital Certificate)
- 서버(혹은 클라이언트)의 공개 키를 담고 있으며, 신뢰할 수 있는 기관(CA)이 서명한 문서입니다.
- 클라이언트는 이 인증서를 확인함으로써 서버가 신뢰할 수 있는지 검증합니다.
🔹 인증서의 주요 내용:
- 공개 키(Public Key)
- 소유자 정보 (도메인, 회사명 등)
- 발급 기관 (CA, 인증 기관)
- 만료일(Expiration Date)
- 서명(Signature, CA의 비밀 키로 생성됨)
🔹 3) 인증 기관(CA, Certificate Authority)
- 신뢰할 수 있는 제3자 기관으로, 인증서를 발급하고 검증합니다.
- CA가 인증서를 발급하면, CA의 서명이 포함되므로 신뢰성을 확보할 수 있습니다.
- 대표적인 CA:
- DigiCert, GlobalSign, Let’s Encrypt, Verisign 등
🔹 4) 등록 기관(RA, Registration Authority)
- 사용자의 정보를 검증한 후, CA에게 인증서 발급 요청을 합니다.
- 예를 들어, 기업이 직원들에게 사내 VPN 인증서를 발급할 때 사용됩니다.
🔹 5) CRL(Certificate Revocation List) & OCSP(Online Certificate Status Protocol)
- CRL: 폐기된 인증서 목록 (일정 주기마다 업데이트)
- OCSP: 인증서의 유효 여부를 실시간으로 확인하는 프로토콜
2. PKI의 동작 과정 (TLS 예시)
📌 1) 서버 인증서 발급 과정
서버(웹사이트)가 공개 키 & 비밀 키 생성
→ 공개 키(공개) + 비밀 키(보관)서버가 CA에게 인증서 요청 (CSR, Certificate Signing Request) → CSR에는 서버 공개 키와 도메인 정보가 포함됨
CA가 서버 정보를 검증한 후, 인증서를 발급
→ 서버 인증서에는 서버의 공개 키 + CA의 서명이 포함됨
📌 2) 클라이언트가 서버와 TLS 연결을 맺는 과정
클라이언트(브라우저)가 서버에 접속
→ 예:https://example.com
서버가 자신의 인증서(서버 공개 키 포함)를 클라이언트에게 전송
클라이언트가 인증서를 검증
- 인증서가 신뢰할 수 있는 CA의 서명으로 발급되었는지 확인
- 인증서의 만료 기간을 확인
- OCSP/CRL을 통해 인증서가 폐기되지 않았는지 확인
검증이 완료되면, 클라이언트가 세션 키를 설정
- 클라이언트는 Pre-Master Secret을 생성하여 서버의 공개 키로 암호화 후 서버로 전송
- 서버는 비밀 키로 이를 복호화하여 세션 키 생성
이제 클라이언트와 서버는 세션 키(대칭 키)로 암호화된 통신 진행
- 이후 통신은 빠른 **대칭 암호화(AES 등)**를 사용
3. PKI의 장점 & 단점
✅ 장점
- 서버와 클라이언트의 신뢰성 보장 (MITM 공격 방지)
- 공개 키를 이용한 안전한 키 교환
- TLS/HTTPS를 통한 보안 강화
- 폐기된 인증서를 CRL/OCSP로 실시간 검증 가능
❌ 단점
- 인증서 비용 (Let’s Encrypt는 무료지만, 고급 인증서는 비용 발생)
- CA가 해킹되면 문제가 발생할 수 있음 (ex: DigiNotar 해킹 사건)
- 인증서 관리가 필요함 (만료 기간, 폐기 여부 확인 필요)
4. 정리
개념 | 설명 |
---|---|
공개 키(Public Key) | 데이터를 암호화할 수 있는 키 (누구나 볼 수 있음) |
비밀 키(Private Key) | 암호화된 데이터를 복호화하는 키 (소유자가 보관) |
CA(Certificate Authority) | 인증서를 발급하는 신뢰할 수 있는 기관 |
CSR(Certificate Signing Request) | 서버가 CA에게 인증서 요청할 때 제공하는 정보 |
CRL(Certificate Revocation List) | 폐기된 인증서 목록 |
OCSP(Online Certificate Status Protocol) | 실시간 인증서 상태 확인 |
PKI는 우리가 사용하는 **TLS(HTTPS)**의 기반이 되는 중요한 보안 인프라입니다.
궁금한 점 있으면 더 질문 주세요! 😊