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) 서버 인증서 발급 과정

  1. 서버(웹사이트)가 공개 키 & 비밀 키 생성
    → 공개 키(공개) + 비밀 키(보관)

  2. 서버가 CA에게 인증서 요청 (CSR, Certificate Signing Request) → CSR에는 서버 공개 키도메인 정보가 포함됨

  3. CA가 서버 정보를 검증한 후, 인증서를 발급
    → 서버 인증서에는 서버의 공개 키 + CA의 서명이 포함됨


📌 2) 클라이언트가 서버와 TLS 연결을 맺는 과정

  1. 클라이언트(브라우저)가 서버에 접속
    → 예: https://example.com

  2. 서버가 자신의 인증서(서버 공개 키 포함)를 클라이언트에게 전송

  3. 클라이언트가 인증서를 검증

    • 인증서가 신뢰할 수 있는 CA의 서명으로 발급되었는지 확인
    • 인증서의 만료 기간을 확인
    • OCSP/CRL을 통해 인증서가 폐기되지 않았는지 확인
  4. 검증이 완료되면, 클라이언트가 세션 키를 설정

    • 클라이언트는 Pre-Master Secret을 생성하여 서버의 공개 키로 암호화 후 서버로 전송
    • 서버는 비밀 키로 이를 복호화하여 세션 키 생성
  5. 이제 클라이언트와 서버는 세션 키(대칭 키)로 암호화된 통신 진행

    • 이후 통신은 빠른 **대칭 암호화(AES 등)**를 사용

3. PKI의 장점 & 단점

장점

  1. 서버와 클라이언트의 신뢰성 보장 (MITM 공격 방지)
  2. 공개 키를 이용한 안전한 키 교환
  3. TLS/HTTPS를 통한 보안 강화
  4. 폐기된 인증서를 CRL/OCSP로 실시간 검증 가능

단점

  1. 인증서 비용 (Let’s Encrypt는 무료지만, 고급 인증서는 비용 발생)
  2. CA가 해킹되면 문제가 발생할 수 있음 (ex: DigiNotar 해킹 사건)
  3. 인증서 관리가 필요함 (만료 기간, 폐기 여부 확인 필요)

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)**의 기반이 되는 중요한 보안 인프라입니다.
궁금한 점 있으면 더 질문 주세요! 😊