🔐 HTTPS, SSL, TLS — 개념 정리와 차이점
웹 서비스를 운영하거나 API를 개발하다 보면 가장 자주 마주치는 개념이 HTTPS, SSL, TLS이다. 하지만 이 세 용어는 서로 혼용되기도 하고, 실제 의미가 다르게 이해되는 경우가 많다. 이 글에서는 HTTPS의 암호화 구조와 SSL·TLS의 관계를 명확히 정리한다.
1. HTTPS는 어떤 방식으로 데이터를 보호하는가?
HTTPS는 대칭키 암호화와 비대칭키 암호화를 결합한 하이브리드 구조를 사용한다.
● 비대칭키 암호화 (Public/Private Key)
- 서버의 공개키(Public Key)를 이용해 세션키를 안전하게 전달하는 데 사용된다.
- 속도는 느리지만, 키 교환 과정에서 높은 보안성을 제공한다.
● 대칭키 암호화 (AES 등)
- 실제 데이터 전송 구간에서 사용되는 암호 방식
- 빠르고 효율적이며 HTTPS 통신의 대부분을 담당한다.
비대칭키는 ‘대칭키 전달’에 사용되고,
실제 데이터 암호화는 ‘대칭키’가 담당한다.
2. SSL과 TLS의 관계
많은 개발자들이 “SSL 인증서”, “TLS 인증”이라는 표현을 사용하지만,
실제로 SSL과 TLS의 차이는 암호화 프로토콜 버전의 세대 차이에 가깝다.
✔ SSL (Secure Sockets Layer)
- 초기 웹 보안을 위해 설계된 프로토콜
- SSL 2.0, 3.0 모두 보안 취약점으로 인해 현재는 사용이 금지된 상태
✔ TLS (Transport Layer Security)
- SSL을 대체하기 위해 표준화된 최신 보안 프로토콜
- TLS 1.0 → 1.1 → 1.2(현재 표준) → 1.3(최신 권장) 으로 발전
| 프로토콜 | 상태 | 특징 |
|---|
| SSL 2.0 / 3.0 | 폐기 | 취약점 존재 |
| TLS 1.0 / 1.1 | 비권장 | 보안성 부족 |
| TLS 1.2 | 표준 | 안정적, 널리 사용 |
| TLS 1.3 | 최신 | 빠르고 보안 강화 |
3. SSL 인증서 vs TLS 인증서: 실제로 다른가?
결론은 동일하다.
HTTPS에서 사용하는 인증서는 모두 X.509 인증서이며,
업계에서는 관행적으로 “SSL 인증서”라고 부르지만 실제 통신은 TLS로 이루어진다.
‘SSL 인증서’는 명칭일 뿐, 실제 HTTPS 보안 프로토콜은 TLS다.
4. SSL과 TLS의 기술적 차이
1) 핸드셰이크 구조 개선
- TLS는 SSL보다 강력한 암호 스위트 협상 방식을 사용
- TLS 1.3에서는 핸드셰이크 메시지가 절반 이하로 줄어 성능 및 속도 향상
2) 더 강력한 보안 알고리즘
- SSL에서 사용된 취약한 CBC 기반 암호화 제거
- POODLE 등 주요 취약점 해결
- Forward Secrecy 기본 적용
3) 구현 안정성
- 최신 서버·브라우저는 SSL 지원을 완전히 종료
- TLS만 허용하는 환경이 표준
5. 핵심 정리
✔ HTTPS 암호화 구조
- 대칭키 암호화 → 실제 데이터 암호화
- 비대칭키 암호화 → 세션키 전달
- 인증서(X.509) → 서버 인증 + 공개키 제공
✔ SSL vs TLS
- SSL은 과거 프로토콜, 취약점으로 인해 사용 금지
- TLS는 SSL의 후속 버전이자 현재 표준
✔ 인증서는 동일
- SSL 인증서 = TLS 인증서 = X.509 인증서
- 차이는 이름뿐이며 기능적 차이는 없음
✨ 마무리
HTTPS 보안 통신을 이해하기 위해서는 “암호화 방식”과 “보안 프로토콜”을 구분해서 볼 필요가 있다.
오늘날 웹에서 사용되는 HTTPS 보안 구조는 전부 TLS 기반이며,
우리가 흔히 말하는 SSL 인증서는 TLS 기반 X.509 인증서라고 이해하면 된다.
필요하다면 다음 내용도 Markdown으로 이어서 만들어줄 수 있다:
- TLS 1.2 vs TLS 1.3 상세 비교
- HTTPS Handshake 흐름도
- Spring Boot / Apache / Tomcat의 TLS 설정 방법
- 인증서 교체 시 자주 발생하는 오류 정리