Web

TLS(Transport Layer Security)

TedDev 2024. 9. 19. 18:56
728x90

TLS의 도입 배경

네트워크 통신에서 TLS가 도입된 이유는 기존의 네트워크 프로토콜들이 다음과 같은 여러 가지 보안 문제를 가지고 있기 때문이다.

 

데이터 도청 (Eavesdropping)

  • 네트워크 상의 데이터를 전송하는 동안 그 데이터는 중간에 있는 라우터, 스위치, 네트워크 장비들을 거쳐간다. 이러한 장비들에서 데이터를 쉽게 볼 수 있으며 누구나 데이터를 훔쳐볼 수 있다
  • 예를 들어, 패킷을 중간에서 감청하여 사용자의 로그인 정보나 개인 정보를 얻을 수 있다

위장 공격 (Man-in-the-Middle Attack)

  • 공격자가 중간에 위치하여 사용자와 서버 간의 통신을 가로채고 사용자가 원하는 대상 서버인 척하면서 데이터를 주고받는 공격이다
  • 이로 인해 사용자는 자신이 신뢰하는 서버와 통신한다고 생각하지만 실제로는 공격자와 통신하고 있을 수 있다

 

데이터 변조 (Data Tampering)

  • 데이터가 전송되는 동안 중간에서 내용이 변조될 수 있으며 이는 송수신자가 의도하지 않은 정보로 변질되는 위험이 있다
  • 예를 들어, 사용자가 보내는 주문 정보가 공격자에 의해 수정될 수 있다

 

 

TLS란 무엇인가?

TLS는 이러한 보안 문제를 해결하기 위해 만들어진 프로토콜로 전송 계층 보안 (Transport Layer Security)을 제공한다. TLS는 클라이언트와 서버 간의 데이터를 암호화하고 인증을 수행하며 데이터의 무결성을 보장한다. 기본적으로 TLS는 SSL(Secure Sockets Layer)에서 발전된 형태로 SSL 3.0을 개선한 버전으로 볼 수 있다

암호화 (Encryption)

  • TLS는 데이터를 암호화하여 전송하기 때문에 중간에서 데이터를 탈취하더라도 그 내용을 해독할 수 없다
  • 주로 비대칭 키 암호화(예: RSA)를 사용하여 세션 키를 교환하고 대칭 키 암호화(예: AES)로 데이터를 보호한다

인증 (Authentication)

  • TLS는 인증서를 사용하여 통신 상대방이 신뢰할 수 있는 주체인지 확인한다. 예를 들어, 은행 사이트에 접속할 때 그 사이트가 진짜 은행인지 혹은 피싱 사이트인지 확인할 수 있다
  • 인증서는 보통 인증 기관(CA, Certificate Authority)에서 발급한다

무결성 (Integrity)

  • 메시지 인증 코드(MAC, Message Authentication Code)를 사용하여 데이터가 전송 중에 변조되지 않았음을 보장한다
  • 데이터가 전송되는 동안 변경되지 않았는지 확인할 수 있어 신뢰성을 제공한다

 

TLS의 작동 원리

TLS는 OSI 7계층 모델 중 전송 계층(Transport Layer)응용 계층(Application Layer) 사이에서 동작한다. 이는 네트워크 계층에서 발생할 수 있는 보안 문제를 해결하면서도 애플리케이션이 안전하게 데이터를 주고받을 수 있도록 한다.

핸드셰이크 프로토콜 (Handshake Protocol)

  • 클라이언트와 서버 간의 초기 연결 설정 단계로 암호화에 사용할 알고리즘과 키를 협상한다
  • 클라이언트는 서버에게 'ClientHello' 메시지를 보내며, 서버는 'ServerHello'로 응답한다. 이 과정에서 서버는 자신의 인증서를 클라이언트에게 전송한다.
  • 클라이언트는 서버 인증서를 검증하고, 세션 키를 생성하여 암호화된 상태로 서버에 전송한다.

데이터 전송

  • 핸드셰이크가 완료되면 세션 키를 사용하여 데이터를 암호화해 주고받는다.
  • 전송 계층에서 TLS가 데이터의 암호화와 복호화를 담당하며 응용 계층으로 데이터를 전달한다.

 

연결 종료

  • 데이터 전송이 끝나면, 클라이언트와 서버는 'Close Notify' 메시지를 주고받으며 연결을 안전하게 종료한다.

 

TLS의 발전과 버전

  1. SSL과 TLS
    • SSL(Secure Sockets Layer)은 Netscape에서 개발한 초기 보안 프로토콜로 이후 IETF(Internet Engineering Task Force)에서 표준화를 통해 TLS로 발전한 것이다.
    • TLS 1.0은 1999년에 발표되었고 이후 TLS 1.1, 1.2, 1.3이 발표되었다. 최신 버전인 TLS 1.3은 2018년에 발표되었으며 더 안전하고 빠른 통신을 제공한다.
  2. TLS 1.3의 주요 개선 사항
    • 불필요한 암호화 알고리즘을 제거하고 보안성과 성능을 높였다.
    • 핸드셰이크 과정이 단순화되어 통신 속도가 빨라졌다.
    • 이전 버전에서 사용되던 취약한 알고리즘을 제거하여 보안성을 강화했다.

 

TLS의 활용 및 중요성

  • TLS는 웹 브라우징(HTTPS), 이메일(SMTP, IMAP), 파일 전송(FTPS), VPN 등 다양한 인터넷 서비스에서 보안 통신을 제공하는 데 사용된다.
  • TLS를 사용함으로써 사용자는 안전하게 정보를 주고받을 수 있으며 특히 금융 정보나 개인정보와 같은 민감한 데이터를 보호하는 데 필수적이다.
  • TLS를 사용하지 않거나 올바르게 설정하지 않으면 사용자의 정보가 탈취당하거나 위장된 사이트에 속아 중요한 정보를 잃을 수 있다.

 

결론

TLS는 네트워크 보안을 위한 필수적인 기술로 안전한 인터넷 환경을 제공한다. 암호화, 인증, 무결성을 통해 데이터를 보호하며 이를 통해 사용자는 신뢰할 수 있는 통신을 보장받을 수 있다. TLS의 올바른 이해와 적용은 안전한 인터넷 환경을 구축하는 데 매우 중요하다.

 

반응형

'Web' 카테고리의 다른 글

CORS 개요 및 동작 방식  (0) 2024.10.16
Forward Proxy와 Reverse Proxy의 차이  (0) 2024.09.19
HTTP 요청-응답 흐름의 개요  (1) 2024.09.12
API vs Library vs Framework  (0) 2024.09.09
TCP와 UDP  (0) 2024.09.06