想象一下你坐在那里 做开发者的事情有两台机器 电脑 和全新闪亮MODM7AE70开发包.项目需要从设备向PC发送敏感数据没问题带NetBurnerSSL/TLS库中首次重试应用并立即运行快速测试假想东西不完全正确看见数据发送前它触动网络然而,你从另一端得到的东西不正确或缺失资讯 或异性神秘化化容我开Wireshark 看看这里发生什么 几分钟后你再测试 并见下
中大都看起来棒极了,直到你实际查看数据, 并用“加密应用数据:
幸运的是,有希望维塞克可以解码信息 并让你看到电线发送的准确性文章中,我们将覆盖你所经历的步骤 以获取调试优美金矿第一,我们讨论需要用Wireshark设置信息并演示如何操作并研究从NetBurner设备获取信息归根结底,我们将显示它像实战
向Wireshark添加机密
我们不会深入TLS文握手, 但基本理解它如何工作会帮助解释我们需要在Wireshark做什么在所有安全SSL/TLS连接中,客户端和服务器间回发信息使用客户端在TLS握手期间生成的秘密密钥加密(也称总机密钥)。没有此密钥, 任何一方都无法解密由另一方加密的任何消息 。
秘密密钥类似于解码器Pin Ralphie 如此兴奋, 只是为了意识到他被蒙进Ovaltine解码营销消息希望你自己的加密数据更有趣点
生成这个秘密密钥 并安全从客户端发送服务器 有点超出本文章范畴来寻找更深解关键部分我们需要知道的是 没有这个秘密 我们破解客户端和服务器间所存信息的可能性微乎其微
幸运的是,向Wireshark添加信息相当直截了当添加机密优先转到Edit->Preferences->Protocols->TLS
从Wireshark菜单从此窗口底部可以看到字段标签为“(预)-Master-secret”。并选择内含密钥的文件(下文NetBurner应用更多此点)。
现在我们知道哪里装密钥 问题在哪里取幸运的是 NetBurner设备小小代码修改 会给你所有你需要的东西 开始查看网络流量记住这一点仅应用于非生产环境调试.说到真实世界使用的秘密密钥 甘道夫说最好
NetBurner应用代码修改
系统库修改
现在让我们来看看 获取这个秘密如前所述,为获取解密包所必备的秘密, 我们需要对密码库做几处修改不用担心,虽然短 无痛易插取先打开文件
.
文件顶端添加代码片段如下:
#包含evenmastersecret(costchar*pmsb#defineshow_secrets(1)
位代码定义SaveMasterSecret()
输出所有传出串口下移函数MakeTlsMasterSecret()
替换
/*打印主密*/put
带
打印主密*//输出pmsBufSaveMasterSecret(pmsBuf,pmsPos);
选择 SSL/TLS示例或已工作应用重建系统库和项目使用最新工具时 或用NBEclipse或用命令行 所有东西都处理 当重建项目本身使用NNDK2x工具时, 需要重建系统库
示例代码修改
本文章使用3x工具 并使用SSL客户端实例测试很简单 并显示NetBurner设备 连接SSL服务器实例可见
.
举个例子,除以上系统修改外,你还需要做两件事情首先是向示例添加 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.