首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DTLS解密成功后,无法在wireshark中解码COAP数据包

DTLS解密成功后,无法在wireshark中解码COAP数据包
EN

Stack Overflow用户
提问于 2021-02-19 00:27:04
回答 1查看 441关注 0票数 0

我正在尝试调试LWM2M协议问题。我需要知道COAP服务器和COAP客户端之间传输的是什么消息。由于流量是使用DTLS加密的,因此我需要在wireshark中提供预共享密钥才能查看有效负载。Wireshark正在成功解密负载,但我看不到底层的COAP协议消息。我只看到了原始数据(“应用程序数据”):

但是,当我尝试在虚拟设置上嗅探未加密的COAP流量时,我可以正确地看到COAP消息:

如何在加密后使用wireshark查看COAP协议流量?

EN

回答 1

Stack Overflow用户

发布于 2021-02-19 02:33:11

问题是您使用的是COAP而不是IANA-registered port of 5684的非标准端口号,并且Wireshark COAP解析器的proto_reg_handoff_coap()函数只使用该固定的、不可配置的端口(DEFAULT_COAPS_PORT)注册到DTLS解析器。有一些可能的方法可以解决这个问题和/或解决它。

  1. 如果可能,请将应用程序更改为使用标准端口5684。

  1. 修改Wireshark COAP解析器,使其也注册到具有所需端口的DTLS解析器,或者更好的做法是允许端口可配置,甚至可以使用端口范围首选项来注册多个端口。有关在特定平台上编译和开发Wireshark的信息,请参阅Wireshark Developer's Guide

  1. 提交了一个Wireshark Issue,请求对COAP解析器进行增强,以允许DTLS注册的端口可配置。同样,范围首选项可能更好,因为它将允许注册多个端口。

  1. 假设第一个选项是不可能的,并且其他选项将花费更长的时间,并且不能解决直接的问题,即为您现有的捕获文件剖析有效负载作为COAP,您可以使用诸如TraceWrangler (或其他类似的Capture file editors and/or anonymizers工具)之类的程序来重写所有包的UDP端口值57845到5684.这应该允许将有效负载传递给COAP解析器,而不需要任何其他更改。如果您使用TraceWrangler,,则基本步骤为:

代码语言:javascript
运行
复制
- Add Files: Choose your file, i.e., `file.pcapng`.
- Taskname: Anonymize Files.
- Payload: Deselect _"Remove all unknown layers..."_ as you want to keep everything.
- PCAPng: Action=Passthrough, as there's no need to replace original comments here.
- Layer 4, UDP: Action=Replace.  Select _"Replace UDP ports by list"_, then choose _Add_.  Enter 57845 for the _Original_ port number and 5684 for the _Replacement_ port number, then click _Add_.
- Select _Okay_.
- Select _Run_.
- When the **Status** indicates, _"Task complete"_, you should be able to open the newly created packet capture file, named `file_anon.pcapng`, in Wireshark and Wireshark should now recognize the payload as COAP.

免责声明:我自己还没有测试过,但它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66264012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档