HTTP와 HTTPS 비교

woolee의 기록보관소·2022년 10월 29일
0

FE개념정리

목록 보기
17/35

HTTP (HyperText Transfer Protocol)

웹을 통해 하이퍼텍스트를 전송하는 데 사용되는 프로토콜. 웹을 통한 데이터 전송에 널리 사용되는 프로토콜(데이터 요청과 응답에 사용되는 프로토콜)이지만, 안전하지 않다. 암호화되지 않은 평문 데이터(plain text)를 전송하므로, 브라우저와 서버 사이 오고 가는 데이터를 제3자가 어렵지 않게 읽을 수 있다.

HTTP는 default port로 80을 사용한다.

TCP를 열어보면 아스키코드로 되어 있으므로 누구나 읽을 수 있다. 이 문제를 해결하기 위해 나온 게 https이다.


HTTPS (HyperText Transfer Protocol Secure)

HTTPS는 HTTP에서 데이터 암호화가 추가된 프로토콜이다. 암호화된 데이터를 전송하므로 제 3자가 데이터를 볼 수 없다.

브라우저와 서버 사이에 보안 세션이 먼저 설정되도록 한다. 실제로 SSL 같은 암호화 프로토콜이 HTTP를 HTTPS로 변환한다.

  • HTTP 통신 시에 사용하는 TCP/IP 소켓 통신에서, 일반 텍스트 대신 SSL 또는 TLS 프로토콜을 통해 데이터를 암호화하여 송수신한다.
  • 즉, http에 SSL 또는 TLS 프로토콜을 적용한 것일 뿐 완전 다른 개념이 아니다.
  • SSL 프로토콜은 과거 넷스케이프에서 개발한 프로토콜이지만 현재는 폐기되었다. TLS 프로토콜은 이걸 IETF에서 이름만 다르게 표준화하고 유지관리하는 프로토콜임. 결국 지금 우리가 쓰는 건 TLS 프로토콜이지만 SSL이 익숙하므로 혼용해서 쓰기도 한다.

HTTPS는 default port로 443을 사용한다.
http://가 아니라 https://로 시작한다.

HTTPS의 암호화 방식

데이터를 암호화하고 원본 데이터로 되돌리는 방법에 2가지가 있다.
1. 대칭키 암호화
2. 비대칭키 암호화

첫째, 대칭키 암호화 방법은 키가 1개이다. 클라이언트와 서버가 동일한 비밀키 1개를 사용해 암호화/복호화를 한다. 빠르지만 키 노출 위험성이 있기에 등장한 게 두번 째 방법.

비대칭 암호화 방법은 2개의 키를 사용한다. 공개키와 개인키. 공개키로 데이터를 암호화하면 별도의 개인키로만 해당 데이터를 복호화할 수 있다. 공개키가 노출되어도 공개키로는 암호화만 가능하고, 복호화는 불가능하므로 안전하다. 물론 2개의 키를 주고 받으므로 느리다.


HTTP와 HTTPS 비교


1. HTTP는 URL이 "http://"로 시작하고, HTTPS는 URL이 "https://"로 시작한다.
2. HTTP는 80번 port로 통신하고, HTTPS는 443번 port로 통신한다.
3. HTTP보다 HTTPS가 더 안전하다.
4. HTTP는 application layer에서 작동하고, HTTPS는 transport layer에서 작동한다.
5. HTTP는 인증서가 필요하지 않고, HTTPS는 인증서가 필요하다. 예를 들어, SSL 인증서 같은.
6. 속도 면에서 HTTP보다 HTTPS가 더 빠르다.
7. HTTPS는 검색 순위를 높인다.
8. HTTP는 데이터 해시태그를 사용해 데이터를 보호하지 않는다(data hashtags를 secure data로 사용하지 않는다). 반면 HTTPS는 데이터를 보내기 전에 일단 그 데이터를 갖고 있다가, receiver side에서 원래 상태로 되돌린다.

참고

http://와 https://의 차이점
Basics_of_HTTP
[네트워크] HTTPS (개념, SSL/TLS 암호화 과정, 장단점)

profile
https://medium.com/@wooleejaan

0개의 댓글