PE Notes · 보안
TLS 1.2와 1.3
2-RTT와 정적 RSA가 남긴 취약점을 1-RTT·ECDHE 전용·AEAD만 허용한 1.3이 어떻게 접었는지 핸드셰이크 표로 비교합니다.
웹 트래픽의 대부분이 HTTPS인 지금, 그 아래의 가 기밀·무결성·서버 인증을 집니다. 1.2는 오래 쓰였으나 왕복이 두 번이고, CBC·정적 RSA·재협상이 공격문을 남겼습니다. 1.3은 스위트를 줄이고 를 한 왕복으로 접습니다. 이 글은 메시지 순서와 제거된 기능을 같이 봅니다.
핸드셰이크 왕복
1.2는 ClientHello 뒤에 인증서와 키 교환이 이어지고, 클라이언트가 Pre-Master를 보낸 뒤에야 암호가 열립니다. 최소 2-RTT입니다. 1.3은 첫 Hello에 키 공유를 실어, 서버 Finished 직후 데이터를 보낼 수 있습니다.
| 비교축 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| 핸드셰이크 | 2-RTT | 1-RTT (재연결 0-RTT) |
| 키 교환 | RSA, DH, ECDH | 만 |
| 선택 (ECDHE일 때) | 항상 | |
| 암호 | CBC, RC4, 3DES 포함 | AES-GCM, CCM, ChaCha20-Poly1305 |
| MAC | 별도 HMAC | 로 통합 |
| 헬로 이후 | 평문 구간이 길다 | 서버 헬로 이후 암호 |
| 재협상·압축 | 있음 (취약 소스) | 제거 |
는 이전 티켓으로 첫 패킷에 데이터를 넣습니다. 재전송에 약해, 멱등인 GET 같은 요청에만 쓰는 것이 안전합니다. ECC 토픽의 곡선이 여기서 키 교환의 기본값이 됩니다.
1.2에 남았던 구멍
많은 사건은 구버전 호환과 CBC, 수출용 짧은 키에서 났습니다. 1.3은 원인을 스위트 목록에서 지웁니다.
| 이름 | 핵심 | 닿는 곳 |
|---|---|---|
| BEAST | CBC IV 예측 | TLS 1.0 |
| POODLE | 패딩 오라클 | SSL 3.0~1.1 |
| Heartbleed | OpenSSL 하트비트 메모리 | 구현 버그 |
| FREAK / Logjam | 짧은 RSA·DH 강제 | 수출 스위트 |
| DROWN | SSLv2로 TLS 세션 유추 | 구버전 병행 |
레코드 무결성은 1.2에서 HMAC, 1.3에서 AEAD입니다. 해시·MAC 토픽의 계층이 프로토콜 버전으로 구현된 그림입니다.
전환 때 볼 것
남기는 스위트가 곧 공격면입니다. 중간 장비가 1.3을 깨면 다운그레이드가 일어납니다. PQC 하이브리드는 1.3 키 교환 확장으로 붙는 중입니다.
| 항목 | 실무 |
|---|---|
| 서버 | 1.3 우선, 1.0/1.1 끄기, 1.2는 레거시만 |
| 0-RTT | 상태 변경 요청에 쓰지 않음 |
| 검사 장비 | TLS 종료가 다운그레이드를 만드는지 확인 |
| 다음 | Kyber 등 PQC를 하이브리드 키 교환에 병행 |
방화벽이 페이로드를 보려면 종료 지점이 생기고, 그 지점이 새 신뢰 경계가 됩니다. 제로트러스트의 기기·앱 검증과 같이 가야 중간자 장비가 허점이 되지 않습니다.