Q. SSL Handshake에 대해 설명하세요.
🧑🏻💻 Answer.
SSL Handshake는 클라이언트와 서버가 암호화된 데이터를 교환하기 위한 협상과정으로 HTTPS 통신 프로토콜에서 사용됩니다.
TCP 3 way HandShake를 우선적으로 거칩니다.
→ Client Hello: 클라이언트에서 암호화 알고리즘을 서버에게 전달
→ Server Hello: 서버는 암호화 알고리즘을 선택
→ Certificate: 서버에서 SSL 인증서를 클라이언트에게 전달
→ Server Hello Done: 서버의 작업 종료
→ Client Key Exchange: SSL 인증서가 CA 목록에 있는지 확인 후, 클라이언트가 생성한 대칭키를 SSL 인증서에 있던 공개키로 암호화하여 전달
→ ChangeCipherSpec: 클라이언트와 서버가 교환할 정보를 패킷으로 전달
→ Finished: SSL Handshake를 종료
과정이 끝나면 Client와 Server는 데이터를 암호화할 동일한 대칭키를 갖게 되며, 서로에게 각자 갖고 있는 동일한 대칭키를 통해 데이터를 암호화하여 전송하거나 데이터를 복호화합니다.