SSL/TSL Handshake


핸드셰이크handshake의 첫 비대칭 부분이 키 교환이라고 불리며, 실제 암호화된 통신은 사이퍼 메서드cipher methods라는 알고리즘을 사용한다



속도차이때문에
메시지 암호 대칭키 알고리즘
비대칭키는 대칭키 교환하기 위해 사용


1. Client Hello - 클라이언트 random, 클라이언트가 지원하는 옵션 리스트 전송
2. Server Hello - ciper suite 결정하고 전송, server random, certificate 전송


### 순서

[Authenticated Key Exchange](https://texonom.com/authenticated-key-exchange-74968d3098cb4fb08c590833138781c7)


[key derivation](https://texonom.com/key-derivation-37d1be41b6334db49576554e92da8a31)


[Block Cipher & Data integrity](https://texonom.com/block-cipher-data-integrity-5ddaf7ac1cf8499083d0f8a55a3b1f14)



## 이후

dh
3. Server key exchange - dh parameter 생성해 private key로 signature 생성 후 전송
4. Client Key Exchange - certificate, signature 검증 후  pre mater key 유도 client parameter 보낸다
5. key derivation - premaster key 유도하고 client random, server random을 조합하여 session key를 유도합니다.


rsa
6. Client key exchange  - client certificate  검증 후 certificate public key로 암호화해서 pre master key 생성해서 서버에 전송
7. key derivation - pre-master secret과 client random, server random을 이용해 session key를 유도한 뒤, session key를 이용해 암호화된 데이터 통신








