Hypertext Transfer Protocol, 클라이언트와 서버 간 통신하기 위한 프로토콜이다.
TCP/IP를 이용하는 응용 프로토콜
연결 상태를 유지하지 않는 비연결성/무상태 프로토콜
요청/응답 방식으로 작동
Hypertext Transfer Protocol Secure, 기존 HTTP보다 더 안전한 보안용 프로토콜이다.
보안 기능의 원리를 알기 위해서 대칭키, 공개키를 알아야 한다.
암호화, 복호화 키가 동일하며 해당 키를 갖는 사람이 문서를 복호화할 수 있다.
서버에서 개인키를 보관하고, 대중에게 공개키를 공개하여 키 교환 문제 를 해결할 수 있다.
클라이언트는 서버를 신뢰하지 못해 탐색과정을 거친다. (= handshake)
클라이언트는 서버에 랜덤 데이터를 보내고, 서버는 클라이언트에 랜덤 데이터와 서버 인증서를 보낸다.
개인키로 암호화된 인증서는 브라우저에 내장된 CA 목록 중 해당하는 공개키로 복호화된다. (인증서에는 서버의 공개키가 포함되어 있다.)
공개키를 받아서 공개키 방식으로 데이터를 주고 받을 수 있지만, 다량의 데이터를 암호화하는데 무리가 있기 때문에 대칭키만 전달하고 이후로는 대칭키 방식으로 데이터를 교환한다.
처음 탐색과정에서 보냈던 랜덤 데이터를 혼합해 임시 키를 만들고 서버의 공개키로 암호화되어 서버로 보내진다.
일련의 과정을 거쳐 동일한 대칭키가 만들어진다.