Encryption 反向工程特定的蓝牙通信协议

Encryption 反向工程特定的蓝牙通信协议,encryption,bluetooth,reverse-engineering,wireshark,sniffing,Encryption,Bluetooth,Reverse Engineering,Wireshark,Sniffing,我阅读stackoverflow的答案已经有一段时间了,这是我第一次被要求问一个问题: 我有一个小型传感装置(字面上是一个黑匣子),用于体育活动期间跟踪加速度和GPS数据(根据供应商的专利,不一定具有相同的频率)。会话结束后,可以将设备连接到智能手机并导入会话数据以查看统计数据。 现在我正试图获取原始数据,以便对其应用一些自己的统计数据 我知道该设备通过蓝牙连接到我的手机。因此,我根据本教程激活了Bluetooth HCI snoop日志: 然后,我可以将这些文件重命名为PC上的.cap文件,

我阅读stackoverflow的答案已经有一段时间了,这是我第一次被要求问一个问题:

我有一个小型传感装置(字面上是一个黑匣子),用于体育活动期间跟踪加速度和GPS数据(根据供应商的专利,不一定具有相同的频率)。会话结束后,可以将设备连接到智能手机并导入会话数据以查看统计数据。 现在我正试图获取原始数据,以便对其应用一些自己的统计数据

我知道该设备通过蓝牙连接到我的手机。因此,我根据本教程激活了Bluetooth HCI snoop日志:

然后,我可以将这些文件重命名为PC上的.cap文件,并将其加载到wireshark中,从而传输这些文件。这就是它变得棘手的地方: 我发现,第一个连接是通过蓝牙低能量建立的。当建立连接并且用户选择通过应用程序从设备下载会话时,连接将切换到正常的蓝牙连接。 我知道该设备包含一个GPS和一个9轴加速计,包括一个陀螺仪

显然,传输数据的蓝牙协议是SPP协议(),用于模拟RS-232连接

我附上了wireshark的截图,显示了重新组装的数据包。我不知道它包含什么,Wireshark的渲染对我来说没有任何意义。框架内容显示在最底部的选项卡中。左侧是原始十六进制传输,右侧显示渲染版本。它既不像任何GPS语句(),也不像任何加速度计数据:

一般设置是无加密连接,但在某些阶段主机和控制器尝试切换到加密,但这永远不会传输到外围从机(据我所见)。我想知道如何理解这些数据,是否有一种方法可以让我知道加密是否被激活,如果被激活,它是否被记录,我可以从这个日志中检索密钥

有谁能帮我弄清楚这里的数据,或者告诉我在哪里可以找到一些关于数据是否加密的提示吗

编辑: 我添加了第一个SPP传输包的屏幕截图。有问题的数据包和有效载荷用黑色标记。在开始时,它似乎包含一些关于设备和其他配置设置或传感器初始值的信息。我怀疑该应用程序和设备已经解决了一个专有的加扰或加密,因为在开始时有可读的值,但不是在图像中标记的黑框之后。我的怀疑是,蓝牙加密根本没有被使用,因此我根本没有机会解密这些信息?有人能证实或否认这种怀疑吗

在哪里我可以找到一些关于它是否加密的提示

您在Wireshark中看到的是主机和控制器之间的HCI接口(命令和事件)。由于加密是在控制器中完成的(请参阅Bluetooth Core spec.Vol.1 Part A第5.4.3节),因此您看到的是未加密的数据

有人能帮我弄清楚这里的数据吗

从你的一张截图很难理解。我建议您看看paricular中的图6.1:


信息字段中,您应该找到您的数据。

很难确认您的怀疑,但当然,他们绝对可能在应用层使用加密,而不是在链接层使用BLE加密;或者两者都可以使用。要了解他们是否使用BLE加密,您必须查找指示该加密的HCI命令;但这与你的目标无关。