데이터그램 전송 계층 보안
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
데이터그램 전송 계층 보안(DTLS)은 여러 RFC 문서에 의해 정의되며, 사용자 데이터그램 프로토콜(UDP) 등과 함께 사용하기 위한 보안 프로토콜이다. DTLS는 TLS 1.1, TLS 1.2, TLS 1.3을 기반으로 하며, DTLS 1.3은 TLS 1.3과 동등한 보안을 제공한다. 다양한 프로그래밍 언어 및 운영 체제에서 DTLS를 지원하는 라이브러리가 존재하며, AnyConnect VPN 클라이언트, 오픈커넥트, Cisco InterCloud Fabric, Cato Networks, Zscaler 터널 2.0 등 다양한 애플리케이션에서 사용된다. 2013년에는 CBC 모드 암호화를 사용할 때 타이밍 공격에 취약하다는 점이 발견되었다.
더 읽어볼만한 페이지
- 세션 계층 프로토콜 - SPDY
SPDY는 웹 페이지 로딩 속도 향상을 위해 구글에서 개발한 네트워크 프로토콜로, HTTP의 전송 방식을 재정의하여 헤더 압축, 다중화, 우선순위 지정, 서버 푸시 등의 기능을 제공하고 HTTP/2 개발에 영향을 미쳤으나 현재는 지원이 중단되었다. - 세션 계층 프로토콜 - SOCKS
SOCKS는 인터넷 트래픽을 프록시 서버를 통해 라우팅하는 클라이언트-서버 프로토콜이며, 여러 버전이 존재하고 IPv6, UDP, DNS 조회 등을 지원하며, 인터넷 필터링 우회, VPN 기능 제공 등 다양한 용도로 사용된다. - 가상사설망 - IPsec
IPsec은 IP 네트워크에서 보안 통신을 제공하기 위한 프로토콜 스위트로서, 전송 모드와 터널 모드를 지원하며, AH, ESP 등의 프로토콜을 사용하여 데이터 무결성, 인증, 기밀성을 제공하고, IKE 프로토콜을 통해 보안 연결을 설정 및 키를 교환하는 개방형 표준이다. - 가상사설망 - 계층 2 터널링 프로토콜
계층 2 터널링 프로토콜(L2TP)은 두 네트워크 노드 간 터널을 생성하여 데이터를 전송하는 데 사용되는 네트워크 프로토콜로, L2F와 PPTP에서 비롯되어 RFC 2661로 표준화되었으며, 자체 보안 기능이 없어 IPsec과 함께 사용되어 L2TP/IPsec으로 보안을 강화한다. - 암호 프로토콜 - HTTPS
HTTPS는 HTTP에 보안 기능이 더해진 통신 규약으로, 웹 브라우저와 서버 간 통신을 암호화하여 보안을 강화하지만, 인증서 비용, 서버 부하, 혼합 콘텐츠 문제 등의 단점도 존재한다. - 암호 프로토콜 - IPsec
IPsec은 IP 네트워크에서 보안 통신을 제공하기 위한 프로토콜 스위트로서, 전송 모드와 터널 모드를 지원하며, AH, ESP 등의 프로토콜을 사용하여 데이터 무결성, 인증, 기밀성을 제공하고, IKE 프로토콜을 통해 보안 연결을 설정 및 키를 교환하는 개방형 표준이다.
데이터그램 전송 계층 보안 | |
---|---|
개요 | |
이름 | 데이터그램 전송 계층 보안 |
영문명 | Datagram Transport Layer Security |
약자 | DTLS |
종류 | 통신 프로토콜 |
상세 정보 | |
RFC | RFC 4347 RFC 6347 RFC 9147 |
참고 사항 | |
관련 문제 | TCP over TCP (TCP 터널링) 문제 발생 가능 |
2. 정의
DTLS는 다음 RFC 문서들에 의해 정의된다.[54][59]
프로토콜 | RFC 문서 | 설명 |
---|---|---|
사용자 데이터그램 프로토콜(UDP) | 9147 | UDP와 함께 사용하기 위한 DTLS 정의 |
데이터그램 혼잡 제어 프로토콜(DCCP) | 5238 | DCCP와 함께 사용하기 위한 DTLS 정의 |
무선 액세스 포인트 제어 및 프로비저닝(CAPWAP) | 5415 | CAPWAP와 함께 사용하기 위한 DTLS 정의 |
스트림 제어 전송 프로토콜(SCTP) | 6083 | SCTP 캡슐화와 함께 사용하기 위한 DTLS 정의 |
보안 실시간 전송 프로토콜(SRTP) | 5764 | SRTP와 함께 사용하기 위한 DTLS 정의. 이후 보안 실시간 전송 제어 프로토콜(SRTCP)을 포함하는 초안에서 DTLS-SRTP로 불린다.[58] |
DTLS는 다양한 프로그래밍 언어 및 운영 체제에서 지원되며, 여러 라이브러리와 WebRTC 등의 애플리케이션에서 구현되어 사용되고 있다.
DTLS 1.0은 TLS 1.1을 기반으로 하고, DTLS 1.2는 TLS 1.2를 기반으로 하며, DTLS 1.3은 TLS 1.3을 기반으로 한다. 버전 번호를 TLS와 조화시키기 위해 DTLS 1.1은 건너뛰었기 때문에 존재하지 않는다.[54] 이전 DTLS 버전과 마찬가지로 DTLS 1.3은 "주문 보호/재생 불가능성을 제외하고 [TLS 1.3과] 동등한 보안 보장"을 제공하기 위한 것이다.[59]
3. 구현
3. 1. 라이브러리
구현 | DTLS 1.0 | DTLS 1.2 | DTLS 1.3 |
---|---|---|---|
Botan | 지원 | 지원 | |
cryptlib | 미지원 | 미지원 | |
GnuTLS | 지원 | 지원 | |
Java Secure Socket Extension | 지원 | 지원 | |
LibreSSL | 지원 | 지원[5] | |
libsystools[6] | 지원 | 미지원 | |
MatrixSSL | 지원 | 지원 | |
mbed TLS (이전 PolarSSL) | 지원[7] | 지원[7] | |
Network Security Services | 지원[8] | 지원[9] | |
OpenSSL | 지원 | 지원[10] | |
PyDTLS[11][12] | 지원 | 지원 | |
Python3-dtls[13][14] | 지원 | 지원 | |
RSA BSAFE | 미지원 | 미지원 | |
s2n | 미지원 | 미지원 | |
Schannel XP/2003, Vista/2008 | 미지원 | 미지원 | |
Schannel 7/2008R2, 8/2012, 8.1/2012R2, 10 | 지원[15] | 미지원[15] | |
Schannel 10 (1607), 2016 | 지원 | 지원[16] | |
Secure Transport OS X 10.2–10.7 / iOS 1–4 | 미지원 | 미지원 | |
Secure Transport OS X 10.8–10.10 / iOS 5–8 | 지원[17] | 미지원 | |
SharkSSL | 미지원 | 미지원 | |
tinydtls [18] | 미지원 | 지원 | |
Waher.Security.DTLS [19] | 미지원 | 지원 | |
wolfSSL (이전 CyaSSL)[20] | 지원 | 지원 | 지원 |
@nodertc/dtls [21][22] | 미지원 | 지원 | |
java-dtls[23] | 지원 | 지원 | |
pion/dtls[24] (Go) | 미지원 | 지원 | |
californium/scandium[25] (Java) | 미지원 | 지원 | |
SNF4J[26] (Java) | 지원 | 지원 |
다양한 프로그래밍 언어 및 운영 체제에서 DTLS를 지원하는 라이브러리가 존재한다. 주요 DTLS 라이브러리 및 지원 버전은 위 표와 같다.
3. 2. 애플리케이션
다음은 DTLS를 사용하는 주요 애플리케이션이다.- 시스코 AnyConnect VPN 클라이언트는 TLS를 사용하며 DTLS 기반 VPN을 발명했다.[27] 오픈커넥트(OpenConnect)는 (D)TLS를 지원하는 오픈 소스 AnyConnect 호환 클라이언트 및 ocserv 서버이다.[28]
- 시스코 인터클라우드 패브릭(Cisco InterCloud Fabric)은 DTLS를 사용하여 개인 및 공용/제공자 컴퓨팅 환경 간의 터널을 형성한다.[29]
- 카토 네트웍스(Cato Networks)는 Cato Socket과 Cato ZTNA(구 SDP) 클라이언트가 Cato POP에 대한 터널을 형성할 때[30]와 Cato 소켓 간의 오프 클라우드 터널을 형성할 때 사용되는 언더레이 터널에 DTLS v1.2를 사용한다.[31]
- Z스케일러(Zscaler) 터널 2.0은 터널링에 DTLS를 사용한다.[32]
- F5 네트웍스(F5 Networks) Edge VPN 클라이언트는 TLS와 DTLS를 사용한다.[33]
- 포티넷(Fortinet)의 SSL VPN[34] 및 어레이 네트웍스(Array Networks) SSL VPN[35] 또한 VPN 터널링에 DTLS를 사용한다.
- 시트릭스 시스템즈(Citrix Systems) NetScaler는 UDP를 보호하기 위해 DTLS를 사용한다.[36]
- 구글 크롬, 오페라, 파이어폭스는 WebRTC에 DTLS-SRTP를 지원한다.[37] 파이어폭스 86 이상 버전은 DTLS 1.0을 지원하지 않는다.[38]
- 원격 데스크톱 프로토콜 8.0 이상.
- ChromeOS, 구글 크롬(Google Chrome), 모질라 파이어폭스(Mozilla Firefox), 오페라 (웹 브라우저)(Opera)는 WebRTC를 위해 DTLS-SRTP를 지원한다[51].
4. 취약점
2013년, 런던 대학교 로열 할러웨이 연구진은 암호 블록 체이닝(CBC) 모드 암호화를 사용할 때 DTLS의 OpenSSL 또는 GnuTLS 구현에서 평문을 복구할 수 있는 타이밍 공격[39][52]을 발견했다.
참조
[1]
웹사이트
Why TCP Over TCP Is A Bad Idea
http://sites.inka.de[...]
2001-04-23
[2]
간행물
Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency
2005-10
[3]
웹사이트
Suite B Profile for Datagram Transport Layer Security / Secure Real-time Transport Protocol (DTLS-SRTP)
https://tools.ietf.o[...]
IETF
2012-09-25
[4]
웹사이트
The Datagram Transport Layer Security (DTLS) Protocol Version 1.3
https://datatracker.[...]
[5]
웹사이트
LibreSSL 3.3.2 Release Notes
https://ftp.openbsd.[...]
The OpenBSD Project
2021-05-01
[6]
웹사이트
libsystools: A TLS/DTLS open source library for Windows/Linux using OpenSSL
http://sourceforge.n[...]
SourceForge
[7]
웹사이트
mbed TLS 2.0.0 released
https://tls.mbed.org[...]
ARM
2015-07-13
[8]
웹사이트
NSS 3.14 release notes
https://developer.mo[...]
Mozilla
2012-10-27
[9]
웹사이트
NSS 3.16.2 release notes
https://developer.mo[...]
Mozilla
2014-06-30
[10]
웹사이트
As of version 1.0.2
https://www.openssl.[...]
The OpenSSL Project
2015-01-22
[11]
웹사이트
pydtls - Datagram Transport Layer Security for Python
https://github.com/r[...]
GitHub
[12]
웹사이트
DTLS for Python
https://pypi.python.[...]
Python Software Foundation
[13]
웹사이트
pydtls - Datagram Transport Layer Security for Python
https://github.com/m[...]
GitHub
[14]
웹사이트
DTLS for Python3 Based on PyDTLS
https://pypi.python.[...]
Python Software Foundation
[15]
웹사이트
An update is available that adds support for DTLS in Windows 7 SP1 and Windows Server 2008 R2 SP1
http://support.micro[...]
Microsoft
2012-11-13
[16]
웹사이트
TLS (Schannel SSP) changes in Windows 10 and Windows Server 2016
https://docs.microso[...]
2017-09-01
[17]
웹사이트
Technical Note TN2287: iOS 5 and TLS 1.2 Interoperability Issues
https://developer.ap[...]
Apple Inc.
2012-05-03
[18]
웹사이트
tinydtls
https://projects.ecl[...]
Eclipse Foundation
[19]
웹사이트
Waher.Security.DTLS
https://www.nuget.or[...]
Waher Data AB
[20]
웹사이트
wolfSSL Embedded SSL/TLS Library
https://www.wolfssl.[...]
[21]
웹사이트
Secure UDP communications using DTLS in pure js
https://github.com/n[...]
GitHub
[22]
웹사이트
DTLS in pure js
https://www.npmjs.co[...]
npm
[23]
웹사이트
Non blocking Java DTLS Implementation based on BouncyCastle and Netty
https://github.com/m[...]
Mobius Software LTD
[24]
웹사이트
pion/dtls: DTLS 1.2 Server/Client implementation for Go
https://github.com/p[...]
GitHub
[25]
웹사이트
californium/scandium: DTLS 1.2 Server/Client implementation for java and coap. Includes connection id extension.
https://github.com/e[...]
Eclipse Foundation
[26]
웹사이트
Simple Network Framework for Java (SNF4J).
https://github.com/s[...]
GitHub
[27]
웹사이트
AnyConnect FAQ: tunnels, reconnect behavior, and the inactivity timer
http://www.cisco.com[...]
Cisco
2017-02-26
[28]
웹사이트
OpenConnect
https://www.infradea[...]
OpenConnect
2017-02-26
[29]
웹사이트
Cisco InterCloud Architectural Overview
http://www.cisco.com[...]
Cisco Systems
[30]
웹사이트
Cato Networks Cipher Suites Used by the Cato Socket and SDP Client
https://support.cato[...]
[31]
웹사이트
Cato Networks Routing Traffic to an Off-Cloud Link
https://support.cato[...]
[32]
웹사이트
ZScaler ZTNA 2.0 Tunnel
https://help.zscaler[...]
ZScaler
[33]
웹사이트
f5 Datagram Transport Layer Security (DTLS)
https://f5.com/gloss[...]
f5 Networks
[34]
웹사이트
Using DTLS to improve SSL VPN performance
https://community.fo[...]
Fortinet
2016-02-25
[35]
웹사이트
array.c from OpenConnect
https://gitlab.com/o[...]
2022-05-23
[36]
웹사이트
Configuring a DTLS Virtual Server
http://docs.citrix.c[...]
Citrix Systems
[37]
웹사이트
WebRTC Interop Notes
https://sites.google[...]
[38]
웹사이트
Firefox 86.0, See All New Features, Updates and Fixes
https://www.mozilla.[...]
2021-02-23
[39]
웹사이트
Plaintext-Recovery Attacks Against Datagram TLS
http://www.isg.rhul.[...]
[40]
웹사이트
Suite B Profile for Datagram Transport Layer Security / Secure Real-time Transport Protocol (DTLS-SRTP)
https://tools.ietf.o[...]
IETF
2014-06-29
[41]
웹사이트
libsystools: A TLS/DTLS open source library for Windows/Linux using OpenSSL
http://sourceforge.n[...]
Sourceforge
2014-07-02
[42]
웹사이트
mbed TLS 2.0.0 released
https://tls.mbed.org[...]
ARM
2015-08-26
[43]
웹사이트
NSS 3.14 release notes
https://developer.mo[...]
Mozilla
2014-07-02
[44]
웹사이트
NSS 3.16.2 release notes
https://developer.mo[...]
Mozilla
2014-07-02
[45]
웹사이트
pydtls - Datagram Transport Layer Security for Python
https://github.com/r[...]
GitHub
2014-07-02
[46]
웹사이트
DTLS for Python
https://pypi.python.[...]
Python Software Foundation
2014-07-02
[47]
웹사이트
An update is available that adds support for DTLS in Windows 7 SP1 and Windows Server 2008 R2 SP1
http://support.micro[...]
Microsoft
2014-07-02
[48]
웹사이트
Windows 10 および Windows Server 2016 での TLS (Schannel SSP) の変更します。
https://docs.microso[...]
2017-09-01
[49]
웹사이트
Technical Note TN2287: iOS 5 and TLS 1.2 Interoperability Issues
http://developer.app[...]
Apple Inc.
2014-07-02
[50]
웹사이트
Cisco AnyConnect VPN Client
http://www.cisco.com[...]
Cisco
2014-06-29
[51]
웹사이트
WebRTC Interop Notes
https://sites.google[...]
2014-06-29
[52]
웹사이트
Plaintext-Recovery Attacks Against Datagram TLS
http://www.isg.rhul.[...]
2014-06-29
[53]
간행물
Datagram Transport Layer Security
2006-04
[54]
간행물
Datagram Transport Layer Security Version 1.2
2012-01
[55]
간행물
The Datagram Transport Layer Security (DTLS) Protocol Version 1.3
2022-04
[56]
웹인용
Why TCP Over TCP Is A Bad Idea
http://sites.inka.de[...]
2001-04-23
[57]
콘퍼런스
Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency
2005-10
[58]
웹인용
Suite B Profile for Datagram Transport Layer Security / Secure Real-time Transport Protocol (DTLS-SRTP)
https://tools.ietf.o[...]
IETF
2012-09-25
[59]
웹인용
The Datagram Transport Layer Security (DTLS) Protocol Version 1.3
https://datatracker.[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com