如何解密BLE空中包

来源:互联网 发布:免费cad制作软件 编辑:程序博客网 时间:2024/05/16 14:54

在BLE开发及debug中,我们常常会需要抓空中包,但是很多时候会遇到抓到的包是加密的(常见带锁标识)。

那么该如何去解密这些data呢?

首先来看一下,数据加密的原因,这主要源于BLE对数据的隐私保护,会使用某种加密方式,通过link key来加密信道数据,以BT core spec4.2为例,该link key为Long term key(LTK)。所以为了解密数据,就需要知道该LTK。

常用的方式,是通过HCI  log来获取,当然,如果您有将该Key 写入过Flash或filesystem保存,也可以通过读出的方式打印出来。

举例:

一般,BLE中link key出现在SM的pairing过程(Phase 2)完成以后。首先可通过查找command:HCI_LE_Long_Term_Key_Request(Responder)或HCI_LE_Start_Encryption(Initiator),从其中的参数中找到long_term_key,将Value值倒序输出,即为Link key。

1)以just work配对方式为例,HCI log中,查找Long term key方式如下图示,找到key value为67e299ae:12bca990:f6bbeba9:eaac1eca


2)在Air sniffer log中,与之对应的link key为CA1EACEA:A9EBBBF6:90A9BC12:AE99E267,输入->验证,参考下图:



如此步骤后,就可以看到air data了。

当然,对于解密传统BT air包,是相似的原理。


0 0
原创粉丝点击