Living Rough

TLS / SSL이란? 본문

System & Security/Security

TLS / SSL이란?

HJ호준 2023. 12. 10. 21:54

TLS나 SSL은 다들 한 번씩 들어봤을 것이다.

한 번 자세히 알아보도록 하자.


TLS/SSL이란?

 

데이터를 암호화/복호화하여 보내주는 프로토콜으로, 웹 서버와 웹 브라우저 간의 보안을 의미한다.

지금 이 글을 볼 정도의 사람이라면 OSI 7계층 정도는 알고 있을 것이다.

 

Application 계층 - 데이터 그 자체

Transport 계층 - TCP/UDP 헤더를 붙여주는 역할

Network 계층 - ip 주소 헤더 

Data Link 계층 - wifi -> VPN

Physical 계층 - 주소가 들어감

 

모든 인터넷 데이터는 패킷 단위(약 1500바이트)로 상호작용한다. 또한 제 3자는 이런 패킷들을 가로채서 내용물을 확인할 수 있다.

한 인터넷 페이지를 구성하기 위한 데이터는 많기 때문에 TLS 서버는 보통 데이터를 여러 개로 쪼개서 Fragment로 만든 다음 여러 번 보내는 방식을 이용한다.

 

자, 그런데 이런 패킷의 내용물을 제 3자가 볼 수 있다면, ID나 비밀번호도 볼 수 있어야 할 것이다.

하지만 그렇게 되면 큰일이다.

따라서 TLS를 사용하여 암호화하게 되는데, 이 TLS는 TCP 계층에서 이루어지며, HTTPS에 사용된다.

 

HTTPS의 S는 Security를 의미한다. 대부분의 서버에서는 이 HTTPS를 활용하고 있는 것이다.

TLS가 제공하는 보안 특성은 3가지이다 :

  • Integrity (무결성) -> MD5 등의 해쉬 알고리즘 이용
  • Confidentiality (기밀성) -> DES, RC4 등 암호화 알고리즘 이용
  • Client/Server Authentication(클라이언트와 서버 간 인증) -> 서버의 인증서

다만, 주의해야 할 것은, 서버가 패킷을 보냈는데도 보내지 않았다고 부인하는 등의 부인 방지 기능까지는 제공되지 않는다.

이를 위해서는 전자 서명이 필요하다.


TLS와 SSL의 차이는?

 

TLS와 SSL이라고 하는 이유는 과연 무엇이고, 차이는 무엇일까?

정답은 바로 "TLS와 SSL은 같다"이다.

예전에는 SSL로 불리다가 어느 순간 TLS로 이름을 바꿨을 뿐이며, 보통 SSL 3.0 이후를 TLS라고 부른다.

 

참고로 이 TLS는 Netscape에 의해서 만들어졌다.


TLS/SSL 프로토콜의 구성

 

프로토콜은 크게 4가지 과정으로 나눌 수 있다.

  1. HandShake Protocol : 클라이언트 - 서버 간 인증, 암호 알고리즘 합의
  2. Record Protocol : 데이터를 인증하고, 암호화 처리한 뒤 메시지를 송수신한다.
  3. Change Cipher spec : 암호 spec을 변경한다.
  4. Alter Protocol : 예외, 에러를 처리한다.

Handshake Protocol에서는 handshake로 클라이언트와 서버 간 암호화 알고리즘을 합의한다. 이는 반드시 Record Protocol보다 먼저 수행되어야 한다.

이때 Handshake Protocol에서 합의하는 내용은 아래와 같다 :

  • Session ID : 세션 아이디
  • Certification : 인증 알고리즘
  • Cipher spec : 압축 또는 MAC 생성 알고리즘
  • Compression Method : 압축 알고리즘, 키교환 알고리즘
  • Master Secret Key

이 Handshake는 4개의 단계로 이루어진다.

 

1. Hello 메시지들을 서버와 클라이언트가 서로 주고 받으면서 여러 알고리즘에 대한 합의를 본다.

2. 서버의 인증서와 인증서를 검증하기 위한 인증서 체인, 그리고 공개키를 전송한다. 서버는 클라이언트의 인증서를 요구하고, Server Hello가 끝난다.

3. 클라이언트는 요구에 응하며 인증서를 전송하고, 48 바이트의 premaster secret을 전송하고, 클라이언트 인증서를 검증하게 된다.

4. 암호 사양 변경 메시지를 교환하며 다음 세션에 적용될 암호 스펙을 결정한다.

 

Record Protocol은 메시지를 최대 16KB 단위로 쪼개 fragment로 만들어 압축하고, Mac을 추가하여 암호화한 뒤, 헤더를 붙여 데이터를 주고 받도록 한다.


 

이번에는 TLS와 SSL이 어떤 방식으로 작동하는지 알아보았다.

글을 마친다.

'System & Security > Security' 카테고리의 다른 글

IDS(Intrusion Detection System)  (0) 2023.12.11
IPsec은 무엇일까?  (0) 2023.12.11
Access Control이란?  (1) 2023.12.10
Kerberos(커보로스)란?  (0) 2023.12.10
Diffie - Hellman(디피-헬만 키 교환)  (1) 2023.12.10