SSL/TLS 란?
우선 SSL(Secure Sockets Layer)은 암호화 기반 인터넷 보안 프로토콜로, 인터넷 통신의 개인 정보 보호, 인증, 무결성을 보장하기 위해 개발되었다.
현재 사용되고 있는 TLS 의 전신이다.
TLS은 SSL 3.1 개발로 시작했지만 프로토콜의 이름이 변경되어 이름이 혼용되고, 그냥 SSL/TLS 라고 부르기도 한다.
현재 SSL/TLS를 사용하는 대표적인 예시로 HTTPS 가 있다.
SSL/TLS 의 작동 방식
HTTP 에서의 전송되는 데이터는 기본적으로 암호화 되어있지 않은 평문으로 전송된다. 그렇기 때문에 중간자 공격과 같은 공격에 취약하다.
SSL/TLS 는 수준 높은 개인정보 보호를 제공하기 위해 전송되는 데이터를 암호화 한다. 이를 통해 중간에서 데이터를 가로채더라도 해독할 수 없다.
또한 데이터 무결성을 위해 데이터에 디지털 서명을 하여 데이터가 조작되지 않았다는 것을 확인한다.
또한 SSL/TLS 는 핸드셰이크 라는 인증 프로세스를 통해 두 장치의 ID 를 확인 후 통신한다.
위 방법을 통해 사용자는 웹 사이트를 이용할 때 개인정보 보호(암호화), 인증(핸드셰이크), 무결성(디지털 서명)을 보장 받을 수 있다.
HTTP == SSL/TLS ?
HTTPS 와 SSL/TLS 는 다른 프로토콜 이다. SSL/TLS 는 '보안 계층' 이라는 독립적인 프로토콜 계층을 만들어서 응용 계층과 전송 계층 사이에서 작동하게 된다.
HTTPS 는 SSL/TLS 위에 HTTP 프로토콜을 얹어서 보안된 HTTP 통신을 하는 프로토콜이다. SSL/TLS 는 HTTP 뿐만 아니라 FTP, SMTP 등 다른 프로토콜에도 적용할 수 있다.
SSL/TLS 핸드셰이크 방식
SSL/TLS 의 핸드셰이크는 TCP 3/4-way-handshaking 과 같이 서버와 클라이언트가 서로의 정보를 교환하는 방식이다.
- Client hello : 클라이언트가 서버에 요청을 보내면서 Cipher Suite(암호화 방식) 를 제시한다. 그리고 랜덤 데이터를 생성하여 전송한다.
- Server hello : 서버는 클라이언트가 제시한 Cipher Suite 중 하나를 선정하여 알려준 후, 서버의 인증서(서버 공개키가 담겨있다.)를 클라이언트로 전송한다. 또한 서버의 랜덤 데이터를 생성하여 전송한다.
- Client Key exchange : 클라이언트가 주고받은 자신과 서버 데이터를 참고하여 서버와 통신할 때 사용할 키를 생성한 후 서버에 전달한다. 이때 키는 서버에서 받은 서버의 공개키로 암호화 하여 보낸다.
- Finished : 핸드셰이크 과정이 끝나면, 클라이언트와 서버는 모두 "Finished" 메시지를 보낸다. 그 후 클라이언트가 생성한 키를 이용하여 암호화된 데이터로 통신한다.
총총
요즘 SSL 을 자주 접하는데 자세히 공부할 수 있어서 좋았다.
'network' 카테고리의 다른 글
TCP / IP 4 계층 이란? (0) | 2025.03.17 |
---|---|
"이 연결은 현재 비공개 상태입니다." | VPN 이란? (1) | 2025.03.15 |
DNS 중독!!!! 🤢🤢 (0) | 2025.03.13 |
OSI 7 계층이란? [네트워크 이론] (0) | 2025.03.12 |
홍재무 강사님 강의 요약 및 후기 (0) | 2023.12.11 |