320x100
320x100

1. 인증서(Certificate)

개요

  • 웹 서버의 신원을 증명하는 전자 문서
  • X.509 표준 기반
  • HTTPS(TLS)에서 서버 인증 및 공개키 전달에 사용
  • CA(Certificate Authority)가 발급 및 전자서명 수행
    • CA: 인증서를 발급해 주는 공인 인증 기관

인증서 구성

항목 설명
Domain 인증 대상 도메인
Public Key 공개키
Issuer 발급 기관(CA)
Validity 유효기간
Serial Number 인증서 식별 번호
Signature CA 전자서명

역할

  • 서버 신원 증명
  • 공개키 전달
  • TLS Handshake의 신뢰 기반 제공

2. HTTPS 인증 흐름

전체 구조

Browser
    │
    │ HTTPS 요청
    ▼
Web Server
    │
    │ Certificate
    ▼
Browser
    │
    ├─ CA 서명 검증
    ├─ 도메인 확인
    ├─ 유효기간 확인
    └─ Session Key 생성(ECDHE)

인증서 발급

  1. 서버에서 Public Key / Private Key 생성
  2. CSR 생성 후 CA에 제출
  3. CA가 도메인 소유권 확인
  4. CA가 공개키와 도메인 정보에 전자서명
  5. 인증서 발급

TLS Handshake

1. Client Hello

브라우저 → 서버

  • TLS Version
  • Cipher Suite 목록
  • Client Random

2. Server Hello

서버 → 브라우저

  • TLS Version 선택
  • Cipher Suite 선택
  • Server Random
  • Certificate 전달

3. 인증서 검증

브라우저 검증 항목

  • Domain 일치 여부
  • CA 신뢰 여부
  • 전자서명 검증
  • 유효기간
  • 폐기 여부(OCSP/CRL)

4. Session Key 생성

현재 대부분 TLS는 ECDHE 사용

  • Browser와 Server가 각각 임시 키 생성
  • 공개키만 교환
  • 동일한 Session Key 계산
  • Session Key 자체는 네트워크로 전송되지 않음

5. 데이터 암호화

Session Key를 이용하여 대칭키 암호화 수행

사용 알고리즘

  • AES-GCM
  • ChaCha20-Poly1305

무엇이 암호화되는가?

항목 암호화
HTML
CSS
JavaScript
JSON
Cookie
Authorization Header
POST Body
Image
Video

암호화되지 않는 정보

  • IP Address
  • TCP/IP Header
  • TCP Port
  • 기본 SNI(TLS 1.3)

3. Q&A

인증서를 설치하지 않아도 HTTPS가 가능한 이유

  • 운영체제와 브라우저에 Root CA 인증서가 기본 포함됨
  • 서버는 인증서 체인(Server → Intermediate → Root)을 전달
  • 브라우저가 Root CA까지 검증하여 신뢰 여부 판단
  • 따라서 웹사이트별 인증서를 직접 설치할 필요 없음

PC에 Root CA를 설치하면 어떻게 인식하는가?

  • 브라우저가 운영체제 또는 자체 인증서 저장소 조회
  • Root CA와 인증서 체인을 비교
  • 일치하면 신뢰된 인증서로 판단
  • 기업 내부망에서는 자체 Root CA를 배포하여 내부 서비스 인증

인증서 위조 및 만료 확인 방법

  • Not Before / Not After 확인
  • CA 전자서명 검증
  • Domain(CN/SAN) 확인
  • OCSP 또는 CRL로 폐기 여부 확인

핵심 요약

  1. 서버가 공개키/비밀키 생성
  2. CA에서 인증서 발급
  3. 브라우저가 인증서 검증
  4. ECDHE로 Session Key 생성
  5. 이후 모든 HTTP 데이터는 AES/ChaCha20으로 암호화

인증서는 서버를 신뢰하기 위한 수단이며, 실제 데이터 암호화는 Session Key를 사용하는 대칭키 암호화가 담당함.

300x250
728x90