
HTTP (Hypertext Transfer Protocol)
HTTP는 웹 브라우저와 서버 간의 데이터 전송을 위한 애플리케이션 계층 프로토콜.
하지만 보안 측면에서 몇 가지 중요한 단점이 있음
- 무상태 프로토콜
- HTTP는 요청 간 상태를 유지하지 않기 때문에, 클라이언트와 서버 간의 상호작용이 독립적으로 처리.
- 이를 보완하기 위해 쿠키나 세션과 같은 기술이 추가로 사용
- 보안 취약점:
- 암호화 부족
- HTTP는 데이터를 암호화하지 않아 도청 및 데이터 탈취의 위험이 있음
- 인증 부재
- 클라이언트와 서버가 서로를 신뢰할 수 있는 방법이 없기 때문에, 중간자 공격(Man-in-the-Middle Attack)에 취약
HTTPS (Hypertext Transfer Protocol Secure)
HTTPS는 HTTP에 SSL/TLS 암호화 계층을 추가하여 보안성을 강화한 프로토콜
- SSL/TLS 기반 보안:
- 데이터를 암호화하여 도청 및 데이터 변조를 방지
- TLS(Transport Layer Security)는 SSL의 발전된 버전으로, 더 강력한 보안 기능을 제공
- 데이터 무결성과 인증:
- HTTPS는 서버 인증서를 통해 클라이언트가 신뢰할 수 있는 서버와 통신하고 있음을 확인할 수 있음
- 데이터 무결성을 보장하여, 전송 중 데이터가 변경되지 않도록 보호
- 추가적인 이점:
- 검색엔진 최적화(SEO): HTTPS를 사용하는 웹사이트는 검색 엔진에서 우선 순위를 부여받음
- 최신 브라우저 기능 지원: Progressive Web Apps(PWAs)와 같은 최신 기술은 HTTPS를 필수로 요구
HTTP와 HTTPS의 주요 차이점
| 특징 | HTTP | HTTPS |
|---|
| 암호화 | 없음 | SSL/TLS로 암호화 |
| 인증 | 없음 | 서버 인증서를 통해 신뢰성 확보 |
| 데이터 무결성 | 없음 | 전송 중 데이터 변조 방지 |
| 성능 | 비교적 빠름 | 암호화로 인해 약간 느릴 수 있음 |
| 사용 사례 | 민감하지 않은 데이터 전송 | 민감한 정보(예: 결제 정보, 로그인 정보) 보호 |