HTTPS와 S-HTTP의 차이점
① https
먼저 사전적 정의를 시작으로 알아보도록 하겠습니다.
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)는 하이퍼 텍스트 전송 규약(HTTP) 계층 아래의 SSL 서브 계층에서 사용자 페이지 요청을 암호화, 복호화하는 브라우저에 설치된 넷 스케이프 웹 프로토콜. TCP/IP에서 HTTP 포트 80 대신에 포트 443을 사용하고, SSL은 RC4 스트림 암호 알고리즘 용으로 40Bit 키 크기를 사용한다. 넷 스케이프 브라우저에서 https://URL로 페이지를 지정하면 HTTPS는 그것을 암호화하고, 도착된 https://URL은 HTTPS 서브 계층에서 복호화된다. HTTPS와 SSL은 사용자의 송신자 인증을 위해 서버로부터 X.509 디지털 인증서 사용을 지원한다.
사전적 정의의 단어가 어렵지만 자세히 읽어보시면 쉽게 이해하실 수 있으실거라 생각됩니다. 쉽게말하자면, HTTP에 SSL을 합친것이 바로 HTTPS입니다.
인터넷의 URL을 예시로 간단하게 설명해보겠습니다.
https://www.naver.com
사용자는 http라는 통신 문법으로 www에 있는 naver라는 이름의 아이와 인터넷 연결을 통해 이야기하고 자료를 주고 받고 하고싶어합니다. 이때, http라는 문법에 다른사람들이 엿보거나 훔쳐갈 수 없도록 SSL이라는 도구를 이용해 안전성과 보안성을 높입니다. 그리하여 http라는 통신 문법과 SSL이란 보안 도구를 합쳐 https라는 이름의 통신 문법이 탄생하게 됩니다.
② shttp(S-HTTP)
먼저 앞서 설명한 바와 같이 사전적 정의와 함께 알아보겠습니다.
S-HTTP(Secure Hypertext Transfer Protocol)는 웹 상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나이다. 웹 상에서 네트워크 트래픽을 암호화하는 것에는 주로 2가지 방법을 사용하는데 한 가지는 S-HTTP이고 다른 하나는 SSL(Secure Socket Layer)이다. S-HTTP는 클라이언트와 서버간에 전송되는 모든 메시지를 각각 암호화 한다. S-HTTP에서 메시지 보호는 HTTP를 사용한 애플리케이션에 대해서만 가능하다.
정의를 잘 읽어보시면 https와의 차이점을 찾아보실 수 있으실거라 생각됩니다. shttp와 https의 차이점은 바로 암호화 방식에서의 차이입니다. https의 암호화 방식은 스트림으로서 모든 통신의 데이터를 암호화하는 방식이지만, shttp는 SSL을 사용하지 않고, http와 같은 포트를 사용하면서 Message 단위로 암호화를 하게됩니다.
둘의 차이를 좀 더 쉽게 설명해보겠습니다.
ex) [송신] 나는 밥을 먹는다.
라는 문장이 있다면 https는 1fae8afs153fesf5s135af3라고 모든것이 암호화되어 전송된다고 가정한다면, shttp는 [송신] a4e6s8f4ase86ffsd15라고 메시지 단위로만 암호화를 하여 전송하고 수신하는 방식입니다.
-----------------------------------------------------------------------------------------------------------------------------------
S-HTTP (Secure HTTP)
S-HTTP는 월드와이드웹 상의 파일들이 안전하게 교환될 수 있게 해주는 HTTP의 확장판이다. 각 S-HTTP 파일은 암호화되며, 전자서명을 포함한다. S-HTTP는 잘 알려진 또다른 보안 프로토콜인 SSL의 대안이다. 두 가지의 주요 차이점은, S-HTTP는 틀림없는 사용자라는 것을 입증하기 위한 인증서를 클라이언트에서 보낼 수 있는 반면에, SSL에서는 오직 서버만이 인증할 수 있다는 점이다. S-HTTP는 은행을 대리해 서버가 있는 곳, 또는 사용자ID와 패스워드를 사용하는 것보다 좀더 안전한 사용자로부터 인증이 필요한 상황에서 보다 많이 사용될 것 같다.
S-HTTP는 어떠한 단일 암호화 시스템을 사용하지 않지만, RSA 공개키/개인키 암호화 시스템은 지원한다. SSL은 TCP 계층보다 더 상위의 프로그램 계층에서 동작한다. S-HTTP는 HTTP 응용의 상위 계층에서 동작한다. 두 개의 보안 프로토콜들 모두가 한 사용자에 의해 사용될 수 있지만, 주어진 문서에 대해서는 오직 그중 하나만이 사용될 수 있다. Terisa Systems은 인터넷 보안도구 내에 SSL과 S-HTTP 모두를 포함한다.
AOL, 컴퓨서브, IBM, 넷스케이프, Prodigy, 그리고 Spyglass 등이 S-HTTP를 지원한다. 새로 나오는 브라우저들은 SSL과 S-HTTP를 모두 지원한다. S-HTTP는 IETF에 표준안으로 상정되었다. RFC 2660에 S-HTTP에 대해 자세한 설명이 나와있다.
-----------------------------------------------------------------------------------------------------------------------------------
sHTTP는 각각의 메시지를 안전하게 전송하기 위해 사용하며, 웹상의 파일들이 안전하게 교환될 수 있도록 해주는 HTTP의 확장판(HTTP만 지원하는 한계점)이다. HTTP를 캡슐화하면서도 HTTP와 같은 Message Base 프로토콜이며, HTTP와 동일한 요청(Request)과 응답(Response) 구조를 이용한다. SSL이 전송계층에서 작동하는 것에 비해 sHTTP는 응용계층에서 보안 기능을 제공하므로 더 효율적이다. (shttp://형식)