← 질문 목록
#149깊이 0
첫 보안 연결에는 왜 왕복이 필요한가?
암호 규칙을 합의하고 서버를 인증하며 공유 비밀에서 통신 키를 만들어야 하기 때문이다. 이 준비가 끝나야 애플리케이션 데이터를 안전하게 보낼 수 있다.
- 1. 클라이언트에서 서버로: 버전, 암호군, 키 공유를 제안한다
- 2. 서버에서 클라이언트로: 선택값, 인증서, 키 공유, 서명, Finished를 보낸다
- 3. 클라이언트에서 서버로: 인증과 Finished를 검증하고 Finished를 보낸다
TLS 1.3은 키 교환에 필요한 값을 첫 메시지부터 보내 일반적인 새 연결을 1-RTT로 줄였다. 이후 트래픽은 파생된 대칭 키로 암호화한다.
서버는 인증서의 공개 키에 대응하는 개인 키 소유를 증명한다. 브라우저는 인증서 사슬과 호스트 이름을 확인해 중간자 공격을 막는다.
세션 재개는 이전 비밀을 사용해 지연을 줄인다. 0-RTT 데이터는 재전송 공격에 노출될 수 있으므로 멱등한 요청에만 제한하는 편이 안전하다.