반응형



핵심부터 말하면:
인증서는 "브라우저/OS가 미리 신뢰하는 CA"를 믿는 구조
다.
즉:
"누가 이 공개키가 진짜라고 보증했는가?"
를 따라 올라가는 구조다.
먼저 문제 상황
예를 들어 네가:
https://naver.com
접속했다고 하자.
서버가 공개키를 보냄
"이게 제 공개키입니다"
라고.
그런데 문제
공격자가 중간에서:
"제가 네이버입니다"
하면서 자기 공개키 보내면?
그럼 브라우저는 고민함
"이 공개키가 진짜 네이버 것인지
어떻게 믿지?"
여기서 인증서 등장
인증서는 쉽게 말하면:
"공개키 신분증"
이다.
인증서 안에는
예:
| 정보 | 의미 |
| 도메인 | naver.com |
| 공개키 | 서버 공개키 |
| 발급기관 | CA |
| 전자서명 | CA 서명 |
CA(Certificate Authority)
대표:
- Let's Encrypt
- DigiCert
- GlobalSign
CA 역할
"이 공개키는 진짜 네이버 것 맞음"
이라고 전자서명 해준다.
즉:
보증기관
역할.
그럼 CA는 누가 믿는데?
핵심 질문이다.
답:
브라우저와 OS가 기본 내장한
Root CA 목록
을 믿는다.
실제로 브라우저 안에는
엄청 많은:
신뢰 가능한 Root CA 공개키
들이 미리 저장돼 있다.
예:
- Windows
- macOS
- Android
- Chrome
- Firefox
내부에 다 있음.
브라우저 검증 흐름
1
서버가 인증서 보냄.
2
브라우저가:
CA 전자서명 검증
한다.
3
그 CA가 Root CA 목록에 있으면:
"신뢰 가능"
판단.
즉 신뢰 구조는 이렇게
브라우저
↓ 신뢰
Root CA
↓ 서명
Intermediate CA
↓ 서명
서버 인증서
이걸 Trust Chain(신뢰 체인)이라고 함
Chain of trust
왜 중간 CA를 쓰나?
Root CA는 너무 중요해서:
거의 오프라인 보관
한다.
그래서 실무 발급은:
Intermediate CA
가 담당.
브라우저는 결국 Root CA를 신뢰
즉:
"내가 이미 알고 있는 Root가
이 인증서를 보증했네"
라고 판단.
그래서 가짜 인증서가 어려움
공격자가:
자기 공개키
로 인증서 만들어도:
신뢰된 CA 서명 없음
이면 브라우저가 차단.
그래서 이런 경고 뜸
"이 연결은 안전하지 않음"
Self-Signed 인증서는?
직접 자기 자신이 서명한 인증서.
즉:
"내가 나를 믿는다"
구조.
그래서 브라우저 기본 신뢰 안 함
보통:
- 사내망
- 개발환경
에서 사용.
실제 HTTPS에서 브라우저가 확인하는 것
| 검사 | 의미 |
| CA 신뢰 여부 | 진짜 기관인가 |
| 도메인 일치 | naver.com 맞나 |
| 만료 여부 | 인증서 유효기간 |
| 폐기 여부 | 해킹돼 취소됐나 |
인증서가 깨지면 위험한 이유
만약 신뢰된 CA가 해킹되면:
가짜 인증서 발급 가능
하다.
그래서 CA 보안이 엄청 중요.
실제 역사적 사고
예전:
- DigiNotar 해킹 사건
으로 가짜 Google 인증서 발급된 적 있음.
브라우저들이 해당 CA를 신뢰목록에서 제거했다.
그래서 Root CA는 엄청 엄격
OS/브라우저에 들어가려면:
- 감사
- 보안 인증
- 운영 기준
엄청 까다롭다.
핵심 한 줄
인증서는:
브라우저와 OS가 미리 신뢰하는 Root CA가
"이 공개키는 진짜 해당 사이트 것"이라고
전자서명으로 보증하는 구조
다.
반응형
'system_fundamentals > security_cryptography' 카테고리의 다른 글
| Self-signed 문제 (0) | 2026.05.15 |
|---|---|
| CA 체계 (1) | 2026.05.15 |
| TLS Handshake 전체 흐름 (0) | 2026.05.15 |
| HTTPS는 어떻게 안전한가 (0) | 2026.05.15 |
| 권한 시스템 설계 (1) | 2026.05.15 |
댓글