TLS과 SSL

SSL

보안 소켓 계층(SSL)은 네트워크상의 두 디바이스 또는 애플리케이션 간에 보안 연결을 생성하는 통신 프로토콜이다.

인터넷을 통해 보안 인증이나 데이터를 공유하기 전에 신뢰를 구축하고 상대방을 인증하는 것이 중요하다.

SSL은 애플리케이션이 네트워크에서 안전하고 암호화된 통신 채널을 만드는 데 사용할 수 있는 기술이다.

그러나 SSL은 몇 가지 보안 결함이 있는 오래된 기술인데, 전송 계층 보안(TLS)은 기존 SSL 취약성을 수정하는 업그레이드된 SSL 버전이다.

TLS는 SSL의 업그레이드 버전

TLS

TLS란 Transport Layer Security의 약자로, 인터넷에서의 정보를 암호화해서 송수신하는 프로토콜을 말한다.

흔히 SSL이라 부르는 것들의 대부분은 TLS이다.

SSL은 POODLE, DROWN 등의 취약점이 발견되어 현재 대부분 사용되지 않는다고 보면 된다.

TLS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS(Secure)라고 하며, 웹사이트 주소는 HTTPS로 시작한다.

기본 포트 또한 80번이 아닌 443번을 쓴다.

TLS와 HTTPS를 혼동하는 경우가 많은데, 둘은 유사하긴 하지만 다른 개념이다.

TLS는 다양한 종류의 보안 통신을 하기 위한 프로토콜이며, HTTPS는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜이다.

다시 말해 TLS는 HTTP뿐만이 아니라 FTP, SMTP와 같은 프로토콜까지 포함하며, HTTPS는 TLS와 HTTP가 조합된 프로토콜만을 가리킨다.

TLS 위에 HTTP 프로토콜을 얹은 것이 HTTPS

TLS의 동작 과정은 다음과 같다.

  1. 핸드셰이크 단계: 클라이언트와 서버는 연결을 설정하고, 서버는 자신의 신원을 증명하기 위해 디지털 인증서를 제공한다. 클라이언트는 이 인증서를 확인하여 서버의 신원을 검증한다.

  2. 키 교환 단계: 클라이언트와 서버는 암호화된 통신에 사용할 '세션 키'를 공유한다. 이 키는 통신 세션 동안에만 유효하며, 통신이 종료되면 폐기된다.

  3. 데이터 전송 단계: 클라이언트와 서버는 세션 키를 사용하여 데이터를 암호화하고 전송한다. 이렇게 함으로써 중간에 데이터를 도청하더라도 이해할 수 없게 만든다.

TLS는 또한 통신 내용의 무결성을 보장한다.

즉, 데이터가 전송 중에 변경되거나 손상되는 것을 감지할 수 있다.

이러한 이유로 TLS는 인터넷에서 안전한 통신을 위해 광범위하게 사용되고 있다.

SSL vs TLS

주요 차이점에 대해서 알아보자.

SSL/TLS 핸드셰이크

핸드셰이크는 브라우저가 서버의 SSL 또는 TLS 인증서를 인증하는 프로세스다.

이 프로세스는 양 당사자를 인증한 다음 암호화 키를 교환한다.

SSL 핸드셰이크는 명시적 연결인 반면 TLS 핸드셰이크는 암시적 연결이다.

SSL 핸드셰이크 프로세스는 TLS 프로세스보다 단계가 더 많다.

TLS는 추가 단계를 제거하고 총 암호 그룹 수를 줄여서 프로세스 속도를 높였다.

알림 메시지

SSL 및 TLS 프로토콜은 알림 메시지를 통해 오류와 경고를 전달한다.

SSL에는 경고와 치명적이라는 두 가지 알림 메시지 유형만 있다.

경고 알림은 오류가 발생했지만 연결을 계속할 수 있음을 나타낸다.

치명적 알림은 연결을 즉시 종료해야 함을 나타낸다.

또한 SSL 알림 메시지는 암호화되지 않는다.

TLS에는 닫기 알림이라는 추가 알림 메시지 유형이 있다.

닫기 알림은 세션 종료를 알린다. 또한 TLS 알림은 추가 보안을 위해 암호화된다.

메시지 인증

SSL과 TLS 모두 메시지의 진본성과 무결성을 확인하기 위한 암호화 기술인 메시지 인증 코드(MAC)를 사용한다.

레코드 프로토콜은 보안 키를 사용하여 MAC을 고정 길이 코드로 생성하고 원본 메시지에 첨부한다.

SSL 프로토콜은 MAC 생성에 MD5 알고리즘(현재는 구식)을 사용한다.

TLS는 더 복잡한 암호화와 보안에 해시 기반 메시지 인증 코드(HMAC)를 사용한다.

암호 그룹

암호 그룹은 브라우저와 서버 간의 정보를 암호화하기 위한 키를 생성하는 알고리즘 모음이다.

일반적으로 암호 그룹에는 키 교환 알고리즘, 검증 알고리즘, 대량 암호화 알고리즘 및 MAC 알고리즘이 포함된다.

보안 문제로 인해 TLS의 여러 알고리즘이 SSL에서 업그레이드되었다.

Last updated