SSL/TLS 서버와 클라이언트 간 통신과정
- Client Hello : 지원 가능한 암호방식, 키교환방식, 서명방식, 압축방식 을 서버에 알린다.
- Server Hello : 지원 가능한 암호방식, 키교환방식, 서명방식, 압축방식 을 응답한다. 이때 새로운 Session ID를 할당한다.
- Server Certificate(Optional) : 서버 측 RSA 암호용 공개키가 저장된 공인인증서를 보낸다.
- Server Key Exchange(Optional) : 추가적인 키 값을 보낸다.
- Certificate Request(Optional) : 클라이언트 인증서를 요구할때 전송한다.
- Server Hello Done : 서버의 Hello 절차가 완료되었음을 알린다.
- Client Certificate(Optional) : 서버로부터의 Certificate Request 메시지에 응답한다.
- Client Key Exchange : RSA 키 교환방식인 경우 Pre-Master 키가 송신된다.
- Certificate Verify(Optional) : 자신의 서명용 개인키로 서명된 서명 값이 전송된다. 이것을 수신한 서버는 Client Certificate 메시지에 명시된 클라이언트의 서명용 공개키로 확인한다.
- (Server) Change Cipher Spec : 지금까지의 협상에 의해 결정된 암호방식, 키교환방식, 서명방식, 압축방식 을 다음부터 적용 할 것임을 알린다.
- (Server) Finished : 협상과정에서 전송된 모든 메시지에 대하여 암호방식, 키교환방식, 서명방식, 압축방식 을 적용하여 생성된 검증값을 수납한 메시지 이다.
- (Client) Change Cipher Spec : 서버와 동일한 절차로 전송된다.
- (Client) Finished : 서버와 동일한 절차로 전송된다.
- 암호화된 응용계층 메시지의 전송과정이 수행된다.