DTLS

DTLS (англ. Datagram Transport Layer Security — протокол датаграмм безопасности транспортного уровня) — протокол передачи данных, обеспечивающий защищённость соединений для протоколов, использующих датаграммы.

DTLS позволяет приложениям, основанным на коммуникациях посредством датаграмм, сообщаться безопасным способом, предотвращающим перехват, прослушивание, вмешательство, не нарушая защиты целостности данных или подделку содержимого сообщения. Протокол DTLS основан на потоковом протоколе Transport Layer Security (TLS) и обеспечивает, таким образом, необходимые гарантии безопасности. Дейтаграммная семантика основного транспортного протокола наследуется протоколом DTLS — его применение не будет страдать от потоковых задержек, но должно учитывать издержки переупорядочивания пакетов, потери датаграмм, а также избыточного размера данных, больших, чем датаграммный размер пакета.

Применение DTLS определено в документах RFC 6347 для использования с User Datagram Protocol (UDP), в RFC 5238 для использования с Datagram Congestion Control Protocol (DCCP), в RFC 6083 для использования инкапсуляции в Stream Control Transmission Protocol (SCTP), а также в RFC 5764 для использования в Secure Real-time Transport Protocol (SRTP), обычно в последнее время употребляется в связке DTLS-SRTP в рабочих документах по Secure Real-Time Transport Control Protocol (SRTCP)[1].

Версии

Версии протокола DTLS 1.0 основываются на TLS 1.1, и версия DTLS 1.2 основана на TLS 1.2.

'Библиотеки, поддерживающие протокол DTLS'
Программное обеспечение DTLS 1.0 DTLS 1.2
OpenSSL Да Да[2][3]
GnuTLS Да Да
MatrixSSL Да Да
NSS (Бета)[4] Нет
SChannel Да[a][5] Нет[5]
Secure Transport Да Нет
CyaSSL Да Да
mbedtls Да Да
libsystools[6] Да Нет
Python[7][8] Да Нет
@nodertc/dtls [9][10] Нет Да
java-dtls [11] Да Да
pion/dtls[12] (Go) Нет Да
californium/scandium[13] (Java) Нет Да

См. также

Примечания

  1. http://tools.ietf.org/html/draft-peck-suiteb-dtls-srtp-02 Архивная копия от 3 марта 2016 на Wayback Machine Suite B Profile for Datagram Transport Layer Security / Secure Real-time Transport Protocol (DTLS-SRTP)
  2. As of version 1.0.2. The OpenSSL Project. The OpenSSL Project (22 января 2015). Дата обращения: 26 января 2015. Архивировано из оригинала 4 сентября 2014 года.
  3. OpenSSL: News, ChangeLog. Дата обращения: 31 января 2014. Архивировано 26 февраля 2013 года.
  4. NSS 3.14 release notes. Mozilla Developer Network. Mozilla. Дата обращения: 27 октября 2012. Архивировано из оригинала 17 января 2013 года.
  5. 1 2 An update is available that adds support for DTLS in Windows 7 SP1 and Windows Server 2008 R2 SP1. Microsoft. Дата обращения: 13 ноября 2012. Архивировано из оригинала 14 февраля 2013 года.
  6. libsystools Архивная копия от 1 марта 2012 на Wayback Machine – a TLS/DTLS open source library for Windows/Linux using OpenSSL
  7. [1] Архивная копия от 11 июня 2018 на Wayback Machine - Datagram Transport Layer Security for Python
  8. [2] Архивная копия от 1 февраля 2014 на Wayback Machine - DTLS for Python
  9. Дмитрий Цветцих. Secure UDP communications using DTLS in pure js. GitHub. Дата обращения: 14 августа 2019. Архивировано 23 марта 2019 года.
  10. Дмитрий Цветцих. DTLS in pure js. npm. Дата обращения: 14 августа 2019. Архивировано 14 августа 2019 года.
  11. Mobius Software LTD. Non blocking Java DTLS Implementation based on BouncyCastle and Netty. Mobius Software LTD. Дата обращения: 14 августа 2019. Архивировано 23 марта 2019 года.
  12. Sean DuBois. pion/dtls: DTLS 1.2 Server/Client implementation for Go. GitHub. Дата обращения: 14 августа 2019. Архивировано 26 декабря 2019 года.
  13. californium/scandium: DTLS 1.2 Server/Client implementation for java and coap. Includes connection id extension. Eclipse Foundation. Дата обращения: 14 августа 2019. Архивировано 17 июля 2020 года.