TLS는 네트워크 통신에서의 보안을 위해 설계된 보안 프로토콜이다. 대표적으로 HTTP에서 TLS를 적용하여 HTTPS 프로토콜로 사용한다.
TLS의 주요 기능
TLS를 통해 암호화, 무결성, 인증을 달성할 수 있다.
- 암호화: 대칭키 암호화를 통해 전송 데이터를 보호한다.
- 무결성: MAC을 사용해 데이터가 변조되지 않음을 보장한다.
- 인증: 디지털 인증서를 사용해 서버 혹은 클라이언트를 신뢰할 수 있는지 검증한다.(대부분은 서버의 신뢰성을 검증한다.)
TLS 인증서 - TLS의 기본 조건
통상적으로 TLS를 사용하기 위해서는 대상(주로 서버)에 TLS 인증서가 있어야 한다. 이 인증서를 클라이언트가 검증하여 올바른 서버와 통신하는지 확인하기 때문이다.
인증서를 쓰지 않는 경우가 있지만 이 포스트에서는 논하지 않는다.
TLS의 Handshake

클라이언트와 서버가 TLS 연결을 하기 위해서는 핸드셰이크 통해 연결을 초기화해야 한다.
1. TCP 핸드셰이크
TLS는 애플리케이션 레이어 위에서 동작하는 프로토콜이므로 TLS 통신을 하기 전 TCP 핸드셰이크를 통해 연결을 성립해야 한다.
그러므로 3 way 핸드셰이크를 통해 TCP 연결을 성립한다.
2. ClientHello
클라이언트가 서버에게 Client Hello 메시지를 보내는데 메시지에는 클라이언트가 사용할 수 있는 TLS 버전, chipher suite, 난수를 보낸다.
3. ServerHello
ClientHello를 받은 서버는 이에 대한 응답으로 사용할 TLS 버전, 선택한 암호화, 인증서를 클라이언트에게 보낸다.
4. 인증서 검증
클라이언트는 받은 인증서를 검증하여 올바른 서버와 통신하고 있는지 확인한다.
5. 키 교환
서버 인증서를 검증했으면 공개키 암호화를 이용해 세션 키를 교환한다. 이 세션 키는 서로가 전송하는 데이터를 암호화하는데 쓰인다.
6. Finished
클라이언트는 획득한 세션 키로 "ChangeCipherSpec", "Finished"메시지를 암호화하여 서버에게 보낸다.
서버 역시 동일한 메시지를 암호화 하여 클라이언트에게 보내어 핸드셰이크가 정상적으로 완료되었음을 확인하고 TLS 연결을 확정하게 된다.
이 과정이 끝나면 클라이언트와 서버는 TLS 프로토콜을 이용하여 암호화 통신을 하게 된다.
'정보보안' 카테고리의 다른 글
TEE(Trusted Execution Environment) (0) | 2025.02.28 |
---|---|
AUTOSAR SecOC 알아보기 (0) | 2025.02.27 |
MACsec 알아보기 (802.1AE) (0) | 2025.02.26 |