Разница между DTLS и TLS

  • Какова функциональная разница между TLS и DTLS?
  • Как отличается поток/согласование приложений при использовании TLS и DTLS?

Ответ 1

В принципе DTLS должен построить TLS над дейтаграммой (UDP, DCCP и т.д.).

DTLS преднамеренно похожа на TLS, за исключением того, что DTLS должен решить две проблемы: потеря пакетов и переупорядочение. DTLS реализует

  • ретрансляция пакетов
  • присвоение порядкового номера в рукопожатии
  • обнаружение воспроизведения.

Подробнее см. RFC 6347.

Ответ 2

DTLS - это реализация TLS через UDP (протокол дейтаграммы). в википедии TLS использует TCP, а DTLS использует UDP, поэтому применяются все классические различия. Связи UDP существуют как потоки пакетов без заказа, надежности доставки или управления потоком. приложения, использующие протоколы дейтаграмм, должны убедиться, что они могут справиться с этими проблемами внутри страны.

https://en.wikipedia.org/wiki/Transport_Layer_Security#Applications_and_adoption

http://www.diffen.com/difference/TCP_vs_UDP

Ответ 3

Одно из отличий состоит в том, что из-за превышения UDP потоковые шифры не допускаются:

4.1.2.2. Нулевой или стандартный потоковый шифр

Шифр DTLS NULL выполняется точно так же, как и шифр TLS 1.2 NULL.

Единственный потоковый шифр, описанный в TLS 1.2, это RC4, к которому нельзя получить произвольный доступ. RC4 НЕ ДОЛЖЕН использоваться с DTLS.

Ответ 4

Существуют ключевые различия между DTLS и протоколом безопасности транспортного уровня (TLS), которые прикладной программист должен знать, что другие ответы, которые отсутствуют/подразумеваются, не существуют!

Протокол DTLS обеспечивает конфиденциальность связи для протоколов дейтаграмм. Вопреки существующим наивысшим оценкам ответов на момент написания (архив), DTLS не является реализацией TLS поверх UDP (или протоколов дейтаграмм в целом). Он включает в себя реализацию очень TLS-подобного рукопожатия, модифицированного для работы над протоколами дейтаграмм. Реализация действительно решает проблемы переупорядочения и потери пакетов, но только для пакетов, используемых для установления связи DTLS (и выбора шифра). Другими словами, "полеты", которые доставляют эти пакеты, доставляются надежно. Однако пакеты DTLS, содержащие полезную нагрузку (данные приложения), доставляют свою полезную нагрузку не более надежно, чем пакеты DTLS (обычно UDP), которые их инкапсулируют.

Кроме того, хотя протокол DTLS (v1.2) является производным от протокола TLS (v1.2) и претендует на "предоставление эквивалентных гарантий безопасности", он этого не делает. 2 Назад в 2013 году, исследователи определили основные недостатки безопасности в обеих реализациях DTLS и в самом DTLS протокола, которые с тех пор были исправлены, по крайней мере, в реализации GnuTLS и OpenSSL. 2

Наконец, OP спрашивает, как отличаются потоки приложений при использовании TLS и DTLS. TLS предназначен для надежной и сквозной доставки потока данных с аутентифицированным шифрованием. DTLS предназначен для доставки сквозных аутентифицированных и зашифрованных данных приложения, но с меньшей задержкой, чем это может быть достигнуто, когда гарантируется доставка всех данных приложения. Вот почему DTLS используется для защиты потоковых приложений, где потери менее важны, чем задержки, например, VoIP, прямые видеопотоки и MMO-игры.

PS: DTLS 1.3 находится в разработке. 3