q1: TCP 핸드셰이크와 TLS 네고시에이션

a1:

TCP 핸드셰이크와 TLS 네고시에이션은 인터넷에서 데이터를 안전하고 원활하게 주고받기 위해 꼭 알아야 하는 연결 절차입니다. 각 과정을 단계별로 살펴보겠습니다.



1. TCP 핸드셰이크 (Three-way Handshake)

TCP(Transmission Control Protocol)신뢰성 있는 연결 지향 통신을 제공합니다. 이 연결을 맺기 위해 세 번의 패킷 교환을 하는데, 이를 “3-way 핸드셰이크”라고 합니다.
1. SYN (Synchronize)
클라이언트 → 서버
• “서버와 연결을 맺고 싶으니, 시퀀스 번호 X로 시작할게요
2. SYN-ACK (Synchronize-Acknowledge)
서버 → 클라이언트
• “좋습니다. 제 시퀀스 번호 Y로 시작할게요. 그리고 당신의 X에 대해서는 확인했습니다
3. ACK (Acknowledge)
클라이언트 → 서버
• “제시한 Y에 대해 확인했어요. 이제 데이터를 주고받을 준비가 완료되었습니다.

왜 3단계인가?
동기화(SYN): 양쪽이 서로의 초기 시퀀스 번호(ISN)를 교환해야 패킷의 순서와 중복을 정확히 제어할 수 있습니다.
확인(ACK): 각 단계에서 상대의 메시지를 제대로 받았음을 확인해야 연결 안정성을 보장합니다.

이 과정을 거친 뒤에야 실제 데이터 전송이 시작되며, 연결 해제 시에도 별도의 4-way 핸드셰이크(FIN/ACK 교환)가 이루어집니다.



2. TLS 네고시에이션 (TLS Handshake)

TLS(Transport Layer Security)TCP 위에서 동작하며, 암호화된 보안 연결을 맺기 위한 절차입니다. HTTPS로 접속할 때 이 과정을 거쳐 “이 사이트가 진짜인지 확인하고, 대화를 암호화하기 위한 공통키”를 만들어 냅니다.
1. ClientHello
클라이언트 → 서버
지원 가능한 TLS 버전, 암호 스위트(cipher suite), 압축 방식, 클라이언트 랜덤값 등을 전송
2. ServerHello + 서버 인증서
서버 → 클라이언트
선택된 TLS 버전, 암호 스위트, 서버 랜덤값 전송
서버가 자신의 공개키가 포함된 인증서(Certificate)를 보냄
3. 서버 키 교환(Optional)
특정 암호 스위트(e.g., Diffie-Hellman)를 사용할 때, DH 파라미터 등 추가 정보 전달
4. Certificate Request(Optional)
클라이언트 인증이 필요한 경우 클라이언트에게 인증서 요청
5. ServerHello Done
서버 → 클라이언트
• “이제 제 쪽 초기화는 끝났습니다” 신호
6. ClientKeyExchange
클라이언트 → 서버
프리마스터 시크릿(pre-master secret)을 서버의 공개키로 암호화해 전송
7. ChangeCipherSpec & Finished
클라이언트 → 서버
• “이제부터 이 세션키로 암호화를 시작할게요
핸드셰이크 메시지 무결성을 검증하기 위한 Finished 메시지 전송
8. 서버 ChangeCipherSpec & Finished
서버 → 클라이언트
서버도 동일한 세션키로 암호화를 시작하고, 핸드셰이크 검증용 Finished 메시지를 보냄

이제 대칭키 기반의 암호화된 통신이 가능해집니다.



3. TCP vs. TLS: 역할 분리

구분
TCP 핸드셰이크
- 주 목적: 신뢰성 있는 연결 설정
- 계층(OSI): 전송 계층 (Layer 4)
- 주요 교환 정보: 시퀀스 번호(ISN), ACK 확인
- 보안 여부: 암호화 없음

TLS 네고시에이션
- 주 목적: 통신 내용의 인증·암호화 설정
- 계층(OSI): 표현 계층/세션 계층 (Layer 5~7 일부)
- 주요 교환 정보: 랜덤값, 암호 스위트, 인증서, 세션 키 교환
- 보안 여부: 암호화·무결성·인증 제공


1. TCP 핸드셰이크로 “어디와 얼마나 신뢰성 있게**” 데이터를 보낼지 약속하고,
2. TLS 네고시에이션으로 “이게 정말 서버인가 / 도청이나 변조 없이 통신하자”를 확인하여
3. 실제 암호화된 데이터 전송을 시작합니다.



이처럼 TCP 핸드셰이크와 TLS 네고시에이션은 서로 보완하며, 안전하고 효율적인 인터넷 통신의 토대를 이룹니다.

반응형

+ Recent posts