
총 4개의 Phase 로 구성되어있다. 하나씩 알아보자.

client가 사용 가능한 cipher suite 를 제시하면, server가 선택한다.
서로 client random과 server random을 전달한다.
두 값은 이후 phase 2,3 키교환을 통해서 얻을 premaster key와 함께, 암호화에 사용할 key를 만드는 재료가 된다.

RSA : RSA 암호화를 이용하여 pre-master key를 교환하는 방법이다. 암호화를 위한 서버의 RSA 공개키를 주는데, 인증서 형식으로 줌으로써 MITM 공격을 방지한다.
Anonymous DH : 인증서를 사용하지 않는 디피헬만 키 교환이다.
Ephemeral DH : 디피헬만 키 교환 + 디지털 서명이다. 서명 검증용 공개키를 인증서 형식으로 줌으로써 MITM 공격을 방지한다.
Fixed DH : 인증서 내 디피헬만 키가 표함되어 있다.

RSA : 전달받은 서버의 공개키로, Pre-master secret을 암호화하여 보낸다.
Anonymous DH : 인증서를 사용하지 않는 디피헬만 키 교환이다.
Ephemeral DH : phase 2 와 동일하다.
Fixed DH : 인증서 내 디피헬만 키가 포함되어 있다.

ChangeCipherSpec 이후 암호화 Suite는 Pending -> Active 상태가 된다.
공개키 인증서를 통해 서버를 인증하는 동시에, Pre-master Secret을 공유하게 된다.

MAC 붙이고 암호화함.