반응형
📌 1. 핵심 개념 요약
Handshake는 서버 간 또는 클라이언트-서버 간 통신을 시작할 때, 양쪽이 서로를 인식하고 통신 조건을 협의하는 초기 과정을 의미합니다.
이 과정은 보안, 데이터 전송 방식, 인증, 암호화 방식 등을 결정하는 데 사용됩니다.
즉, "우리가 통신해도 괜찮은 상태인지", "어떤 방식으로 통신할지"를 정하는 일종의 통신 약속입니다.
📚 2. 필요 배경 지식
- 네트워크 통신: 두 개 이상의 장비가 데이터를 주고받는 구조
- TCP/IP: 인터넷에서 가장 널리 사용되는 통신 프로토콜
- TLS/SSL: 보안 통신을 위한 프로토콜 (HTTPS에서 사용됨)
- 클라이언트-서버 모델: 하나가 요청하고, 다른 하나가 응답하는 구조
🚀 3. 구체적인 활용 사례
✅ 예시 1: TCP 3-Way Handshake
TCP 연결 시 3단계의 핸드쉐이크가 발생:
- SYN: 클라이언트가 서버에 연결 요청 (SYN 메시지)
- SYN-ACK: 서버가 수락 응답 (SYN + ACK)
- ACK: 클라이언트가 응답 확인 (ACK)
→ 이로써 안정적인 연결이 성립됨.
✅ 예시 2: TLS Handshake
보안 통신 시 HTTPS에서 TLS 핸드쉐이크 사용:
- Client Hello: 클라이언트가 TLS 버전, 암호화 알고리즘 제안
- Server Hello: 서버가 선택된 방식과 인증서 제공
- 키 교환: 암호화에 사용할 키 생성
- Finished: 보안 연결 완료 후 데이터 암호화 시작
🔄 4. 기초 → 심화 흐름
수준설명
기초 | TCP 3-Way Handshake: 신뢰성 있는 연결 수립 |
중간 | TLS/SSL Handshake: 암호화, 인증서 기반 보안 연결 |
심화 | Mutual TLS (mTLS): 양방향 인증, Zero Trust 아키텍처에서 활용 |
🔗 5. 관련 개념 연결
- TCP vs UDP: UDP는 핸드쉐이크 없이 연결됨 (비연결형)
- TLS vs SSL: TLS는 SSL의 후속 보안 프로토콜
- OAuth: 인증 절차에서의 핸드쉐이크 방식 존재
- WebSocket Handshake: HTTP → WebSocket 프로토콜 업그레이드 시 사용
반응형