지원 버전, cipher suite, SNI, ALPN, 난수와 key_share를 보낸다.
HTTP를 보내기 전에 버전, 신원, 트래픽 키를 합의한다
TLS 핸드셰이크는 사용할 암호 조합, 서버 인증서의 신뢰성, 이번 연결에만 쓸 트래픽 키를 같은 transcript 안에서 확정합니다.
핸드셰이크 진행
ordered steps선택한 규칙, 서버 인증서, 서버 key_share와 검증 메시지를 돌려준다.
이름, 체인, 서명, 기간을 확인하고 transcript 검증을 끝낸다.
HTTP 요청과 응답은 파생된 트래픽 키로 보호된 record에 실린다.
확정되는 세 가지
matrix| 결과 | 무엇을 정하나 | 왜 필요한가 |
|---|---|---|
| 협상 결과 | TLS 버전, AEAD, 해시, ALPN | 양쪽이 같은 규칙으로 record를 읽기 위해 |
| 서버 신원 | SAN 이름, 체인, 서명, 유효기간 | 중간자가 서버인 척하지 못하게 하기 위해 |
| 트래픽 키 | ECDHE 공유 비밀에서 파생한 송수신 키 | 이번 연결 데이터만 보호하기 위해 |
핵심 감각
checkpoints핸드셰이크가 끝나기 전에는 보호된 HTTP 데이터가 열리지 않는다.
중간자가 메시지를 바꾸면 Finished transcript 검증에서 드러난다.
공개키 기술은 인증과 키 합의에, 대칭키는 실제 데이터 보호에 쓰인다.