본문으로 건너뛰기

Q. SSL Handshake에 대해 설명하세요.

🧑🏻‍💻 Answer.


SSL Handshake는 클라이언트와 서버가 암호화된 데이터를 교환하기 위한 협상과정으로 HTTPS 통신 프로토콜에서 사용됩니다.

Request 메시지

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는 데이터를 암호화할 동일한 대칭키를 갖게 되며, 서로에게 각자 갖고 있는 동일한 대칭키를 통해 데이터를 암호화하여 전송하거나 데이터를 복호화합니다.