(CS) TLS/SSL Handshake란

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