"HTTPS"의 두 판 사이의 차이
3번째 줄: | 3번째 줄: | ||
== 개요 == | == 개요 == | ||
HTTPS는 [[WWW]] 통신 프로토콜인 [[HTTP]]의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 [[넷스케이프]] 커뮤니케이션즈 코퍼레이션이 개발했고, 전자상거래와 클라이언트-서버간 의 정보교환 시에 자주 쓰이며 암호화 프로토콜인 SSL([[TLS]]) 프로토콜을 사용하여 통신을 주고받는다. | HTTPS는 [[WWW]] 통신 프로토콜인 [[HTTP]]의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 [[넷스케이프]] 커뮤니케이션즈 코퍼레이션이 개발했고, 전자상거래와 클라이언트-서버간 의 정보교환 시에 자주 쓰이며 암호화 프로토콜인 SSL([[TLS]]) 프로토콜을 사용하여 통신을 주고받는다. | ||
+ | (여기서 말하는 TLS는 SSL의 상위버전으로 SLL이 전세계에 보급되고 공통화가 되면서국제 표준화 기구인(IETF)에서 이를 감독하기 시작했는데, 이 때 SSL 이름울 TLS로 변경했다.) | ||
+ | |||
+ | |||
== 등장 배경 == | == 등장 배경 == |
2020년 7월 28일 (화) 14:29 판
HTTPS는 HTTP 통신을 암호화하여 만든 프로토콜을 말한다. HTTPS는 HyperText Transfer Protocol over SSL(Secure Socket Layer)의 약자형태이고 443번의 포트 번호를 사용한다. 보통 "https://"와 같이 소문자로 쓴다.
개요
HTTPS는 WWW 통신 프로토콜인 HTTP의 보안이 강화된 버전이다. HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니케이션즈 코퍼레이션이 개발했고, 전자상거래와 클라이언트-서버간 의 정보교환 시에 자주 쓰이며 암호화 프로토콜인 SSL(TLS) 프로토콜을 사용하여 통신을 주고받는다. (여기서 말하는 TLS는 SSL의 상위버전으로 SLL이 전세계에 보급되고 공통화가 되면서국제 표준화 기구인(IETF)에서 이를 감독하기 시작했는데, 이 때 SSL 이름울 TLS로 변경했다.)
등장 배경
넷스케이프 커뮤니케이션즈는 1994년에 넷스케이프 내비게이터 웹 브라우저를 위해 HTTPS를 개발하였다. 원래 HTTPS는 SSL 프로토콜과 함께 사용되었다. SSL이 전송 계층 보안(TLS)으로 발전했을 때 2000년 5월 HTTPS는 공식적으로 RFC 2818에 규정되었다.
일반적으로 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않고 전송이 되었다. 즉, 데이터가 쉽게 도난당할 수 있다는 것이었는데, 이를 극복하기 위해 HTTPS 프로토콜에 SSL(보안 소켓 계층)을 사용함으로써 등장하게 되었다. 인터넷 통신이 발달함에 따라 네트워크 상에서 발생하는 전자상거래, 은행 기관인증, 개인정보를 담고있는 데이터는 타인이 쉽게 접근할 경우에는 해킹의 문제가 발생하기 때문에 암호화 프로토콜을 이용하여 통신 프로토콜을 사용하게 되었다.
특징
HTTP와의 차이
HTTPS URL은 기본적으로 "https : //"로 시작하고 포트 443을 사용하지만 HTTP URL은 기본적으로 "http : //"로 시작하고 포트 80을 사용한다. SSL 인증서를 통해 사용자가 사이트에 제공하는 정보를 암호화하는데, 쉽게 말하면 데이터를 암호로 바꾸는 의미이다. 이렇게 전송된 데이터는 중간에서 누군가 훔쳐낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없다. 그 외에도 HTTPS는 TLS(전송 계층 보안) 프로토콜을 통해서도 보안을 유지하고 TLS는 데이터 무결성을 제공하기 때문에 데이터가 전송 중에 수정되거나 손상되는 것을 방지하며, 사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증 기능도 제공한다. 서버-클라이언트간의 데이터 송수신 시 암호화와 복호화 과정을 통해 데이터를 주고받기 때문에 HTTP보다 신뢰성이 뛰어나긴 하지만 여기서 발생하게 되는 데이터의 자원소모가 발생하여 통신속도가 HTTP보다 느리다.
응용계층
HPPT(응용계층)는 TCP/IP(4계층)과 통신을 주고 받기위해 소켓을 이용하게 된다. 사실 TCP 계층과 응용계층 사이에는 어떠한 계층이 존재하지 않는데, HTTPS 프로토콜은 이 두 개의 계층 사이에 SSL 계층이 포함되어 있다. 즉, HTTPS는 SSL 위에서 프로토콜이 실행된다. SSL은 일종의 보안 계층으로 프로토콜을 실행하는데, 그 이유는 서로 다른 계층 간의 통신에서 소켓이 SSL과 연결되어 SSL이 보안 프로토콜 기능을 제안하기 때문이다.[1]HTTPS는 HTTP 헤더와 요청 / 응답 데이터를 비롯한 모든 메시지 내용을 암호화한다. 아래의 제한 항목에 설명된 가능한 CCA 암호화 공격을 제외하고 공격자는 두 당사자와 도메인 이름 및 IP 주소 간에 연결이 이루어지고 있음을 발견할 수 있어야 한다.
서버 설정
HTTPS 연결을 허용하기에 클라이언트(사용자)는 본인이 접속하는 서버가 신뢰할만한 서버인지 확인을 해야 하는데 이 신원을 보증하기 위해서는 제3자의 입장인 인증기관(Certificate Authority)을 필요로 한다. 이 인증기관은 민간기업이지만 아무나 운영할 수 없고 신뢰성이 검증된 기업만 운영을 한다. HTTPS를 연결하기에 서버의 관리자는 공개키와 개인 키를 만들고 신뢰할만한 인증기간에 비용을 지불하고 공개키를 맡긴다. 인증기관은 암호화된 서버의 공개키를 다른 클라이언트와 서버에게 제공을 하고 암호화된 공개키를 받은 서버는 해당 클라이언트에 이를 전달한다. 이 과정에서 인증기관은 해당 서버의 정보를 개인 키로 받게 된다. 클라이언트는 인증기관을 통해 인증서 리스트를 탐색하게 되고 인증기관의 이름이 같게 되면 해당 인증기관은 공개키를 얻게 된다. 얻은 데이터를 본인만의 개인 키로 복호화 한 후 정보를 받게된다.[2]
암호기술
*기밀성은 즉 프라이버시다. 기밀성은 인증되지 않은 제3자가 정보를 읽지 못하도록 정보를 보호하는 역활을 한다. 그 과정은 보통 평문이라고 하는 읽을 수 있는(듣거나 볼 수 있는) 정보 형식을 암호문이라고 하는 뒤죽박죽 읽을 수 없는 데이터 형식으로 변환하는 작업을 거친다. 이 과정을 암호화라고 한다. 이 반대의 과정(암호문을 다시 읽을 수 있는 평문으로 전환)을 복호화라고 한다. 정보를 암호화하고 복호화하는 방법에는 서버와 클라이언트간에 공통된 공개키를 가지는 대칭키 암호화 방식, 인코딩과 디코딩이 다른(암호화하고 복호화하는데 사용되는 키가 다름을 의미)공개키 암호화 방식 등이 존재한다.[3] 그렇기 때문에 암호화를 하여 사용자의 정보를 보호한다.
*무결성 HTTPS로 해결하는 또 다른 문제는 데이터 무결성이다. 즉, 전체 정보가 목적지에 도착했으며, 전송 중에 외부의 공격으로 변조되지 않았음을 보장한다. 정보가 잘 전송되었음을 보장하기 위해 메시지 다이제스트 알고리즘을 사용한다. 교환된 각 메시지의 메시지 인증 코드(message authentication codes)MAC 계산은 암호화 해싱 프로세스다. 즉 데이터가 잘 도착했는지 여부를 암호화된 메세지를 주고받음으로 확인한다.[3]
*인증 HTTPS를 통해 웹사이트의 진위 여부를 확인할 수 있다. 예를 들어, 와이파이 액세스 포인트를 운영하는 사람이 가짜 웹사이트를 브라우저에 보낼 수도 있다. HTTPS는 웹사이트가 실제 존재하는지 확인작업을 한다. 일부 인증서는라는 걸 알리기 위해 해당 웹사이트의 법적 신원을 검사하기도 한다. 인증서의 내용에는 인증서를 발급한 인증기관, 서비스를 제공하는 도메인 주소, 클라이언트가 접속하는 서버의 공개키, 공개키의 암호화 방법 등이 적혀있다.[3]
문제점
HTTPS를 사용 시 증명서를 구입해야 한다. 증명서의 구입 비용이 부담되는 서비스나 개인 웹사이트의 경우 HTTP만 선택하기도 한다. 그리고 HTTPS를 사용할 경우 처리가 늦어지게 되는 단점이 있다. 그 이유는 클라이언트 요청 시, SSL에 필요한 통신이 추가되고, 암호화 복호화 계산을 하기 때문에 서버나 클라이언트의 리소스를 추가적으로 소비하기 때문이다.[4]
최근 2019년 HTTPS를 이용한 피싱 이메일 공격이 17%증가 하였고, URL 기반 공격이 26%상승 했다고 파이어아이가 이메일 위협 보고서를 발표했다. 일반적으로 피싱 이메일은 자격 증명 정보나 신용 카드 정보를 탈취하기 위한 목적으로, 기존에 알고있는 연락처나 신뢰할 수 있는 회사를 사칭하여 이메일 수신인이 임베디드 링크를 클릭하도록 유도한다.[5]
이런 보안상의 문제를 해결하기 위해 정부는 HTTPS 사이트 접속 차단 조치를 내렸다. 하지만 "온라인상의 불법 정보를 차단하는 일은 좋은 목적에서 시행한다 해도, 표현의 자유를 의식해야 한다" 라고 지성우 성균관대 법학전문대 교수는 말했다. 이런 논란으로 인해 반대하는 국민들과 정책을 시행하려는 정부 측의 의견이 엇갈리고 있다.[6]
각주
- ↑ victolee〈[HTTPSHTTPS와 SSL인증서]〉,《티스토리》, 2017-12-10
- ↑ 정아마추어 JEONG_AMATEUR〈Http와 Https 이해와 차이점 그리고 오해(?)〉,《티스토리》, 2017-11-5
- ↑ 3.0 3.1 3.2 Vladislav Denishev, 〈HTTP에서 HTTPS로 전환하기 위한 완벽 가이드〉,《웹엑추얼리》, 2018-11-13
- ↑ 손님1, 〈10. HTTPS란?〉, 《KENDRIC's BLOG》, 2016-04-12
- ↑ 길민권 기자, 〈2019년 1분기, HTTPS 이용 악성 URL 26% ↑, 피싱 시도 17% ↑〉, 《데일리시큐》, 2019-07-16
- ↑ 김평화 기자, 〈'https' 사이트 접속차단 논란, "'불법'에 국민동의 필요"〉, 《머니투데이》, 2019-06-07
참고자료
- victolee, 〈[HTTPSHTTPS와 SSL인증서]〉,《티스토리》, 2017-12-11
- 정아마추어 JEONG_AMATEUR, 〈Http와 Https 이해와 차이점 그리고 오해(?)〉,《티스토리》, 2017-11-5
- Vladislav Denishev,〈HTTP에서 HTTPS로 전환하기 위한 완벽 가이드〉,《Smashing Magazine》, 2018-11-13
- 손님1, 〈10. HTTPS란?〉, 《KENDRIC's BLOG》, 2016-04-12
- 길민권 기자, 〈2019년 1분기, HTTPS 이용 악성 URL 26% ↑, 피싱 시도 17% ↑〉, 《데일리시큐》, 2019-07-16
- 김평화 기자, 〈'https' 사이트 접속차단 논란, "'불법'에 국민동의 필요"〉, 《머니투데이》, 2019-06-07
같이 보기