프롤로그
이번 장은 이 공개키를 믿을 수 있을까? 라는 의심에 대한 답을 주는 시스템인 PKI(Public Key Infrastructure)와 인증서 체계를 외우기 쉽게 구성했습니다.
비대칭키의 가장 큰 문제
신원 확인 앞에서 봤듯이, 비대칭키 자체는 암호화는 잘하지만 "이 공개키가 진짜 누구 건지"는 알려주지 못합니다.
💥 그래서 등장한 것이 바로 → 공개키를 보증해주는 시스템 = 인증서 체계
인증서란?
인증서(Certificate)는 이런 정보를 담은 문서입니다.
- 이 공개키는 누구의 것인지 (신원 정보)
- 언제부터 언제까지 유효한지
- 누가 이걸 보증했는지 (디지털 서명 포함)
즉, 이 공개키는 진짜 아무개씨 것이며, 내가 보증합니다 라고 제3자(CA)가 도장 찍은 문서
인증서는 누가 만들까?
CA (Certificate Authority) : 인증서를 발급하는 공신력 있는 기관 예시
CA | 설명 |
DigiCert | 글로벌 인증서 발급기관 |
Let's Encrypt | 무료 공개 인증서 제공 |
한국정보인증 | 국내 주요 인증기관 중 하나 |
📌 CA는 개인/기업의 신원을 확인하고, 그들의 공개키에 서명된 인증서를 발급함
인증서 안에 뭐가 있을까?
인증서의 구성요소
- 도메인 이름 또는 사용자 이름
- 공개키
- 유효 기간
- 발급한 CA의 이름
- CA의 디지털 서명
인증서 = 공개키 + 신원 정보 + 디지털 보증
브라우저는 어떻게 인증서를 검증할까?
- 서버에서 인증서 전달
- 브라우저는 내장된 루트 CA 목록으로 인증서의 서명을 검증
- 서명이 유효하면 → 공개키를 신뢰하고 사용
- 아니면 → “안전하지 않음” 경고
인증서 검증 흐름 요약
- 브라우저가 서버에 접속 요청 사용자가 `https://example.com` 입력하면: → 브라우저가 해당 웹 서버에 “접속 요청(Hello)”을 보냄.
- 서버는 자신의 SSL/TLS 인증서를 브라우저에게 보냄. 이 인증서에는 다음 정보가 포함됨
- 서버의 공개키
- 도메인 이름
- 만료일
- 발급한 CA 이름
- CA의 디지털 서명
- 브라우저가 인증서 검증 브라우저는 OS나 브라우저에 내장된 신뢰된 루트 인증서 목록을 이용해 다음을 검증
- 서명 확인: CA의 공개키로 서명 복호화 → 인증서 내용 해시값과 비교
- 도메인 일치 여부: example.com과 인증서의 CN/SubjectAltName 일치 확인
- 유효 기간: 현재 시간이 인증서 유효 범위 내인지 확인
- 체인 검증: 인증서 체인이 루트 CA까지 이어지는지 확인
- ✅ 검증 성공 → 통신 계속
- ❌ 실패 시 → 브라우저가 보안 경고 띄움
- 대칭키 교환 준비 (TLS Handshake)
- 브라우저는 임시 대칭키(세션 키)를 생성
- 이 키를 서버의 공개키로 암호화해서 서버에 보냄
- 서버는 자신의 개인키로 복호화하여 세션 키 획득
- 안전한 HTTPS 통신 시작 이후부터는 두 쪽 모두 같은 대칭키를 갖고 있기 때문에
- 빠르고 효율적인 대칭키 암호화 방식으로 통신 진행
- 데이터가 도청되거나 위조되는 것을 방지함
특징
① 인증서 종류
종류 | 설명 |
DV (Domain Validation) | 도메인 소유 확인만 함 (가장 보편적) |
OV (Organization Validation) | 기업 정보를 추가로 인증 |
EV (Extended Validation) | 법적 인증까지 포함 (주소창에 회사 이름 표시됨) |
② PKI(Public Key Infrastructure)란?
공개키를 신뢰할 수 있게 관리하는 시스템 전체 인증서 발급(CA) 인증서 검증 폐기 관리(CRL, OCSP) 브라우저/운영체제의 신뢰 루트 관리 비대칭키 체계를 실전에 도입 가능하게 만든 구조
요약
- 공개키 자체는 신뢰할 수 없음
- 인증서는 공개키에 CA의 서명이 붙은 신원 증명서
- 브라우저는 인증서를 CA 루트를 기준으로 검증
- PKI는 공개키 신뢰를 가능하게 해주는 전체 구조
- 인증서 없으면 HTTPS도, 디지털 서명도 못 씀
'IT > security' 카테고리의 다른 글
#10 웹 서비스와 공인인증서 (0) | 2025.05.10 |
---|---|
#8 비대칭키의 문제점 (0) | 2025.05.10 |
#7 효율 극대화를 위한 대칭키 + 비대칭키 활용 (0) | 2025.05.10 |
#6 인터넷에서는 비대칭키를 어떻게 활용할까? (0) | 2025.05.10 |
#5 디지털 서명 (0) | 2025.05.10 |