본문 바로가기

CS

[CS] HTTP와 HTTPS란?

1. HTTP란?

HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트(예: 웹 브라우저)와 서버 사이에서 데이터를 주고받는 통신 규약(프로토콜)이다.

  • 웹사이트 주소는 시작할 때, 보통 http://로 시작한다. → "이 주소는 HTTP 방식으로 통신한다"라는 뜻이다.
  • HTTP는 보안이 없다. 데이터를 평문(암호화되지 않은 상태)으로 주고받기 때문에, 내가 보내는 데이터를 누군가 중간에서 몰래 볼 수 있다.(패킷 스니핑)

 

※ 패킷 스니핑을 간단하게 설명

네트워크 상에서 다른 사람이 주고받는 데이터(패킷) 가로채서 분석하는 행위이다.

 

예를 들어, 카페에서 무료 와이파이를 사용하고 있고 HTTP 웹사이트에 로그인을 하는 상황이다.

  1. 사용자 → 웹사이트로 "아이디:hello / 비밀번호:1234"를 입력해서 전송
  2. 같은 와이파이를 사용하는 공격자가 스니퍼(sniffer)라는 프로그램을 통해 사용자의 정보를 훔쳐볼 수 있다.

같은 와이파이가 아니더라도 스니핑을 시도할 수 있는 방법은 여러가지가 있다.

 


 

2. HTTPS란?

HTTPS(HyperText Transfer Protocol Secure) HTTP에 보안을 추가한 버전이다.

 

  • HTTPS는 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 라는 암호화 기술을 사용해서 데이터를 암호화한다.
  • 그래서 누가 데이터를 중간에서 훔쳐가더라도 내용을 알 수 없다.
  • 웹사이트 주소창에 자물쇠 🔒 아이콘이 뜨는 경우가 바로 HTTPS가 적용된 웹사이트이다.

https로 보안이 적용

 

 

 

 

※ 패킷 스니핑 시도하는 경우

  • 공격자가 네트워크에서 패킷을 훔쳐보려고 해도 데이터가 암호화 되어있어서 해독이 불가능하다. ✅
  • 중간에서 데이터를 조작하려고 해도, 변조가 감지된다. ✅
  • SSL 인증서로 신뢰할 수 있는 사이트인지 확인할 수 있어서, 피싱 공격 방지 가능 ✅

 


 

3. HTTP vs HTTPS 차이점 정리

항목 HTTP HTTPS
보안성 암호화 ❌ (평문 전송) 암호화 (보안 전송)
포트번호 기본: 80번 기본: 443번
사용 프로토콜 HTTP만 사용 HTTP + SSL/TLS
데이터 보호 중간자 공격(MITM)에 취약 데이터 도청/변조 방지
인증서 사용 X 보안 인증서(SSL 인증서) 필요  
속도 조금 더 빠름  약간 느릴 수 있다. 
SEO 측면 불리함 구글 등 검색엔진에서 우대한다.

 

 


 

 

4. HTTPS는 무적인가?

아니다. HTTPS도 몇 가지 공격에 취약할 수 있다. 간단하게 알아보자.

 

1. 사용자가 접속하는 웹사이트를 조작한다.

2. SSL/TLS 프로토콜 특정 버전의 취약점을 공격한다.

3. 공격자가 가짜 사이트를 만들고 HTTPS 인증서를 발급받아 피싱(Phising) 공격을 할 수 있다.

  • 공격자가 https://faceb00k.com 같은 유사한 도메인을 사용
  • 진짜 Facebook처럼 보이도록 가짜 로그인 페이지 제작
  • 사용자가 속아서 로그인하면, 아이디/비밀번호가 탈취된다.

그 외에도 여러가지 방법이 있다.

 

HTTP보다는 HTTPS 방식이 안전하게 내 개인정보를 지킬 수 있지만, HTTPS 방식이라고 하더라도 항상 안전한 것은 아니다.