秘密出局:Wireshark加密数据视图

查看Wireshark加密数据像凝视矩阵

使用SSL/TLS连接Wireshark如果你不碰巧归入这种不幸的灵魂类别中, 我们还能画出一幅不错的图片

秘密出局试下ARMQ嵌入式Dev Kit

NetburnerARMCTEXM7嵌入式开发包用于IoT产品开发与工业自动化

多学点NetBurneri

想象一下你坐在那里 做开发者的事情有两台机器 电脑 和全新闪亮MODM7AE70开发包.项目需要从设备向PC发送敏感数据没问题带NetBurnerSSL/TLS库中首次重试应用并立即运行快速测试假想东西不完全正确看见数据发送前它触动网络然而,你从另一端得到的东西不正确或缺失资讯 或异性神秘化化容我开Wireshark 看看这里发生什么 几分钟后你再测试 并见下

wireShark捕捉显示加密数据
wireshark抓取加密显示数据

中大都看起来棒极了,直到你实际查看数据, 并用“加密应用数据: .尝试调试问题连接Wireshark 和用您不知道的语言编辑文章大同小异也许你知道它是什么 假设说说不幸地,这对你没有帮助 当你凝视混合 不熟悉垃圾 坐在你面前

幸运的是,有希望维塞克可以解码信息 并让你看到电线发送的准确性文章中,我们将覆盖你所经历的步骤 以获取调试优美金矿第一,我们讨论需要用Wireshark设置信息并演示如何操作并研究从NetBurner设备获取信息归根结底,我们将显示它像实战

向Wireshark添加机密

我们不会深入TLS文握手, 但基本理解它如何工作会帮助解释我们需要在Wireshark做什么在所有安全SSL/TLS连接中,客户端和服务器间回发信息使用客户端在TLS握手期间生成的秘密密钥加密(也称总机密钥)。没有此密钥, 任何一方都无法解密由另一方加密的任何消息 。

秘密密钥类似于解码器Pin Ralphie 如此兴奋, 只是为了意识到他被蒙进Ovaltine解码营销消息希望你自己的加密数据更有趣点

密钥像解码器插针
无密钥无法解密消息

生成这个秘密密钥 并安全从客户端发送服务器 有点超出本文章范畴寻找更深解关键部分我们需要知道的是 没有这个秘密 我们破解客户端和服务器间所存信息的可能性微乎其微

幸运的是,向Wireshark添加信息相当直截了当添加机密优先转到Edit->Preferences->Protocols->TLS从Wireshark菜单从此窗口底部可以看到字段标签为“(预)-Master-secret”。并选择内含密钥的文件(下文NetBurner应用更多此点)。

wireshark偏好
wireshark首选项

现在我们知道哪里装密钥 问题在哪里取幸运的是 NetBurner设备小小代码修改 会给你所有你需要的东西 开始查看网络流量记住这一点仅应用于非生产环境调试.说到真实世界使用的秘密密钥 甘道夫说最好

NetBurner应用代码修改

系统库修改

现在让我们来看看 获取这个秘密如前所述,为获取解密包所必备的秘密, 我们需要对密码库做几处修改不用担心,虽然短 无痛易插取先打开文件 \libraries\crypto\src\tls.c .

文件顶端添加代码片段如下:

#包含
             
              evenmastersecret(costchar*pmsb#defineshow_secrets(1)
             

位代码定义SaveMasterSecret()输出所有传出串口下移函数MakeTlsMasterSecret()替换

/*打印主密*/put

打印主密*//输出pmsBufSaveMasterSecret(pmsBuf,pmsPos);

选择 SSL/TLS示例或已工作应用重建系统库和项目使用最新工具时 或用NBEclipse或用命令行 所有东西都处理 当重建项目本身使用NNDK2x工具时, 需要重建系统库

示例代码修改

本文章使用3x工具 并使用SSL客户端实例测试很简单 并显示NetBurner设备 连接SSL服务器实例可见 \examples\SSL\sslclient .

举个例子,除以上系统修改外,你还需要做两件事情首先是向示例添加 ssl服务器IP地址简单改变宏SSL_SERVERNAE正确IP地址重构程序二级实际启动SSL服务器接收连接为此,我们使用命令行OpenSSL命令

server-key.key-cert服务器.crt-access 4433-no_cache

注意你需要证书证书认证和密钥密钥方便使用使用NNDK工具提供证书生成脚本更多资料见我们的文章自签名证书.国旗接受命令SSL服务器接受连接的端口标志- No_tickt-no_cache将防止连接使用会话复发,这将使我们的生活更容易解密Wireshark包

启动服务器后 开始监听Wireshark包使用MTTY串行终端时, 我们推荐你直接登录串行数据到文件免得重定向键 简单拷贝粘贴直接登录数据,直接登录传输- >Log到文件从顶端菜单选择数据保存地最后,加载程序模块您应该看到像下文的东西(我们略微修改示例以只显示隐密密密钥)。

串行终端显示密钥

示例完成运行后停止日志并打开文件 所有文件都登录入文本编辑器我们只要从文件Client_RANDOM开始的线程,所以删除任何其他内容

并发全局

if you haven't alreshark停止打包抓取现在我们有包数据 密钥 并知道如何安装到Wireshark回去查查看能不能弄明白 电线上寄出的东西

通过上文提到的菜单加载密钥文件Edit->Preferences->Protocols->TLS和voila下方图像显示包信息标签表示“注销TLS(34)字节”。点击时显示包解密数据 正像我们希望的那样

解密包数据

下题

可以看到设备间加密连接中实际发送的东西, SSL/TLS应用调试问题会神奇地消失吗?绝对不行使用加密连接可能具有挑战性, 即使你能看到所有片段说到做到 了解你所看到的 肯定能大有改变

如有问题或附加小技巧可调试加密连接时使用,请自便在下文评论中通知我们或直接发送sales@netburner.com.

分享此文章

订阅通讯

取月更新博客IoT和嵌入式技术新闻、趋势、教程和最佳做法或选择产品修改通知

留答题
点击访问登录或寄存茄子