DTLS和TLS之间的区别

时间:2013-03-11 04:38:03

标签: ssl dtls

  1. TLS和DTLS之间的功能区别是什么?
  2. 使用TLS与DTLS时应用程序流/协商有何不同?

4 个答案:

答案 0 :(得分:27)

基本上DTLS是通过数据报(UDP,DCCP等)构建TLS

DTLS与TLS类似,只是DTLS必须解决两个问题:数据包丢失和重新排序。 DTLS实现

  1. 包重传
  2. 在握手中分配序列号
  3. 重播检测。
  4. 有关详细信息,请参阅RFC 6347

答案 1 :(得分:8)

DTLS是UDP上的TLS(数据报协议)的实现。每个维基百科,TLS使用TCP,DTLS使用UDP,因此所有经典差异都适用。 UDP通信作为分组流存在,没有排序,传递可靠性或流量控制。使用数据报协议的应用程序需要确保它们可以在内部处理这些问题。

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

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

答案 2 :(得分:1)

一个区别是,由于通过UDP,因此不允许流密码:

  

4.1.2.2。空或标准流密码

     

DTLS NULL密码的执行与TLS 1.2 NULL完全相同   密码。

     

TLS 1.2中描述的唯一流密码是RC4,不能   随机访问。 RC4不得与DTLS一起使用。

答案 3 :(得分:1)

DTLS与传输层安全性(TLS)协议之间存在关键区别,应用程序程序员需要意识到其他答案未命中/暗示不存在!

DTLS协议为数据报协议提供通信隐私。与本文撰写之时的最高评分答案相反(archive),DTLS 不是不是基于UDP(或通常为数据报协议)的TLS实现。它包括一个非常类似于TLS的握手的实现,已对其进行了修改以适用于数据报协议。该实现确实处理了数据包重新排序和丢失的问题,但对于用于DTLS握手(和密码选择)的数据包,仅 。换句话说,这些这些数据包传递 的“航班”是可靠传递的。但是,包含有效负载(应用程序数据)的DTLS数据包传递其有效负载的方式没有封装它们的DTLS数据包(通常为UDP)可靠。

此外,虽然DTLS协议(v1.2)是从TLS协议(v1.2)和 claims 派生出来的,以“提供等效的安全保证”,但它却没有2。早在2013年,研究人员就发现了DTLS实现和DTLS协议本身的主要安全缺陷,至少在GnuTLS和OpenSSL实现中,这些缺陷已得到纠正。2

最后,OP询问使用TLS和DTLS时应用程序流如何不同。 TLS旨在通过端到端的经过身份验证的加密可靠地传递数据流。 DTLS用于端对端经过身份验证和加密的应用程序数据的传递,但是其延迟比保证所有应用程序数据传递的延迟低。这就是为什么DTLS用于保护流传输应用程序的安全性的原因,流传输应用程序的损失不如延迟重要, VoIP,实时视频源和MMO游戏。

PS:DTLS 1.3正在开发中。3