🤝 TLS Handshake, HTTPS 보안의 시작
HTTPS는 안전한 통신을 위해 TLS(Transport Layer Security) 프로토콜을 사용합니다.
그 시작 단계가 바로 TLS Handshake입니다.
1️⃣ TLS Handshake란?
클라이언트와 서버가 안전한 통신을 시작하기 위해 암호화 방식과 세션키를 합의하는 과정
핵심 목표:
- 사용할 암호화 알고리즘 합의
- 세션키 생성 및 교환
- 서버(및 필요 시 클라이언트) 인증
2️⃣ 기본 과정
-
Client Hello
- 클라이언트가 지원하는 TLS 버전, 암호화 알고리즘 목록, 랜덤 데이터 전송
-
Server Hello
- 서버가 사용할 암호화 알고리즘 선택, 랜덤 데이터 전송
- 서버 인증서(공개키 포함) 전달
-
키 교환
- 클라이언트가 세션키 생성
- 서버 공개키로 세션키 암호화해 전달
-
세션키 확정
- 서버가 개인키로 세션키 복호화
- 이후 대칭키 암호화로 데이터 송수신
3️⃣ TLS Handshake 도식
[Client Hello] --> [Server Hello + 인증서]
[세션키 생성 + 공개키 암호화] --> [개인키 복호화]
[세션키로 암호화된 안전한 통신 시작]
4️⃣ TLS Handshake의 장점
- 도청 방지: 세션키는 비대칭키로 안전하게 전달
- 변조 방지: 인증서로 서버 신뢰성 확보
- 성능 최적화: Handshake 이후는 대칭키로 빠른 통신
🧠 정리
- TLS Handshake는 HTTPS 보안 통신의 첫 단계
- 공개키 암호화를 통해 세션키를 안전하게 교환
- 이후는 대칭키로 빠르고 안전하게 데이터 전송