8(499)-709-97-83
Работаем с 8:00 до 19:00

Что такое Datagram Transport Layer Security (DTLS)?

  • 09 ноября 2015

Что такое Datagram Transport Layer Security (DTLS)?

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

DTLS обеспечивает защиту сетевого трафика, работающего по средствам датаграмм, например, таким протоколом является UDP (User Datagram Protocol). Обычно, приложения, которые используют голосовой, видео и прочий медиатрафик очень чувствительны к задержкам и потерям пакетов при передаче данных, при этом приложения чаще всего использую протокол UDP. DTLS работает поверх протокола UDP и служит для защиты данных на транспортном уровне (работает между уровнем приложений и транспортным уровнем). DTLS работает в среде приложения без каких-либо модификаций полезной нагрузки сообщения. DTLS обеспечивает целостность передаваемых данных и уведомление отправителя о результатах передачи (как протокол TCP), Данный функционал не предусмотрен в протоколе UDP. Актуальная версия DTLS 1.2.

Почему DTLS, это не тот же TLS, работающий с датаграммами.

Ответ очень простой, потому что при использовании такого транспорта, как UDP пакеты могут потеряться или перепутаться, в то время как TCP обеспечивает обязательную доставку пакетов от источника к получателю. Взяв за основу протокол TCP и немного его модернизировав, получился протокол DTLS.

Проблемы, возникающие при использовании TLS поверх UDP:

  • В протоколе TLS существует проверка целостности пакетов, которая зависит от порядкового номера пакета. Например, если теряется пакет N, то проверка на целостность запись N + 1 провалится, т.к. порядок пакетов будет нарушен. Так же пакеты могут перепутаться. Например, первым придет пакет N+1, а уже за ним прийдет пакет N, проверка на целостность опять завершиться неудачей
  • Пакет может несколько раз дойти до получателя
  • Перед тем, как начать обмен данными через TLS, источник и получатель должны согласовать параметры соединения, а именно: версия используемого протокола, способ шифрования данных, а также проверить сертификаты, если это необходимо. Такая схема называется TLS Handshake. Возникают проблемы, если эта схема нарушается, т.е. некоторые из пакетов потеряются
  • Размер сообщения TLS Handshake, может занимать много места в пакете. При этом максимальный размер пакет UDP ограничен 1500 байт.

Протокол DTLS решает вышеуказанные проблемы.

  • Добавлены явные порядковые номера в записи
  • Использование таймера повторной передачи для исключения потери пакетов
  • Для решения проблемы ограничения длины UDP пакетов активно используется фрагментация данных. Каждое сообщение DTLS Handshake должно содержать смещение фрагмента и длину фрагмента
  • Сохранение информации о полученных ранее пакетах, так что если пакет был ранее получил, то он будет отброшен

Клиенты автоматически генерируют свои самоподписанные сертификаты для каждого нового подключения. Это означает, что нет никакой проверки цепочки сертификатов. Сами сертификаты не могут быть использованы для аутентификации партнёра, т.к. они являются самоподписанными. Таким образом, DTLS обеспечивает шифрование и целостность доставки пакетов, но саму аутентификации необходимо делать в приложении.

DTLS, также как SRTP, — это один из безопасных протоколов, используемых для технологии WebRTC.

Библиотеки, который поддерживают протокл DTLS 1.2:Botan, GnuTLS, MatrixSSL, OpenSSL, wolfSSL

 
Powered by SEO CMS ver.: 23.1 TOP 2 (opencartadmin.com)
 
Метки: DTLS