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

手把手教你:配对过后的重连流程-抓包数据分析

07/21 09:29
123
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

上一篇文章讲解了从机主机发送重连的流程,本篇在补充一下关于主机主动发起重连的流程。

二、阅读说明

1、泰凌微芯片学习者。

2、蓝牙协议学习者

三、正文

1、主机主动发起重连流程讲解

如上所述,主机主动发起重连是直接从链路层开始的,主机直接发送LL_ENC_REQ指令给到从机。与从机主动发起的不同之处在于,少了一个Security Request指令。

2、重连空中抓包数据

由上图可知,重连的流程和1小节中图片展示的一致,那么从机怎么知道当前的是重连呢,也就是说从机需要看哪些信息。这里重点关注主机发出的LL_ENC_REQ命令,LL_ENC_REQ命令将在第3小节讲解

3、主机发出的LL_ENC_REQ命令

其中我们需要关注的是的Rand和EDIV,主机发送的这条指令给到从机,从机会根据这两个数组检索到从机保存的长期密钥(LTK)。

4、主机发出的LL_ENC_REQ空中抓包指令

由上图可知道:

Random Number:6573296838288836148 (0x5b390aa5c9678634)

Encrypted Diversifier: 18732 (0x492c)

接下来我会和第一次配对从机发给主机的EDIV和Rand,请看第5小节。

5、从机发出的LL_ENC_REQ空中抓包指令

5.1、指令所处的位置

5.2、空中抓包指令

Encrypted Diversifier (EDIV): 0x492c

Random Value: 348667c9a50a395b

由上图所示,该值与第4小节中的一样。

备注:Rand字节需要反一下。

四、结尾

本篇结合蓝牙协议和抓包讲解重连的流程,下一篇将讲解安全连接相关内容。

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

相关推荐