brunch

You can make anything
by writing

C.S.Lewis

by 테크유람 Mar 28. 2021

안전한 데이터 전달을 위한 DTLS

DTLS(Datagram Transport Layer Security)

HTTP와 같은 TCP 기반의 프로토콜 암호화에는 과거에는 SSL, 현재는 주로 TLS가 사용되고 있습니다. 주로 웹 브라우징, 인스턴트 메시징, VoIP에서 사용되고 있습니다. UDP 기반의 통신을 위한 전달 레이어에서의 보안은 TLS에서 파생된 DTLS(Datagram Transport Layer Security)라는 것이 있습니다.


WebRTC, UC(Unified Communication), SRTP(Secure Real-time Transport Protoco)와 같이 짧은 시간에 많은 패킷을 전달해야 하는 오디오/비디오를 사용하는 UDP 기반의 영상 통신에 보안성을 더하기 위해 사용되고 있습니다.


그럼 DTLS와 주변 지식에 대해 알아볼까요?


DTLS

DTLS는 데이터그램 형식의 콘텐츠를 애플리케이션끼리 주고받을 때 안전하게 전송할 수 있도록 고안된 통신 프로토콜입니다. SSL, TLS와 같은 보안 서비스(무결성, 인증, 정보 은닉 등)를 제공합니다.


데이터그램

데이터그램(datagram)이란, 헤더(header)와 페이로드(payload)가 주축으로 구성된 인터넷을 통해 전송되는 기본적인 정보 단위를 의미합니다. 빠른 전송이 필요하지만 신뢰성(reliability)까지는 필요 없는 통신에 주로 사용하며, UDP(User Datagram Protocol)가 단어 그대로 대표적인 데이터그램입니다.


DTLS는 왜 필요한가?

DTLS를 통해, 데이터그램을 주고받는 양쪽 엔드 포인트의 중간 네트워크에서, 전송 중인 데이터를 훔쳐보거나 위조하는 등의 악성 행위를 막을 수가 있습니다.


DTLS는 SSL(Secure Socket Layer), TLS(Transport Layer Security) 기술을 토대로 만들어졌기에, TLS와 유사한 보안 강도를 제공합니다. 일반적으로 UDP를 사용하기 때문에 애플리케이션은 패킷이 순서대로 들어오지 못하거나, 누락되었을 때의 재조합(reordering)에 대한 로직을 구현해야 하는 기술적 난이도는 있습니다.


DTLS1.0은 TLS1.1에 기반하고, DTLS1.2는 TLS1.2에 기반합니다. 따라서 DTLS1.1 버전은 존재하지 않는데요. TLS1.3에 기반한 DTLS1.3 버전은 현재 IETF에 제안 단계로 확인됩니다.


DTLS 사용 사례

DTLS는 개발자가 별도로 구현하는 것이 아니라, 일반적인 프로토콜이나 오픈소스에 포함되어 사용하는 경우가 대부분인데, GnuTLS나, OpenSSL에도 DTLS1.2 버전이 포함되어 있습니다.


데이터그램 형식의 콘텐츠 보안에 사용되기 때문에 주로 인터넷상을 통해 전송에 관련된 리치 미디어(rich media)를 사용하는 애플리케이션 보안 프로토콜로 사용되고 있습니다. 예를 들면, VPN 클라이언트나 WebRTC를 지원하는 브라우저, VoIP 서비스, 최근의 게임 스트리밍 클라이언트 등이 대표적입니다.


아래 자료는 IBM에서 작성한 DTLS 예제 플로우입니다. Live 영상을 촬영한 후, 클라이언트가 클라우드 데이터 센터로 영상들을 전송할 때, 콘텐츠의 보안을 위해 사용한 DTLS의 사용 예제입니다.

Encoder가 인코딩한 H.264/AAC 기반의 RTMP(RTMPF) 스트림을 DTLS Feeder에게 전송하면, AES128 혹은 AES256 암호화를 통해 암호화되어 데이터 센터로 전달합니다. IBM 클라우드 데이터 센터에 있는 스트림 재생 서버는 복호화 이후, 트랜스코딩과 패키징을 거쳐 사용자의 재생 디바이스 환경에 알맞은 품질과 형식의 스트림을 내려주는 방식으로 이해됩니다.


인터넷을 통해 영상과 같은 리치 미디어의 전송이 지속적으로 늘어나고 있기 때문에, 이에 대한 보안의 적용 시, DTLS는 많이 언급되는 프로토콜이기에 주의 깊게 살펴볼 필요가 있습니다. YouTube나 Netflix 등의 미디어 서비스는 어떤 보안 프로토콜을 사용하는지 알아보는 것도 재미있겠네요.





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari