Skip to content
Wireshark Wiki 中文翻译整理专题首页原始页面

DTLS

DTLS 是 SSL 协议的派生。它提供相同的安全服务(完整性、认证和机密性),但运行在 UDP 协议之上。DTLS 由多个项目实现,包括 CyaSSL 和 OpenSSL 项目。

历史

创建该协议是为了完成 SSL 无法完成的事情:在 UDP 之上创建安全协议。这就是该协议是 TLS 1.1 的一种改编的原因。

协议依赖

  • UDP:通常,DTLS 使用 UDP 作为其传输协议。DTLS 流量没有 well known UDP port。OpenSSL v0.9.8b 使用端口 4433。

Wireshark

DTLS 解析器适用于 OpenSSL v0.9.8b 的 DTLS 实现。它由 Authesserre Samuel 编写。

首选项设置

如果 Wireshark 在编译时启用了 SSL 解密支持,首选项中将出现一个用于 DTLS 的新选项。只有在能够提供 RSA keys 时,它才适用于 RSA key exchange。有关如何配置 RSA private key 的详细信息,请研究 SSL 页面。

示例捕获文件

将 RSA 配置设置为 IP address:127.0.0.1, Port:4433, Protocol:data, Key File:/path/to/snakeoil-rsa.key

  • SampleCaptures/snakeoil.tgz

创建示例数据

来自 ASK 问题 Decrypt DTLS packet:

下面是一个在 Linux 主机上的可工作场景,

启动 Wireshark,将 DTLS 首选项 Pre-Shared Key 设置为 0102030405060708090a0b0c0d0e0f (重要:在启动下面的会话之前开始捕获)

作为服务器,在 Linux 控制台中运行:

$ PSK=0102030405060708090a0b0c0d0e0f$ openssl s_server -dtls -psk $PSK -cipher PSK-AES128-CBC-SHA -nocert -accept 23000

作为客户端,在另一个 Linux 控制台中运行:

$ PSK=0102030405060708090a0b0c0d0e0f$ openssl s_client -psk $PSK -dtls -connect 127.0.0.1:23000

在客户端控制台中输入一些内容并按 Enter,它应该会显示在服务器控制台上,并且在 Wireshark 中,DTLS 数据包应会在 Application Data 数据包中显示同样的数据。

显示过滤器

PROTO 显示过滤器字段的完整列表可以在显示过滤器参考中找到。

仅显示基于 DTLS 的流量:

 dtls

捕获过滤器

在捕获时不能直接过滤 DTLS 协议。不过,如果你知道所使用的 UDP 端口(见上文),可以基于该端口进行过滤。

仅捕获默认端口 (80) 上的 DTLS 流量:

 udp port 80

外部链接

讨论

Imported from https://wiki.wireshark.org/DTLS on 2020-08-11 23:13:39 UTC

相关 Wireshark Wiki 页面

网络分析技术档案