본문 바로가기

IT상식

HTTP/HTTPS 및 WS/WSS 차이점 알아보기

728x90

[ HTTP 와 HTTPS 차이점 ]

* 웹 싸이트 접속 시 URL 맨 앞에 있는 http:// 또는 https:// 는 서버와 통신하기 위한 통신 규칙을 뜻한다. 즉 HTTP 프로토콜 또는 HTTPS 프로토콜을 사용한다는 의미 한다.

* 웹에서 사용되는 프로토콜은 HTTP 이외에도 FTP, SMTP 등 각 서비스에 맞는 통신 규약이 정의되어 있다.

* HTTPS는 HTTP 뒤에 'S'가 붙는데 이는 보안(Secure)을 의미하며 차이점은 인증서의 유무이다.

* HTTP 통신 시에는 PC의 브라우저와 웹서버 간에 주고받는 데이터가 노출되는 위험이 있기 때문에 이러한 부분을 보완하기 위해 데이터를 암호화시켜 주는 것이 HTTPS인 것이다.

* HTTPS로 통신하는 경우 중간에 헤커가 데이터를 취득하더라도 내부의 정보를 볼 수 없게 된다.

* 초기에는 은행이나 공공기관 등 민감한 정보를 다루는 사이트만 HTTPS를 적용하였으나 최근에는 개인정보의 중요성으로 거의 대부분의 웹사이트는 HTTPS를 사용하고 있다.

 

[ HTTPS ]

* HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발한 넷스케이프 웹 프로토콜 이다.
* HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다.

* HTTPS의 기본 TCP/IP 포트는 443이다.

* 초기에 HTTPS는 SSL 프로토콜과 함께 사용되었으나, SSL이 전송 계층 보안(TLS)으로 발전했을 때 2000년 5월 HTTPS는 공식적으로 RFC 2818에 규정되었다.

* HTTPS를 사용하는 사이트는 방문자의 개인 정보를 TLS 암호화로 보호한다.

 

[  VPN ]

* 인터넷망을 이용하지만 가상으로 사설망 네트워크를 구성하여 사용되는 통신망을 말한다.

* 원격지에 있는 단말기 2대가 인터넷망을 이용하고 있지만, 각 단말기 앞단의 라우터에 VPN 프로토콜을 사용하여 마치 전용선으로 두 단말기가 직접 연결된 것처럼 구현할 수 있다.

* Intra, 유니콘 https, GoodbyeDPI 등은 단순히 https·SNI 검열을 우회해 주는 프로그램일 뿐, VPN에 속하지 않는 것들이다.

* 이들은 운영체제에서 제공하는 VPN 클라이언트 기능을 이용하여 기기에서 발생하는 통신 패킷들을 받은 뒤에 GoodbyeDpi처럼 변조 및 파편화(유니콘 HTTPS)(Intra 옵션)하거나, 그중 DNS 쿼리 패킷만 골라서 TLS로 암호화(Intra)할 뿐이다.

* 따라서 접속한 사이트 서버와의 통신 자체는 별도의 VPN 서버를 거치지 않으며, 사용자의 IP도 그대로 전달된다.

* 즉 사용자가 어느 사이트에 접속했는지 ISP가 알 수 있으며 서버에는 사용자의 IP가 그대로 남아있다.

 

[ SNI ]

* SNI(Server Name Indication)은 최근 정부가 해외 불법사이트 접속을 막기 위해 도입하였고 필드 차단 방식에 대해 반대 여론도 있다.

* 기존 차단 방식은 ISP(Internet Service Provider)가 이용자의 일반 페이지(http) 접속 패킷을 들여다보고 분석해 해당 사이트 주소가 블랙리스트와 일치하면 접속차단사이트(warning.or.kr)로 접속을 유도하여 차단한다.

* 반면 ‘https’로 시작하는 사이트 접속은 인터넷 보안 표준인 TLS(Transport Layer Security) 통신 기술로 이루어지기 때문에 http 차단에 활용되는 ‘패킷 스니핑’이 불가능하다. URL 주소를 포함해 주고받는 데이터를 암호화하기 때문이다. 따라서 정부 차단시스템에서도 차단할 URL 정보를 확인할 수 없었다.

* SNI 필드 차단 방식은 https 접속 과정에서 필요로 하는 ‘핸드셰이크’ 과정을 이용하는 방법이다. 

* 서버가 사용자에게 SSL 인증서를 요청할 때 노출되는 서버 네임을 잡아낸다. SNI는 암호화되지 않은 평문으로 전송되기 때문에 ISP가 이를 인지할 수 있는 것이다.

* ISP는 인터넷을 쓰는 길목이기 때문에 누구랑 암호통신을 하는지, 어떤 방식으로 암호통신을 하는지 알리는 과정에서 굉장히 많은 정보가 유출된다.

* https를 쓰건, SNI 필터링을 하건 ISP가 볼 수 있는 사용자 정보는 이미 충분히 많다는 의미다. 

 

[ SSL ]

* SSL은 디지털 인증서라고도 하는데 브라우저 또는 사용자의 컴퓨터와 서버 또는 웹사이트 간에 암호화된 연결을 수립하는 데 사용된다.

* 웹사이트 URL에 https가 붙어 있으면 SSL이 적용되어 있다.

 

[ WS 와 WSS 차이점 ]

* 웹소켓(WebSocket)은 하나의 TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜이다.

* 주로 웹사이트에서 파일 전송 등에 사용된다.

* server와 client 간의 websocket 연결은 HTTP 프로토콜을 통해 이루어진다.

* handshake 과정이 성공적으로 끝나면 HTTP를 webSocket 프로토콜로 바꾸는 protocol switching 과정이 진행된다.

* webSocket을 위한 새로운 소켓이 만들어지고 이 소켓을 이용해 통신한다.
* WS(WebSocket)는 일반 webSocket 으로 ws://로 시작되고, WSS(WebSocket Secure)는 SSL이 적용된 webSocket 으로 wss://로 시작된다.