📌 SSL/TLS 란?
과거의 데이터는 일반적인 텍스트 형식으로 되어 있어 보안상 이슈가 있었다.
따라서 암호화 통신을 제공하기 위해 설계된 프로토콜로 나온 것이 SSL과 TLS이다.
* SSL (Secure Sockets Layer)
- 암호화된 인터넷 통신을 처음 구현한 기술
- 1990년대 중반 Netscape가 설계했으며, 온라인 거래와 데이터 보호를 목표로 했다.
- SSL 2.0(1995년)과 SSL 3.0(1996년)이 주요 버전으로 발표됨.
- 보안 취약점으로 인해 더 이상 사용되지 않으며, 모든 SSL버전은 사용 중단된 상태이다.
* TLS (Transport Layer Security)
- SSL의 후속 프로토콜로, SSL 3.0을 기반으로 보안성과 성능을 개선하였다.
- 1999년에 처음 발표된 TLS 1.0 이후 현재는 TLS 1.3(2018년)이 최신 버전이다.
TLS 1.2와 1.3이 인터넷 표준으로 자리 잡았다.
- 오늘날 HTTPS는 TLS 프로토콜을 사용하여, 'SSL'이라는 용어는 주로 관습적으로 사용될 뿐이다.
📌 SSL과 TLS의 기술적 차이
1. 암호화 알고리즘
- SSL 은 오래된 알고리즘을 사용하며, 일부는 취약점이 발견되어 더 이상 안전하지 않다.
- TLS는 AES-GCM, ChaCha20등 최신 알고리즘을 지원하여 더 강력한 보안을 제공한다.
2. 핸드쉐이크
- SSL에서는 핸드쉐이크 과정이 덜 안전하고 데이터 유출 가능성이 존재한다.
- TLS는 핸드쉐이크 중 메시지 인증 코드(MAC)을 사용하여 데이터 무결성을 보장하며, TLS 1.3에서는 이 과정을 더욱 간소화하고 안전하게 개선했다.
3. 키 교환
- SSL은 주로 RSA 기반 키 교환을 사용하지만, 이는 현대적인 공격에 취약하다.
- TLS는 RSA뿐만 아니라 DH, ECDH 등 보다 안전하고 효율적인 키 교환 방식을 지원한다.
4. 확장성
- TLS는 애플리케이션 데이터, HTTPS, 이메일, 메시징 등 다양한 서비스와 통합이 가능하며, 확장성이 뛰어나다.
📌 TLS의 주요 기능
1. 암호화 (Encryption)
데이터를 암호화하여 제 3자가 내용을 읽을 수 없도록 한다.
2. 무결성 (Integrity)
데이터가 전송중에 변조되지 않았음을 보장한다.
3. 인증 (Authentication)
서버와 클라이언트 간의 신뢰를 구축하며, 주로 서버 인증서를 통해 이루어진다.
📌 TLS의 동작 방식
TLS는 아래 과정을 통해 데이터를 안전하게 전송한다.
1. 핸드쉐이크
- 클라이언트와 서버가 서로의 암호화 알고리즘과 키를 교환한다.
- 이 과정에서 인증서를 사용하여 서버의 신뢰성을 확인한다.
2. 대칭 키 생성
- 핸드쉐이크 과정에서 공유된 키를 사용하여 데이터를 암호화한다.
- 대칭 키 암호화는 빠르고 효율적으로 데이터 전송을 처리한다.
3. 데이터 전송
- 암호화 된 데이터가 안전하게 전송되며, 수신자는 이를 복호화하여 내용을 확인한다.