TLS HANDSHAKE

TLS 핸드셰이크는 보호 채널의 조건을 먼저 확정한다

HTTP 요청을 보내기 전, 양쪽은 사용할 알고리즘, 서버 신원, 이번 연결의 트래픽 키를 같은 순서로 합의합니다.
완료 후에야 애플리케이션 데이터 ClientHello → Finished → Encrypted HTTP 중간자가 메시지를 바꾸면 Finished 검증에서 해시가 맞지 않아 연결이 실패합니다.
Client
wire
Server
1. ClientHello 지원 버전, cipher suite, SNI, ALPN, 클라이언트 난수
2. ServerHello + Certificate 선택한 규칙, 서버 인증서, 키 교환 값, 서버 Finished
3. Certificate 검증 + Client Finished 이름, 체인, 서명, 기간을 확인하고 키 스케줄을 완성
4. Encrypted application data 이제 HTTP 요청과 응답은 대칭키로 보호된 TLS record에 실림
01
협상 결과 TLS 버전, AEAD, 해시, 압축 없음, ALPN 같은 연결 규칙
02
서버 신원 인증서의 SAN 이름과 공개키가 접속한 호스트와 맞는지 검증
03
트래픽 키 ECDHE 공유 비밀과 양쪽 난수에서 송신/수신 키를 파생
핵심 감각 핸드셰이크는 암호화 자체보다 “이 상대와 이 규칙으로 통신해도 되는가”를 증명하는 절차입니다.