SSL이란 보안 소켓 계층을 이르는 것으로, 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜이며 데이터 보안을 위해서 개발한 통신 레이어이다.
SSL은 표현계층의 프로토콜로 응용계층 아래에 있기 때문에, 어떤 응용계층의 데이터라도 암호화해서 보낼 수 있다.
HTTP는 기본적으로 평문 데이터 전송을 원칙으로 하기 때문에 개인의 프라이버시가 오가는 서비스들에 사용하기 힘들다. 따라서 HTTPS를 이용하게 되고 HTTPS는 SSL 레이어 위에 HTTP를 통과 시키게 된다.
즉 평문의 HTTP 문서는 SSL 레이어를 통과하면서 암호화 되어 목적지에 도착하고 목적지에서는 SSL 레이어를 통과하면서 복호화 되어 웹 브라우저에 전달된다.
SSL 프로토콜은 OSI 7계층 모델의 어느 한 계층에 속해서 동작하는 것이 아니라, 응용계층과 전송계층 사이에 독립적인 프로토콜 계층을 만들어서 동작하며,
이 때, 응용계층의 프로토콜들은 외부로 보내는 데이터를 TCP가 아닌 SSL에 보내게 되고, SSL은 받은 데이터를 암호화하여 TCP에 보내어 외부 인터넷으로 전달하게 된다.
전달 받을 때 역시, TCP로부터 받은 데이터를 복호화하여 응용계층에 전달하게 되는데, 이 과정에서 Application은 SSL을 TCP로 인식하고, TCP는 SSL을 Application으로 인식하기 때문에, Application과 TCP사이의 데이터 전달 방식은 기존 전달 방식을 그대로 사용하게 된다.
즉, 비대칭키 암호 방식은 대칭키 암호방식보다 상당히 느리다.
따라서 SSL은 암호화된 데이터를 전송하기 위해 대칭키/비대칭키 암호화 방식을 혼합하게 된다. 채널을 수립할 때는 공개키, 비공개키를 통해 안전한 채널을 설립하고 그 이후에는 대칭키를 통해 데이터를 암호화하여 주고 받는다.