본문으로 건너뛰기

SSL(Secure Socket Layer)

SSL이란 웹 서버와 클라이언트의 통신 암호화 프로토콜이다.

SSL이 적용되지 않은 통신의 경우 평문(Plain Text)가 그대로 전송된다. 만약 제 3자가 어떠한 방식으로든 통신 패킷을 탈취할 경우 그 내용을 쉽게 확인할 수 있다.

SSL을 적용한다면 이 문제를 기술적으로 해결할 수 있다. 요청을 암호화해서 보내므로 통신 패킷이 탈취되도 복호화 키가 없으면 원래 내용을 알 수 없다.

SSL을 보완한 것이 TLS이고 현재 사용중인 통신 보안 프로토콜은 모두 TLS이다.

SSL 통신 원리

  1. 클라이언트가 서버에 접속하면 서버인증서를 전송받는다.
  2. 클라이언트는 받은 서버 인증서를 분석하여 신뢰할 수 있는 인증서인지를 검토한 후, 서버의 공개키를 추출한다.
  3. 클라이언트가 세션키로 사용할 임의의 메시지를 서버의 공개키로 암호화하여 서버에 전송한다.
  4. 서버에서는 자신의 개인키로 세션키를 복호화하여 그 키를 사용하여 대칭키 암호방식으로 메시지를 암호화하여 클라이언트와 통신한다.

Reference