SSL(Secure Sockets Layer)과 이를 계승한 TLS(Transport Layer Security)는 인터넷 통신 구간을 암호화하여 기밀성과 무결성을 보장하는 핵심 보안 프로토콜입니다.
초기 SSL 1.0, 2.0, 3.0은 모두 심각한 암호학적 취약점으로 인해 폐기되었으며, IETF 표준으로 정립된 TLS 1.0부터 TLS 1.3까지의 버전별 특징과 차이점은 다음과 같습니다.
TLS 1.0 (RFC 2246, 1999년)
- 배경: Netscape의 사설 표준이던 SSL 3.0을 기반으로 IETF가 표준화한 첫 번째 공식 프로토콜입니다. (내부 버전 번호: SSL 3.1)
- 특징: 기본 설계가 SSL 3.0과 거의 동일하여 상호 운용성이 높았습니다. CBC(Cipher Block Chaining) 모드 암호화 시 예측 가능한 초기화 벡터(IV)를 사용하여 취약점이 존재했습니다.
- 보안 상태: 완전 폐기 (Deprecated, RFC 8996) BEAST, POODLE 등의 공격에 취약하여 2020년 이후 모든 주요 브라우저, OS 및 공공·금융 보안 규격(PCI-DSS 등)에서 접속이 차단되었습니다.
TLS 1.1 (RFC 4346, 2006년)
- 배경: TLS 1.0의 CBC 관련 취약점(BEAST 공격 등)을 해결하기 위해 발표되었습니다.
- 특징: 예측 가능한 IV 대신 명시적 IV(Explicit IV)를 도입하여 CBC 공격을 완화했습니다. 패딩 오류(Padding Error) 처리 방식을 개선하여 암호문 해독 공격을 방어했습니다.
- 보안 상태: 완전 폐기 (Deprecated, RFC 8996) MD5, SHA-1과 같은 구형 해시 알고리즘에 의존하는 구조적 한계로 인해 TLS 1.0과 함께 공식 폐기되었습니다.
TLS 1.2 (RFC 5246, 2008년)
- 배경: 구형 해시/암호화 알고리즘의 결함을 제거하고 최신 암호학 표준을 수용하도록 전면 개편된 프로토콜입니다.
- 특징: SHA-256 지원: 취약한 MD5/SHA-1 조합을 배제하고 SHA-256 이상의 강력한 해시 함수를 기본 지원합니다.
AEAD(인증 암호화) 도입: 기밀성과 무결성을 동시에 보장하는 고속·고안전성 암호화 모드인 AES-GCM을 지원하기 시작했습니다.
Cipher Suite 협상 유연성: 클라이언트와 서버가 서명 알고리즘, 해시 알고리즘을 세부적으로 협상할 수 있게 되었습니다.
- 보안 상태: 현재 가장 널리 사용되는 필수 표준 대부분의 웹 서버(Nginx, Apache, Tomcat 등) 및 레거시/최신 인프라 전반에서 기본 권장 프로토콜로 사용됩니다.
TLS 1.3 (RFC 8446, 2018년)
- 배경: 지난 20년간 누적된 불필요한 레거시 기능과 보안 취약 알고리즘을 과감히 제거하고, 보안성과 속도(성능)를 획기적으로 개선한 최신 표준입니다.
- 특징: 1-RTT 핸드셰이크 (속도 개선): 기존 TLS 1.2는 암호화 연결 수립까지 왕복 2회(2-RTT)가 필요했으나, TLS 1.3은 왕복 1회(1-RTT)만으로 핸드셰이크를 완료하여 연결 지연(Latency)을 절반으로 단축했습니다.
0-RTT (Early Data): 이전에 방문한 사이트에 재연결할 때 첫 요청부터 암호화 데이터를 즉시 전송할 수 있는 세션 재개 기능을 지원합니다.
취약 알고리즘 완전 제거: RSA 키 교환 방식 제거 (정적 RSA 키 교환 삭제)
CBC 모드, RC4, DES, 3DES, MD5, SHA-1 등 취약 요소 전면 삭제
오직 PFS(완전 순방향 비밀성, Forward Secrecy)을 보장하는 DHE/ECDHE 키 교환과 현대적인 AEAD 암호화(AES-GCM, ChaCha20-Poly1305)만 허용합니다.
- 보안 상태: 현재 가장 널리 사용되는 필수 표준 대부분의 웹 서버(Nginx, Apache, Tomcat 등) 및 레거시/최신 인프라 전반에서 기본 권장 프로토콜로 사용됩니다.
- ...