videocalling
Illustration of DTLS(数据报传输层安全协议) in video calling

DTLS(数据报传输层安全协议)

协议

为基于 UDP 的应用程序提供隐私和数据完整性的安全协议。

什么是 DTLS?

数据报传输层安全协议(DTLS)是一种为基于数据报的应用程序(例如运行在 UDP 上的应用)提供安全性的通信协议。它基于传输层安全协议(TLS)——用于保护 HTTPS 网站的同一协议——但针对不可靠的传输连接进行了适配。

为什么 UDP 需要特殊的安全机制

标准 TLS 需要可靠的数据流(TCP)。如果丢失一个数据包,TLS 会停下来等待重传。这会导致实时视频出现不可接受的延迟。

DTLS 通过允许丢包和乱序来解决这个问题。它不会因为丢失几个数据包就中断握手或加密上下文,使其非常适合实时媒体传输。

在 WebRTC 中的角色

在 WebRTC 中,DTLS 是强制性的。它有两个主要用途:

  • 密钥交换(SRTP):DTLS 执行握手以安全地交换 SRTP(安全实时传输协议)使用的加密密钥。密钥交换完成后,实际的视频/音频数据通过 SRTP 发送。
  • 数据通道:对于非媒体数据(如通过 SCTP 发送的聊天消息或文件传输),数据直接封装在 DTLS 数据包内。

安全特性

DTLS 可以防止窃听(隐私保护)、篡改(消息完整性)和消息伪造。它确保你正在与你认为的对象进行通信,并且中间没有人能够读取或修改数据流。