1. HTTP란?
HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트(예: 웹 브라우저)와 서버 사이에서 데이터를 주고받는 통신 규약(프로토콜)이다.
- 웹사이트 주소는 시작할 때, 보통 http://로 시작한다. → "이 주소는 HTTP 방식으로 통신한다"라는 뜻이다.
- HTTP는 보안이 없다. 데이터를 평문(암호화되지 않은 상태)으로 주고받기 때문에, 내가 보내는 데이터를 누군가 중간에서 몰래 볼 수 있다.(패킷 스니핑)
※ 패킷 스니핑을 간단하게 설명
네트워크 상에서 다른 사람이 주고받는 데이터(패킷) 가로채서 분석하는 행위이다.

예를 들어, 카페에서 무료 와이파이를 사용하고 있고 HTTP 웹사이트에 로그인을 하는 상황이다.
- 사용자 → 웹사이트로 "아이디:hello / 비밀번호:1234"를 입력해서 전송
- 같은 와이파이를 사용하는 공격자가 스니퍼(sniffer)라는 프로그램을 통해 사용자의 정보를 훔쳐볼 수 있다.
같은 와이파이가 아니더라도 스니핑을 시도할 수 있는 방법은 여러가지가 있다.
2. HTTPS란?
HTTPS(HyperText Transfer Protocol Secure) HTTP에 보안을 추가한 버전이다.
- HTTPS는 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security) 라는 암호화 기술을 사용해서 데이터를 암호화한다.
- 그래서 누가 데이터를 중간에서 훔쳐가더라도 내용을 알 수 없다.
- 웹사이트 주소창에 자물쇠 🔒 아이콘이 뜨는 경우가 바로 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 방식이라고 하더라도 항상 안전한 것은 아니다.
'CS' 카테고리의 다른 글
| 프론트엔드(Front-End)와 백엔드(Back-End)는 뭐가 다를까? (0) | 2025.04.19 |
|---|---|
| [CS] 스레드(Thread), 멀티 스레드(Multi-Thread) (0) | 2025.04.18 |
| [CS] Fetch란? (0) | 2025.04.03 |
| [CS] API란? (0) | 2025.04.01 |
| [CS] 프레임워크와 라이브러리의 차이점 (0) | 2025.03.31 |