This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3220SF-LAUNCHXL:在 CC3220SF Launchpad 的 MQTT 客户端演示中捕获和分析 MQTT 数据包

Guru**** 2553370 points
Other Parts Discussed in Thread: CC3220SF, UNIFLASH

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/679360/cc3220sf-launchxl-capturing-and-analyzing-mqtt-packets-in-mqtt-client-demo-for-cc3220sf-launchpad

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:CC3220SFUNIFLASH

您好!  

我已按照中的 MQTT 客户端演示进行操作    

我能够切换 LED 并将文本发送到 CC3220SF Launchpad。 现在、我要捕获往返于 Launchpad 的 MQTT 数据包。 为此、我将使用 wirehshark。 但是、当我运行 Wireshark 时、我无法看到任何 MQTT 数据包。 是因为数据包已加密还是其他内容?  

谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    是否正在运行安全 MQTT?

    您可以检查 define SECURE_CLIENT。

    如果它是安全的、您将无法看到任何内容。

    如果是非安全的、您应该能够在 TCP (端口为1883)上看到 MQTT 负载。

    此致、

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢! 我将检查并告知您。


    我注意到代码和应用程序(MMyMQTT)中都有要指定的客户端 ID 和密码。 但是,当我发布到任何已订阅的主题时,我不会要求输入任何用户名或密码。
    是否有我遗漏的用途?

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有、我没有运行安全 MQTT、代码中注释了#define SECURE_CLIENT。 但是、我使用的是 CC3220SF Launchpad、这是一款安全器件。 在刷写演示之前、我在 Uniflash 中添加了证书。 这会影响什么吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在客户端和服务器之间的握手过程中使用用户和密码(连接过程)。 它与特定主题无关。

    使用内置用户名/密码身份验证时、MQTT 代理将根据实施的身份验证机制评估凭据。  

    在客户端上设置用户名和密码时、它将以明文形式发送给代理。 这将允许攻击者窃听、是获取凭据的一种简单方法。  保证用户名和密码完全安全传输的唯一方法是使用传输加密

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    因此、在这种情况下、您应该在监听器的 TCP 层之上看到 MQTT 负载。

    您的监听器软件上可能没有 MQTT 解析器。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我正在使用支持 MQTT 的 Wireshark: www.wireshark.org/.../mqtt.html

    您是否建议使用其他计划?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以共享监听器捕获吗?

    我正在使用 omnomnpeek、但它不是免费许可证。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此处:  

    e2e.ti.com/.../Captured-Packets.rar

    如果您发现任何 MQTT 数据包、请告诉我。谢谢、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它全部包含多播数据包、mdns 和 SSDP。

    您是否配置了一些筛选器?

    您是否曾成功捕获一些 TCP 单播数据而不是 MQTT?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些是滤波器:  

    我有但没有与该项目相关的项目。

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些滤波器是默认滤波器、因此我想它是可以的。

    但是、我使用的是真正的监听器、即监听空气、而不仅仅是特定的接口。

    我认为 Wireshark 只是监听它所连接的接口、因此您将无法看到不涉及该接口的单播连接。

    这就是您看到多播信号也被指定到接口的原因。

    仅在测试中、您可以在监听器接口连接到的 PC 上打开 MQTT 客户端并捕获连接。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将 CC3220SF Launchpad 和手机(MyMQTT 应用)以及我的笔记本电脑(Wireshark)连接到同一个 WiFi 网络。

    在 PC 上打开 MQTT 客户端意味着什么? 我目前正在手机上使用应用程序来控制 Launchpad。

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您使用的是哪种监听器?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用 Omnipeek 作为软件、使用 Cisco 软件狗作为 WiFi。

    我的意思是、据我所知、Wireshark 正在捕获在 PC 上连接的接口上看到的任何内容、即不是每个数据包、而是仅捕获指定给该特定 PC 的数据包、当然也包括多播和广播。 也许这可以解释您看到的内容、但我不确定。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Cisco 软件狗提供 WiFi 还是监听器?

    我尝试在同一手机上运行另一个称为数据包捕获的应用程序、而 MyMQTT 应用程序用于捕获某些数据包、但这也不起作用。

    您是否建议通过 PC 而不是移动应用来控制 Launchpad?

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想使用 HiveMQ WebSocket Client 而不是 MyMQTT 应用程序。
    www.hivemq.com/.../

    您认为这可能有助于捕获数据包吗?


    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我解决了这个问题。

    感谢你的帮助!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    含义:使用内置用户名/密码身份验证时、MQTT 代理将根据实施的身份验证机制评估凭据。

    我是否有任何方法可以查看代码中指定的用户名/密码? 例如、 使用 Wireshark

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    那么、该线程是否已解析? 我可以看到您解决了您的问题。

    您打开了一个并行线程、主题为 http://e2e.ti.com/support/wireless_connectivity/simplelink_wifi_cc31xx_cc32xx/f/968/t/682718

    是否仍然需要?

    无论如何、您将无法在监听器上查看凭据。 否则、将很容易破解 MQTT 握手。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    是的、此线程已解析、但另一个线程尚未解析。
    在哪里可以看到这些凭据、或者使用哪种工具?

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些凭据在客户端和服务器之间进行协调、取决于连接是否受保护。

    MQTT 允许发送 用户名和密码来验证客户端以及进行授权。 但是,如果密码未通过实施加密或散列,或者下面使用 TLS,则以明文形式发送。

    因此、如果您使用的端口号是8883、则意味着 MQTT over SSL。 因此、您将无法使用任何工具来查看它。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我没有使用安全端口8883。 我使用的是端口1883。 我可以看到在 MQTT 客户端桌面应用程序中设置的 Cliend ID 以及客户端用户名和密码。 但是、我看不到 launchpad 代码中设置的用户名和密码? 是否可以嗅探它们?

    谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    因此、正如我提到过的、如果 TCP 层不受保护、您应该能够在监听器上看到它。

    我自己进行了测试、在这两种情况下、您都可以看到、使用用户名/密码、而不使用。

    不包括:

    其中:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    该连接数据包从 LaunchPad 发送、对吧?

    我无法在 Wireshark 上看到此数据包。 是因为接口不同?

    谢谢您、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、它来自 LaunchPad。

    正如我之前提到的、这可能与您如何设置 Wireshark 以及您是可以真正捕获空气还是只捕获您的接口有关。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、安全客户端只会隐藏用户名和密码、而不会隐藏其余数据?

    谢谢、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    否、如果客户端受到保护、例如与端口8883一起工作、则整个会话将被加密、因为它在加密的 TCP 链路上运行。

    在这种情况下、您将无法在监听器上看到任何内容。

    我提供的监听器捕获用于不安全的链接。

    Shlomi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    如果您看不到任何内容,您是指数据捕获将被加密,还是根本看不到?

    谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    数据已加密。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、

    它使用哪种加密?

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于它基于 TCP 层加密、因此在握手期间、两个对等设备(客户端和服务器)就方法(SSL、TLS 等)和加密套件达成一致。

    它实际上取决于服务器端,但通常服务器会从客户端仍可支持的列表中选择最佳。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢主席先生。

    钥匙呢? 是否在代码中?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、  

    我注意到客户端发送数据的 IP 地址与代码中设置的代理 IP 地址不同。  

    代码中的值为192.168.178.67、而捕获中的值为192.168.30.241

    为什么是这样?

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    198.41.30.241 = m2m.eclipse.org

    1月
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复!