HTTP
HyperText Tranfer Protocol
인터넷에서 웹 서버와 사용자 컴퓨터에 설치된 웹 브라우저 사이에 문서를 전송하기 위한 통신규약이다.
HTTP 서버는 기본 포트인 80번 포트에서 서비스 대기중이며, 클라이언트가 80포트를 사용해서 연결하면 서버는 요청에 응답하면서 자료를 전송한다. HTTP는 정보를 ‘텍스트’로 주고 받는데 단순 텍스트로 주고 받기 때문에 네트워크에서 전송 신호를 인터셉트하는 경우 데이터 유출이 발생할 수 있다.
이런 보안상 문제를 해결해주는 프로토콜이 HTTPS이다.
HTTPS
HTTP + S(Secure Socket)
HTTPS는 사용 목적 등은 HTTP와 거의 동일하지만 데이터를 주고 받는 과정에서 ‘보안’요소가 추가된다.쉽게 말해 HTTPS를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화 된다.
웹 서버에 접속하는 사용자에게 모두 동일한 암호를 제공하는 것이 아니라 사용자마다 다른 암호를 제공해야 한다.
HTTPS 사용시 암/복호화 관련 내용을 정리하면 다음과 같다.
암/복호화를 시킬 수 있는 서로 다른 키 2개가 존재할 때 이 두개의 키는 서로 암/복호화 할 수 있다는 룰을 갖고 있다.
예를 들어, A키로 암호화하면 반드시 B키로 복호화할 수 있고, B키로 암호화 하면 반드시 A키로 복호화할 수 있다는 것. 그 중에서 하나의 키는 모두에게 공개키로 공개키 저장소에 등록해 사용하고,남은 하나의 키를 개인키로 이용해 통신한다.클라이언트는 공개키를 얻어 데이터를 암호화해서 전송하고, 서버는 개인키를 이용해 복호화한다.만약 반대로 서버가 정보를 제공하는 경우에는 개인키로 암호화한 정보를 전송하기 때문에 공개키가 있는 사용자는 누구나 정보를 알 수 있다.