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

手把手教你:配对过后的重连流程

07/20 08:33
114
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

原本这一章节用来讲解安全连接的,不过考虑到重连这块的内容未进行讲解,故该篇先讲解重连相关的流程。

二、阅读说明

1、泰凌微芯片学习者。

2、蓝牙协议学习者

三、正文

1、重连流程讲解

1.1、重连流程示意图

流程解释:

    主机和从机进行再次连接,从机首先发起Security Request命令给到主机,要求主机开始走加密流程,主机收到从机发出的Security Request命令之后,开始走链接层加密流程,关于连接层加密流程的示意图如第2小节所示。

1.2、Security Request命令讲解

上图是Security Request命令的数据格式,其中AuthReq字段内容如下:

当主机收到该命令之后,会去本地取得当前LTK的安全属性,如果当前的安全属性和AuthReq字段里面的安全属性相一致,则开始下一阶段,发起链接层加密请求也就是第2小节的内容,如果不一致则重新开始进行配对,

2、连接层加密流程示意图

上图是链接层加密流程示意图,关于里面的命令我在之前的文章中有详细的讲解,本次只需要注意LL_ENC_REQ命令。LL_ENC_REQ命令格式如下图所示:

在该命令中会携带Rand和EDIV字段,从机通过该字段可以找到保存在本地的长期密钥LTK,只有找到了LTK,后续从机和主机的通信才能正常的加解密。

四、结尾

本篇结合蓝牙协议讲解了重连的流程,下一篇将讲解下重连的抓包数据。

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

相关推荐