(CS) TLS/SSL Handshake란
- 서버는 CA(Certificate Authority)를 통해 인증서를 발급 받는다.
- 인증서에는 서버의 공개키와 서비스 정보가 담겨있고 CA 비밀키로 암호화 되어있다.
- 클라이언트가 서버로 요청(Https)을 한다.
- 서버는 클라이언트에 CA를 통해 발급받은 인증서를 보낸다.
- 클라이언트는 브라우저에 미리 저장된 리스트를 검색하여 보낸 인증서에 해당하는 CA가 있는지 확인한다.
- 해당하는 CA가 있으면 브라우저에 미리 저장된 공개키를 이용하여 인증서를 복호화한다.
- 복호화를 통해 서버의 공개키를 얻을 수 있다.
- 클라이언트에서 클라이언트와 서버측에서 받은 무작위 바이트 값으로 대칭키를 만든다.
- 대칭키는 여기서 session key로 불린다.
- 해당 값을 서버 공개키로 암호화하여 서버에 전달한다.
- 서버는 해당 대칭키를 받는다.
- 대칭키를 이용해서 서버와 클라이언트가 통신한다.