🐬 HTTP
HTTP
HTTP : Hypertext 인 HTML을 전송하기 위한 통신규약
서버/클라이언트 모델을 따라 인터넷 상에서 정보를 주고 받기 위한 규칙이다.
애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다.
하지만 HTTP은 암호화되지 않은 방법으로 데이터를 전송하여 악의적인 감청과 데이터 변조가 가능하다. 이를 해결하기 위해 등장한 것이 HTTPS
- 개념
- HyperText Transfer Protocol
- 웹 상에서 클라이언트와 서버 간에 요청/응답(request/response)으로 정보를 주고 받을 수 있는 프로토콜
- 특징
- 주로 HTML 문서를 주고받는 데에 쓰인다.
TCP
와 UDP를 사용하며, 80번 포트
를 사용한다.
- 비연결(Connectionless)
- 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 끊긴다.
- 무상태(Stateless)
- 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며 상태 정보를 유지하지 않는다.
HTTP 장점
- HTTP는 인터넷 또는 다른 네트워크의 다른 프로토콜을 통해 구현될 수 있습니다.
- HTTP 페이지는 빠르게 액세스할 수 있도록 컴퓨터와 인터넷 캐시에 저장됩니다.
- 플랫폼에 구애받지 않아 cross-platform porting 가능
- runtime support가 필요하지 않습니다.
- 방화벽에 사용 가능합니다! 글로벌 응용 프로그램이 가능합니다.
- Connected-Oriented 하지 않아 세션 상태 및 정보를 생성하고 유지하기 위한 네트워크 오버헤드가 없습니다.
🐬HTTPS
HTTPS = HTTP + 암호화 + 증명서 + 완전성 으로 HTTP의 보안적 약점을 보완한 프로토콜이다.
약어에서의 "S"가 원래 SSL(Secure Socket Layer)의 약자였지만 SSL 버전 3.1부터 TLS(Transport Layer Security)로 명칭이 바뀌고 TLS와 혼용하고 있다. TCP의 연결이 이루어진 후 TLS를 통해 암호화 설정이 되고 통신을 하는 방식이다.
- 개념
- HyperText Transfer Protocol over Secure Socket Layer
- 또는 HTTP over TLS, HTTP over SSL, HTTP Secure
- 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전의 프로토콜
- 특징
- HTTPS의 기본
TCP/IP
포트로 443번 포트
를 사용한다.
- HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, 웹 상에서 정보를 암호화하는 SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다.
- TLS(Transport Layer Security) 프로토콜은 SSL(Secure Socket Layer) 프로토콜에서 발전한 것이다.
- 두 프로토콜의 주요 목표는 기밀성(사생활 보호), 데이터 무결성, ID 및 디지털 인증서를 사용한 인증을 제공하는 것이다.
- 따라서 데이터의 적절한 보호를 보장한다.
- 보호의 수준은 웹 브라우저에서의 구현 정확도와 서버 소프트웨어, 지원하는 암호화 알고리즘에 달려있다.
- 금융 정보나 메일 등 중요한 정보를 주고받는 것은 HTTPS를, 아무나 봐도 상관 없는 페이지는 HTTP를 사용한다.
HTTPS 가 필요한 이유 : 암호 기술
중간에서 정보를 볼 수 없도록 주고받는 정보를 암호화하는 방법인 HTTPS를 사용
기밀성, 무결성, 인증이 HTTPS에만 한정된 것은 아니다. 이러한 특징은 암호 기술의 핵심 개념이다.
-
기밀성
- HTTPS는 인터넷과 같은 공공 매체에서 두 참여자간의 통신을 보호한다.
- 기밀성
Confidentiality
은 프라이버시다. 즉, 기밀성은 인증되지 않은 제3자가 정보를 읽지 못하도록 보호한다.
- 암호화 와 복호화의 과정을 걸친다.
ex) HTTPS가 없다면 와이파이 엑세스 포인트를 운영하는 사람은 엑세스 포인트 사용자가 온라인에서 사용하는 신용카드, 주민등록번호와 같은 개인정보를 볼 수 있다.
-
무결성
- HTTPS는 변조되지 않은 정보로 목적지에 도달하게 함
(1)전체 정보가 잘 도착했으며, (2)전송 중에 누가 변조하지 않았음을 보장한다.
ex) 와이파이가 웹사이트에 광고를 추가하거나, 대역폭을 절약하고자 이미지 품질을 저하시키거나, 읽는 기사의 내용을 변조할 수 있지만, HTTPS는 웹사이트를 변조할 수 없도록 한다.
-
인증
- HTTPS를 통해 웹사이트 진위 여부를 알 수 있음.
- 공개 키 인프라의 실제 애플리케이션이 갖는 문제는 양쪽 당사자가 (물리적으로 떨어져 있는) 상대편이 실제로 누구인지 알 방법이 없다는 것이다. 그래서 상대편의 신원을 보증하기 위해 상호 신뢰할 수 있는 제3자, 즉 인증 기관certificate authority, CA을 이용한다.
ex) 와이파이 액세스포인트를 운영하는 사람이 가짜 웹사이트를 브라우저에 보낼 수도 잇는데, HTTPS는 이 사이트가 실제 사이트인지 확인한다.
HTTPS의 장단점
- 장점
- 보안 : 네트워크 상에서 열람, 수정이 불가능하므로 안전하다.
- SEO(검색엔진최적화)에 유리하여 마케팅 측면에서도 HTTPS는 유리하다.
- 검색시 HTTPS는 우선순위를 차지하고 있다. 동일 키워드의 사이트에서 HTTP사이트보다 HTTPS 사이트가 더욱 우선 순위를 차지한다. 따라서 개인정보를 사용하지 않는 사이트더라도 검색 최적화를 위해 https의 사용이 유리하다.
- 단점
- 암호화를 하는 과정이 웹 서버에 부하를 준다.
- HTTPS는 설치 및 인증서를 유지하는데 추가 비용이 발생한다.
- HTTP에 비해 느리다. ⇒ 오늘날에는 거의 차이를 못느낄 정도이다.
- 인터넷 연결이 끊긴 경우 재인증 시간이 소요된다.
- HTTP는 비연결형으로 웹 페이지를 보는 중 인터넷 연결이 끊겼다가 다시 연결되어도 페이지를 계속 볼 수 있다.
- 그러나 HTTPS의 경우에는 소켓(데이터를 주고 받는 경로) 자체에서 인증을 하기 때문에 인터넷 연결이 끊기면 소켓도 끊어져서 다시 HTTPS 인증이 필요하다.
출처