HTTPS(Hyper Text Transfer Protocol Secure)
✒️ 2025-05-31 00:05 내용 수정
HTTPS(Hyper Text Transfer Protocol Secure)
참고 자료 : 위키백과 HTTPS, wikipedia HTTPS
HTTP의 보안 버전
- TCP를 사용하고, 프로토콜 포트 번호는 443번이다.
- TCP/IP의 가장 높은 계층인 응용 계층에서 동작한다.
- 전송 전 HTTP 메시지를 암호화하고, 메시지 도착 전에 복호화하는 TLS 보안 프로토콜도 응용 계층에서 동작한다.
- 네트워크 참고.
- URI(Uniform Resource Identifier) Scheme은
HTTPS를 사용하며, syntax는 HTTP Scheme과 동일하다.- 자원을 요청하는 방법은 HTTP와 HTTPS 모두 같다.
https://domain:port/path?param=value#anchor
HTTPS와 HTTP의 차이
참고 자료 : SSL/TLS 주요 보안 이슈, wikipedia Transport Layer Security, AWS SSL과 TLS의 차이점
- HTTP와 달리 HTTPS는 데이터의 암호화와 인증을 제공한다.
- 접근하는 웹 사이트의 인증과 데이터 교환 시 개인 정보 보호화 무결성을 보장하기 위해 사용한다.
- HTTP는 80번 포트를, HTTPS는 443번 포트를 사용한다.
SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)
- SSL과 TLS는 컴퓨터 네트워크에 통신 보안을 제공하는 프로토콜이다.
- 인터넷 상에서 데이터를 안전하게 주고 받을 수 있는 프로토콜이다.
| 항목 | SSL | TLS |
|---|---|---|
| 개발 시기 | 1990년대 초반 | 1999년 이후 |
| 최신 버전 | SSL 3.0 (더 이상 사용되지 않음) | TLS 1.3 (2018년 발표) |
| 보안 수준 | 낮음 (여러 취약점 존재) | 높음 (보안 강화 및 취약점 보완) |
| 암호화 알고리즘 | MD5 등 구식 알고리즘 사용 | HMAC, SHA-256 등 최신 알고리즘 사용 |
| 핸드셰이크 과정 | 복잡하고 느리며 단계가 많음 명시적 연결 |
간소화되어 빠름 암시적 연결 |
| 알림 메시지 | 경고, 치명적 | 경고, 치명적, 닫기 |
| 메시지 인증 방식 | MAC | HMAC |
| 지원 여부 | 대부분의 시스템에서 지원 중단 | 현재 웹 보안의 표준으로 널리 사용됨 |
암호화
- SSL이나 TLS 프로토콜을 사용하여 세션 데이터를 암호화한다.
- HTTP와 달리 SSL/TLS로 된 암호화 계층이 추가되어 통신을 보호한다.
- 서버만 인증된 것처럼 통신의 한 쪽만 인증된 상태여도 보안 기능을 제공한다.
- 데이터 암호화를 통해 도청이나 man-in-the-middle attacks로부터 데이터를 보호한다.
- man-in-the-middle-attacks(MITM attack) : 공격자가 사용자와 서버 간의 통신을 중간에서 가로채어 정보를 엿보거나 조작하는 공격이다.
- HTTPS는 HTTP를 TLS위에 완전히 탑재하여 기본 HTTP의 프로토콜의 모든 부분을 암호화할 수 있다.
- URL, Query Parameter, Header, Cookie가 포함된다.
- 하지만 웹사이트 주소(domain)과 포트 번호는 TCP/IP 프로토콜의 일부이기에 이 부분의 노출을 방지할 수 없다.
인증
- 웹 브라우저는 소프트웨어에 미리 설치된 신뢰할 수 있는 인증 기관(Certificate Authorities, CA)에서 발급된 인증서를 통해 HTTPS 연결을 신뢰한다.
- 만약 유효하지 않은 인증서를 받을 경우 사용자에게 경고하는 알림창을 표시한다.
데이터 무결성
- HTTPS는 전송 중인 데이터가 변경되거나 손상되지 않았음을 보장한다.
- TLS는 메시지 인증 코드들 사용하여 데이터의 무결성을 검증한다.