• 正文
  • 相关推荐
申请入驻 产业图谱

手把手教你:分析BLE配对第三阶段流程-从机发给主机的Master Identification指令

6小时前
200
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇将结合蓝牙协议文件和抓包分析配对第三阶段第一条指令,从机发送给主机的Master Identification,该指令会携带EDIV和Rand这两个字段,该字段和LTK是一一对应的,大家可以想象成数组的索引,从机和和主机在重连的时候,需要通过这个来查找彼此的LTK。

备注:这里解释下重连的意思,重连是指第一次配对完成之后的再次连接,而且重连是不要走配对的三阶段的,这样可以加快主从机的连接速度。LTK是长期秘钥的意思。

二、阅读说明

1、泰凌微芯片学习者,前期使用过该芯片。

2、能够知道怎么进行创建工程,下载代码。

3、有一块开发板,板上的芯片可以是8251,8253或者8258。

三、正文

1、使用的SDK使用的sdk和demo为该篇文章描述的“手把手教你:BLE设备如何和手机进行加密配对绑定”;

2、配对第三阶段所处的位置

3、从机发给主机的Master Identification所处的位置

4、主机身份信息(Master Identification)格式

如上图所示,Master Identifcation格式由以下几个字段组成

    操作码(Code):0x07EDIV:2字节Rand:8字节

关于EDIV和Rand的作用描述如下:

主要是用于取得共享长期秘钥,用于和上一次配对过的主机建立加密连接。

5、主机身份信息(Master Identification)空中抓包数据

    • 操作码(Opcode):0x07EDIV:0x81ec

random_value:7fa55ee4fc97cd7a

由上述抓包数据来看,和4小节中描述的一样。

四、结尾

本篇结合蓝牙协议文件和抓包数据分析了配对第三阶段的从机发给主机的Master Identification指令,下一篇会继续讲解从机发给主机的Identity Information指令。

我写了一个合集,不依赖 Nordic、泰凌、瑞萨等厂商商用 BLE 协议栈,从无线底层链路层入手,从零手写 BLE 广播扫描逻辑,拆解蓝牙广播包、信道切换、射频调度、广播数据解析完整流程,适合想吃透 BLE 底层、自主开发蓝牙工具、规避商用协议栈授权限制的嵌入式开发者。

相关推荐