SSL(Secure Sockets Layer) 과 TLS(Transport Layer Security)는 인터넷 통신에서
데이터를 암호화하여 안전하게하기 위한 프로토콜이다.
인터넷을 통해 보안 인증이나 데이터를 공유하기 전에 신뢰를 구축하고
상대방을 인증하는 것이 중요하며 안전하고 암호화된 통신 채널을 만든다.
SSL은 몇가지 보안 결함이 있는 오래된 기술이어서 현재는 전송 계층 보안(TLS)가
기존 SSL의 취약성을 수정하여 업그레이된 버전으로 지원하고 있다.
두 프로토콜 모두 서버, 애플리케이션, 사용자 및 시스템 간의 데이터를 암호화하는
통신 프로토콜이며, 데이터를 안전하게 교환하는 것이 목적이다.
TLS는 SSL의 직접적인 후속이며 SSL은 더 이상 사용되지 않으나,
TLS 연결을 설명하는 데 SSL의 용어가 많이 쓰이며,
대부분의 SSL 및 SSL/TLS라는 용어는 TLS 프로토콜과 인증서를 나타낸다.
두 프로토콜 모두 핸드셰이크 프로세스를 용이하게 하고 브라우저와 웹서버 간에
암호화된 통신을 설정하는 디지털 인증서를 사용한다.
HTTPS는 비보안 HTTP 연결에 보안 SSL/TLS 프로토콜을 설정하였다.
웹 사이트에 연결하기 전에 브라우저는 TLS를 사용하여 웹 사이트의 TLS 또는 SSL
인증서를 확인한다. 이 인증서는 서버가 현재 보안 표준을 준수하고 있음을 보여준다.
둘의 용도는 매우 유사하나, 통신 프로토콜의 작동 방식에서 차이가 있다.
핸드셰이크란 브라우저가 서버의 SSL 또는 TLS 인증서를 인증하는 프로세스이다.
SSL 핸드셰이크는 명시적 연결인 반면 TLS 핸드셰이크는 암시적 연결이다.
SSL에서는 TLS 프로세스보다 단계가 더 많았으며, TLS는 추가 단계를 제거하고
총 암호 그룹 수를 줄여서 프로세스 속도를 높였다.
💡명시적 연결 vs 암시적 연결
구분 | 명시적 연결 (SSL) | 암시적 연결 (TLS) |
---|---|---|
보안설정 방식 | 클라이언트가 보안 연결을 요청하고 협상 시작 | 연결이 시작되면 기본적으로 보안 연결 활성화 |
사용 포트 | 일반적으로 기본 포트와 보안 포트를 나눠서 사용 | 표준 포트에서 보안이 자동 적용 |
설정 복잡성 | 상대적으로 명시적 설정이 필요하므로 복잡 | 설정이 간소화되어 자동화됨 |
예시 | HTTPS 설정 시, HTTP와 별도로 SSL 적용을 명시 | HTTPS에서 TLS가 암시적으로 적용됨 |
HTTPS(SSL 3.0 기반)에서 클라이언트가 서버에 요청을 보내고 SSL 핸드셰이크를 통해
명시적으로 보안 연결을 설정하는 반면, HTTPS(TLS 기반)에서는 포트 443에
접근하는 순간 암시적으로 보안 연결이 설정된다.
현재 모든 SSL 인증서는 더 이상 사용되지 않는다. TLS 인증서가 표준이지만
업계에서는 TLS 인증서를 지칭하는 데 SSL이라는 용어를 계속 사용하고 있다.
느린 문화적 변화로 인해 대부분의 TLS 인증서가 SSL 인증서로 잘못 명명되었으나
이미 모든 인증서는 SSL 프로토콜과 TLS 프로토콜을 모두 지원한다.
또한 TLS 1.0 및 1.1 도 2021년에 공식적으로는 더 이상 사용되지 않으며,
TLS 1.2 이상을 사용하도록 권장하고있다.