테마
09. HTTPS와 웹서비스 보안
학습 목표
- HTTPS = HTTP + SSL/TLS임을 설명할 수 있다.
- HTTPS 통신의 전체 흐름을 순서대로 그릴 수 있다.
- 웹 서비스 구조에서 인증서 설치 위치의 중요성을 이해한다.
- DMZ, WAF, 웹서버, WAS, DB의 계층 구조를 파악한다.
- 공인 인증서와 민간 인증서의 차이를 설명할 수 있다.
전체 구조
1. HTTPS란?
HTTP + SSL/TLS = HTTPS
| 항목 | HTTP | HTTPS |
|---|---|---|
| 암호화 | 없음 (평문) | 있음 (SSL/TLS) |
| 인증서 | 없음 | 있음 (X.509) |
| 포트 | 80 | 443 |
| 도청 가능 | 가능 | 불가능 (암호화) |
| MITM | 취약 | 인증서로 방어 |
SSL(Secure Sockets Layer)은 오래된 이름이고, 현재는 **TLS(Transport Layer Security)**가 표준이다. 하지만 관습적으로 "SSL 인증서"라는 표현을 계속 사용한다.
2. HTTPS 통신 전체 흐름
지금까지 배운 모든 것이 합쳐진 최종 흐름이다.
단계별 요약
핵심: 비대칭키는 검증과 키 교환에만 사용하고, 실제 데이터는 **대칭키(세션 키)**로 암호화한다. 이것이 하이브리드 암호의 실전 적용이다.
3. 웹 서비스 구조와 인증서 설치 위치
일반적인 웹 서비스 계층 구조
용어 설명
| 구성 요소 | 설명 |
|---|---|
| DMZ | 비무장지대. 외부에 노출되지만 내부망과 분리된 영역 |
| WAF | Web Application Firewall. 웹 공격을 차단하는 방화벽 |
| 웹서버 | 정적 파일 제공 (Nginx, Apache) |
| WAS | 애플리케이션 로직 처리 (Tomcat, Node.js) |
| DB | 데이터 저장소 |
인증서는 어디에 설치하는가?
이것이 웹 서비스 보안 분석에서 가장 중요한 질문이다.
인증서 설치 위치에 따라 암호화 구간이 달라진다.
| 설치 위치 | 암호화 구간 | 내부 통신 |
|---|---|---|
| WAF에 설치 | PC ↔ WAF | WAF ↔ 웹서버: 평문 가능 |
| 웹서버에 설치 | PC ↔ 웹서버 | 웹서버 ↔ WAS: 평문 |
| WAF + 웹서버 | PC ↔ WAF, WAF ↔ 웹서버 | 내부까지 암호화 |
실무 팁: SSL 인증서가 어디에 설치되어 있는지를 찾으면, 웹 서비스의 보안 구조를 빠르게 파악할 수 있다.
TLS Termination
인증서가 설치된 곳에서 TLS가 종료(termination)된다. 그 뒤는 평문 통신일 수도 있다.
4. 공인 인증서와 민간 인증서
한국의 인증 생태계 변화
과거에는 공공기관만 CA 역할을 할 수 있었다. 법 개정 이후 민간 기업도 CA가 될 수 있게 되었다.
은행 인증서의 작동 원리
우리은행과 KB국민은행이 같은 CA를 사용하므로, 한 은행에서 발급받은 인증서를 다른 은행에서도 사용할 수 있다.
공인 vs 민간 비교
| 항목 | 공인 인증서 | 민간 인증서 |
|---|---|---|
| CA | 국가 기관 | 민간 기업 |
| 예시 | 공인인증서 | 카카오, 네이버, 은행 인증서 |
| 목적 | 본인 확인, 법적 효력 | 본인 확인, 편의성 |
| 저장 | PC, USB에 파일로 저장 | 앱, 클라우드 |
개인 인증서에 저장되는 것
개인에게 발급되는 인증서의 목적은 **암호화 통신이 아니라 본인 확인(인증)**이다.
5. SSL 인증서 확인하기
브라우저에서 HTTPS 사이트에 접속하면 인증서를 확인할 수 있다.
인증서에서 확인할 수 있는 정보:
- 서명 알고리즘: SHA256 (해시) + RSA (비대칭키) → 지금까지 배운 것!
- 공개키: 서버의 공개키 (ECC 또는 RSA)
- 발급자: CA 이름
- 유효기간: 인증서의 수명
핵심 암기 포인트
HTTPS: HTTP + SSL/TLS. 암호화 통신 + 인증서 기반 검증.
통신 흐름: TCP 연결 → TLS 핸드셰이크(인증서 전달) → 인증서 검증 → 세션 키 교환 → 대칭키 통신.
인증서 설치 위치: WAF 또는 웹서버. 설치 위치 = TLS termination 지점 = 암호화 구간 결정.
DMZ: 외부에 노출되는 영역. WAF를 여기에 배치.
공인 vs 민간: 과거 국가 기관만 CA → 현재 민간 기업도 CA 가능.
개인 인증서: X.509 인증서 + 개인키 세트. 목적은 본인 확인(인증).
확인 질문
- HTTPS에서 비대칭키와 대칭키 각각 어느 단계에서 사용되는가?
- TLS Termination이란 무엇이며, 왜 인증서 설치 위치와 관련이 있는가?
- WAF에 인증서를 설치하면 내부 구간(WAF↔웹서버)의 통신은 어떤 상태인가?
- 우리은행에서 발급받은 인증서를 KB국민은행에서 사용할 수 있는 이유는?
- 브라우저에서 SSL 인증서를 열었을 때 "SHA256withRSA"라고 적혀 있다면, 이것은 무엇을 의미하는가?