LV04-天猫蓝牙Mesh项目-02-进阶开发-06-蓝牙Mesh配网流程抓包分析

本文主要是天猫蓝牙Mesh项目——进阶开发 蓝牙Mesh配网流程抓包分析 的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。

点击查看使用工具及版本
Windows版本 windows11
Ubuntu版本 Ubuntu22.04的64位版本
VMware® Workstation 16 Pro 16.2.3 build-19376536
终端软件 MobaXterm(Professional Edition v23.0 Build 5042 (license))
点击查看本文参考资料
分类 网址 说明
官方网站 阿里云 阿里云官网主页
阿里生活物联平台 生活物联网平台(飞燕平台)主页
AliGenie 天猫精灵开放平台AliGenie主页
阿里物联网平台 阿里物联网平台主页
Bluetooth 技术网站 蓝牙协议规范什么的可以来这里找
Telink Telink | Chips for a Smarter IoT (telink-semi.com)
Telink中文官网
开发手册 AliOS Things开发指南 AliOS Things开发指南,这里是最新版本,可以直接从官网找到
AliOS Things开发指南 AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档
AliOS Things开发指南(3.0) AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档
生活物联网平台开发文档 生活物联网平台(飞燕平台)开发文档
《设备端开发指南》
Wi-Fi IoT品类定义与功能开发 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发
硬件平台 mk3080 WiFi开发板 WiFi开发板使用指南-阿里云开发者社区
esp8266开发板 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com)
TLSR8258 Datasheet Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258
参考资料 AliOS Things 3.0 应用开发指南 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考
IP知识百科 - 华为 (huawei.com) IP的一些相关知识点
点击查看相关文件下载
分类 网址 说明
蓝牙规范相关文档 Core Specification 5.2 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。
《Core_v5.2.pdf》
Mesh Model(v1.1) 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。
本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。
《MshMDL_v1.1.pdf》
Mesh Profile(v1.0.1) 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。
《MshPRFv1.0.1.pdf》
Mesh Device Properties 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。
但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》
GATT Specification Supplement GATT Specification Supplement | Bluetooth® Technology Website。
好像可以在线看:《GATT Specification Supplement》
Assigned Numbers GATT的一些类型定义可以在这里找。
AliOS Things alios-things/AliOS-Things Gitee上的AliOSThings SDK源码仓库
alibaba/AliOS-Things GitHub上的AliOSThings SDK源码仓库
天猫精灵蓝牙Mesh协议栈 alibaba-archive/genie-bt-mesh-stack GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。
之前是在alibaba/genie-bt-mesh-stack这个仓库。
写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a
蓝牙Mesh设备开发指南 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容

这一LV的笔记起始跟前面有所重叠,互相补充吧算是。这一节的笔记主要是蓝牙Mesh配网流程抓包验证。

一、信标阶段

1. 未配网设备信标广播

01、未配网设备信标广播

各部分信息对应如下:

image-20240105193623534

2. 配网器建立连接 - 传输编号0

02、配网器建立连接传输编号0

3. 未配网设备响应连接 - 传输编号0

03、未配网设备响应连接传输编号0

二、邀请阶段

4. 配网器发起邀请 - 传输编号0

04、配网器发起邀请传输编号0

这里的Bluetooth Mesh PB-ADV中Generic Provisioning PDU的Total Length为2,是两个字节,而后面的Bluetooth Mesh Provisioning PDU是两个字节,所以这里的总长度是不包含FCS帧校验的。最后的Attention Duration表示的配网过程等待未配网设备应答的时间,这里给的0应该是表示一直等待。

5. 未配网设备发送配网能力 - 传输编号128

未配网设备发送给配网器的包,传输编号从128开始,可以防止和配网器发的重复。

05、未配网设备发送配网能力传输编号128

6. 配网器响应配网能力 - 传输编号128

06、配网器响应配网能力传输编号128

7. 配网器开始配网 - 传输编号1

07、配网器开始配网传输编号1

8. 未配网设备响应配网开始 - 传输编号1

08、未配网设备响应配网开始传输编号1

三、交换公钥阶段

9. 配网器开始传输公钥 - 传输编号2第一帧

09、配网器开始传输公钥传输编号2第一帧

10. 配网器开始传输公钥 - 传输编号2第二帧

10、配网器开始传输公钥传输编号2第二帧

11. 配网器开始传输公钥 - 传输编号2第三帧

11、配网器开始传输公钥传输编号2第三帧

12. 配网器开始传输公钥 - 传输编号2(共三帧)

这一个没看懂,课程中老师也没怎么解释,后面有需要详细了解了再看。

12、配网器开始传输公钥传输编号2(共三帧)

13、未配网设备响应公钥 - 传输编号2(共三帧)

13、未配网设备响应公钥传输编号2(共三帧)

14. 未配网设备发送公钥 - 传输编号129第一帧

14、未配网设备发送公钥传输编号129第一帧

15. 未配网设备发送公钥 - 传输编号129第二帧

15、未配网设备发送公钥传输编号129第二帧

16. 未配网设备发送公钥 - 传输编号129第三帧

16、未配网设备发送公钥传输编号129第三帧

17. 未配网设备发送公钥 - 传输编号129(共三帧)

17、未配网设备发送公钥传输编号129(共三帧)

18. 配网器响应公钥 - 传输编号129(共三帧)

18、配网器响应公钥传输编号129(共三帧)

四、身份认证阶段

19. 配网器发送认证数据 - 传输编号3

19、配网器发送认证数据传输编号3

20. 未配网设备响应认证数据 - 传输编号3

20、未配网设备响应认证数据传输编号3

21. 未配网设备发送认证数据 - 传输编号130

21、未配网设备发送认证数据传输编号130

22. 配网器响应认证数据 - 传输编号130

22、配网器响应认证数据传输编号130

23. 配网器发送随机数 - 传输编号4

23、配网器发送随机数传输编号4

24. 未配网设备响应随机数 - 传输编号4

24、未配网设备响应随机数传输编号4

25. 未配网设备发送随机数 - 传输编号131

25、未配网设备发送随机数传输编号131

26. 配网器响应随机数 - 传输编号131

26、配网器响应随机数传输编号131

五、分发数据阶段

从这之后就是加密数据了,有很多信息都看不到了就。

27. 配网器分发数据 - 传输编号5第一帧

27、配网器分发数据传输编号5第一帧

28. 配网器分发数据 - 传输编号5第二帧

28、配网器分发数据传输编号5第二帧

29. 配网器分发数据 - 传输编号5(共两帧)

29、配网器分发数据传输编号5(共两帧)

30. 未配网设备响应分发数据 - 传输编号5

30、未配网设备响应分发数据传输编号5

31. 未配网设备发送配网完成 - 传输编号132

31、未配网设备发送配网完成传输编号132

32. 配网器响应配网完成 - 传输编号132

32、配网器响应配网完成传输编号132

33. 配网器发送断开连接 - 传输编号0

33、配网器发送断开连接传输编号0

五、加密后的数据包是啥样?

34. 配网器发送加密后的Mesh消息

34、配网器发送加密后的Mesh消息

35. 节点发送加密后的Mesh消息

35、节点发送加密后的Mesh消息

36. 配网器发送安全网络信标广播

36、配网器发送安全网络信标广播

37. 节点发送安全网络信标广播

37、节点发送安全网络信标广播

38. 抓包工具-未配网数据包

抓包工具-未配网数据包