TLS
클라이언트와 서버 간 통신을 암호화하여 기밀성, 무결성, 인증을 보장하는 보안 프로토콜입니다.
보장하는 것
| 항목 | 설명 |
| 기밀성 | 데이터를 암호화하여 제3자가 볼 수 없음 |
| 무결성 | 데이터가 중간에 변조되지 않았음을 보장 |
| 인증 | 서버(혹은 클라이언트)의 신원을 검증 |
TLS Handshake 과정 (TLS 1.3 기준)
1. ClientHello
클라이언트 → 서버: 지원하는 암호화 알고리즘, 키 교환 정보 전송
2. ServerHello + 인증서 + 완료
클라이언트 ← 서버: 선택한 알고리즘, 인증서(공개키 포함), 서버 완료 전송
3. 인증서 검증
클라이언트: CA 공개키로 인증서 서명 검증 → 서버 신뢰 O
4. 키 교환
클라이언트 → 서버: 대칭키 생성에 필요한 정보 전송
5. 대칭키 생성
양측이 동일한 대칭키 생성
6. 암호화 통신 시작
이후 모든 통신은 대칭키로 암호화
사용하는 암호화 방식
| 단계 | 방식 | 이유 |
| Handshake | 공개키 (비대칭) | 안전한 키 교환 |
| 실제 통신 | 대칭키 | 빠른 속도 |
| 인증서 검증 | 전자서명 | 서버 신원 확인 |
버전별 특징
| 버전 | 특징 |
| TLS 1.0 / 1.1 | deprecated, 사용 금지 |
| TLS 1.2 | 현재도 널리 사용, 2-RTT Handshake |
| TLS 1.3 | 현재 표준, 1-RTT Handshake, 취약 알고리즘 완전 제거 |
주요 용어
| 용어 | 설명 |
| RTT | Round Trip Time, 요청-응답 왕복 횟수 |
| Cipher Suite | 사용할 암호화 알고리즘 조합 |
| 0-RTT | TLS 1.3에서 재연결 시 Handshake 생략 가능 |
실생활 사용 예시
| 사례 | 내용 |
| HTTPS | HTTP + TLS |
| SMTPS / IMAPS | 이메일 암호화 전송 |
| FTPS | 파일 전송 암호화 |
| WSS | WebSocket 보안 연결 |
TLS는 SSL의 후속 표준으로, SSL이라는 명칭이 관습적으로 혼용되지만 실제로는 TLS가 사용됩니다. 최소 TLS 1.2 이상 사용을 권장합니다.