HTTP, HTTPS의 차이

HTTP

HTTP는 하이퍼 텍스트를 전송하기 위해 사용되는 통신 규약이다.

HTTP는 Wire Shark 같은 패킷 탐지 프로그램을 사용하면 서버로 도착하기 전에 누구나 열어볼 수 있다.

즉, 네이버에 로그인할 때, 서버에 HTTP로 접속한다면 중간에 누군가가 HTTP를 열어서 아이디와 비밀번호를 열 수 있다.

HTTPS

네이버라고 알았는데, 알고보니 네이놈일 때, 로그인하면 큰일난다. 그렇기에 기관에게서 인증 받은 사이트를 인증 위해 존재한다.

HTTPS는 기본적으로 HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에서 ‘보안’ 요소가 추가되었다는 것이 가장 큰 차이점이다.

HTTPS를 사용할 경우 서버와 클라이언트 사이의 모든 통신 내용이 암호화된다. 그러니 열어봐도 어떤 내용인지 알 수 없다.

우리가 특정 파일에 암호를 걸 때처럼 어떤 키를 설정해서 잠금을 걸고, 풀 때에도 그것을 입력해서 푸는 것을 생각해보면, 웹 서버가 키 하나를 정해 페이지를 암호화해서 사용자의 웹 브라우저로 보내고, 웹 브라우저는 그 키를 이용해서 페이지를 복원한다.

웹 서버는 하나고 사용자는 불특정 다수이기에 간단하지는 않다. 그렇다고 키를 사용자들에게 막 줘버리면 아무나 암호화를 풀 수 있게 되기에 암호화의 의미가 없다.

HTTPS는 이 상황에서 페이지를 암호화한 키가 그 페이지를 보는 특정 사용자에게만 알려지도록 한다. HTTPS는 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다.

TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작한다.


TLS

Transport Layer Security의 줄임말이다. 과거 SSL에서 발전하며 이름이 변경되었지만, SSL이란 명칭이 더 많이 사용된다.


암호화 방식