본문 바로가기
system_fundamentals/security_cryptography

TLS Handshake 전체 흐름

by 죄니안죄니 2026. 5. 15.
반응형
TLS Handshake 전체 흐름TLS Handshake 전체 흐름TLS Handshake 전체 흐름
 
 
 

TLS Handshake(Transport Layer Security)는:

HTTPS 통신 시작 전에
서로를 확인하고
암호화 키를 안전하게 만드는 과정
 

이다.

쉽게 말하면:

"우리 이제부터 어떤 암호로 안전하게 대화할지 정하는 절차"
 

라고 보면 된다.


먼저 큰 그림

TLS Handshake의 목적은 4개다.

목적 설명
서버 인증 진짜 서버인지 확인
암호 알고리즘 협상 AES-GCM/ChaCha20 등 결정
키 교환 세션키 생성
안전한 통신 시작 이후 HTTPS 암호화

현대 기준(TLS 1.3) 흐름

현재 실무 대부분은:

  • TLS 1.2
  • TLS 1.3

사용.

특히 최신은 TLS 1.3 중심.


전체 흐름 먼저

1. ClientHello
2. ServerHello
3. 인증서 전달
4. ECDHE 키 교환
5. 세션키 생성
6. Finished
7. HTTPS 암호화 통신 시작
 

STEP 1 — ClientHello

브라우저가 서버에 먼저 보낸다.

예:

안녕하세요
제가 지원하는 암호 방식은:
- TLS1.3
- AES-GCM
- ChaCha20
- ECDHE
...
입니다
 

포함 내용

항목 의미
TLS 버전 TLS1.2/1.3
Cipher Suites 지원 암호 알고리즘
Random 값 키 생성용 랜덤
SNI 접속 도메인

Cipher Suite란?

예:

TLS_AES_128_GCM_SHA256
 

의미:

부분 역할
AES_128_GCM 데이터 암호화
SHA256 해시
TLS 프로토콜

STEP 2 — ServerHello

서버 응답.

좋아요
우리:
- TLS1.3
- AES-GCM
- ECDHE
사용합시다
 

결정.


서버도 Random 보냄

나중에 세션키 생성에 사용.


STEP 3 — 인증서(Certificate) 전달

서버가:

  • 인증서
  • 공개키

전달.


인증서 안에는

예:

도메인
공개키
CA 정보
전자서명
 

들어있다.


STEP 4 — 브라우저가 인증서 검증

브라우저는:

"이 서버 진짜 맞나?"
 

확인.


어떻게 검증?

CA 전자서명 검증.

예:

  • Let's Encrypt
  • DigiCert

브라우저 안에는

신뢰 가능한 CA 공개키가 미리 들어있다.

그래서:

인증서 위조 여부 검사 가능
 

여기까지 의미

"가짜 서버 아님"
 

확인 완료.


STEP 5 — ECDHE 키 교환

핵심 단계.

현재는 대부분:

Elliptic-curve Diffie–Hellman

사용.


중요한 점

AES 키를 직접 안 보냄
 

이다.


대신

클라이언트와 서버가:

각자 비밀값 계산
 

후,

공개값만 교환한다.


결과

둘 다:

같은 세션키
 

생성 성공.


왜 안전?

중간 공격자는:

  • 공개값
  • 패킷

봐도:

최종 세션키 계산 불가
 

하다.


STEP 6 — Finished 메시지

양쪽이:

"우리가 같은 키를 만들었는지"
 

검증.


여기서부터 암호화 시작

즉:

Handshake 완료
 

의 의미.


STEP 7 — HTTPS 암호화 통신

이후부터는:

  • Advanced Encryption Standard AES-GCM
  • ChaCha20-Poly1305

등으로 통신.


여기서 실제 데이터 보호

예:

비밀번호
쿠키
API 데이터
JSON
 

전부 암호화.


왜 RSA는 잘 안 보이나?

TLS 1.3에서는:

RSA Key Exchange 제거
 

됐다.

현재는:

ECDHE 중심
 

이다.


이유 — Perfect Forward Secrecy

엄청 중요.

뜻:

미래에 서버 개인키 털려도
과거 통신은 복호화 불가
 

왜 가능?

ECDHE는:

세션마다 일회용 키 생성
 

하기 때문.


TLS 1.2 vs TLS 1.3

항목 TLS1.2 TLS1.3
RSA Key Exchange 가능 제거
속도 느림 빠름
보안 좋음 더 강함
Round Trip 많음 감소

실제 패킷 흐름 느낌

ClientHello
↓
ServerHello + Certificate
↓
ECDHE Key Exchange
↓
Finished
↓
HTTPS AES-GCM 통신
 

실무에서 중요한 포인트

1. 인증서 검증 실패하면 위험

예:

인증서 무시
 

누르면 MITM 공격 가능.


2. TLS 1.0/1.1 비활성화

구형 취약점 많음.


3. Cipher Suite 중요

현재 권장:

  • AES-GCM
  • ChaCha20-Poly1305

핵심 한 줄

TLS Handshake는:

서버 신원을 전자서명으로 검증하고,
ECDHE로 안전하게 세션키를 만든 뒤,
AES-GCM으로 HTTPS 암호화 통신을 시작하는 절차
 

이다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

CA 체계  (1) 2026.05.15
인증서는 누가 믿는가  (1) 2026.05.15
HTTPS는 어떻게 안전한가  (0) 2026.05.15
권한 시스템 설계  (1) 2026.05.15
ACL  (0) 2026.05.15

댓글