基本架构
配对模式
BLE SECURE CONNECTION【蓝牙4.2】配对又有了四种配对模式[传统和低功耗配对有些不一样]:
JUSTWORK,PASSKEY ENTRY,NUMERIC COMP,以及OOB,同样类同于SSP,JUSTWORK防止不了MITM。
威胁建模[思维导图]
相关基础知识
整个蓝牙协议体系结构可分为底层硬件模块、中间协议层和高端应用层三大部分。链路管理层(LMP)、基带层(BB)和蓝牙无线电信道构成蓝牙的底层模块。BB层负责跳频和蓝牙数据及信息帧的传输。LMP层负责连接的建立和拆除以及链路的安全和控制,它们为上层软件模块提供了不同的访问人口,但是两个模块接口之间的消息和数据传递必须通过蓝牙HCI接口的解释才能进行。也就是说,中间协议层包括逻辑链路控制与适配协议(L2CAP)、服务发现协议(SDP)、串口仿真协议(RFCOMM)和电话控制协议规范(TCS)。L2CAP完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上层协议实现的基础,因此也是蓝牙协议栈的核心部分。SDP则是上层应用程序提供一种机制来发现网络中可用的服务及其特性。
低功率,跳频,最低10米,多协议,HCI主机控制接口[类似如命令终端]
蓝牙规范可分两个层次:
- 核心规范:用于规定蓝牙设备必须实现的通用功能和协议层次;软件和硬件组成;模块之间的信息和数据通过HCI的解释才能进行传递【必须】
- 蓝牙应用规范:根据应用场景,可制定不同规范【可选】
传统蓝牙:
基础定义--4.0以前规范, 2.4GHz的波段上定义了79个信道, 每个信道有1MHz的带宽,任何蓝牙技术通信需要在同一时刻处于同一信道之内,通过相互进行通信组成"微微网"。每个"微微网"都有一个"主设备"和一个到7个"从设备"
配对方式--"安全简化配对"每次派生密钥[DHKey]或PIN码,用来做安全验证
低功耗蓝牙[ibeacon--定位作用]:
基础定义--4.0以后规范, 2.4GHz的波段上定义了40个信道;采用AES-CCMP 128位密钥进行加密和完整性保护
安全模式1和2都分级别,安全模式2的leve2采用配对认证和数据签名
蓝牙技术:早期【BR和LE】,蓝牙4.0【BLE】,蓝牙4.2【BLE有了secure connection】
- B:Basic
- R:Rate
- L:Low
- E:Energy
蓝牙hci防护
https://blog.csdn.net/waxgourd0/article/details/6596567
https://blog.csdn.net/qq_29923439/article/details/74980842
蓝牙协议的指令解释
https://blog.csdn.net/xubin341719/article/details/38228705
https://blog.csdn.net/xubin341719/article/details/38303881
https://blog.csdn.net/xubin341719/article/details/38305331
https://blog.csdn.net/xubin341719/article/details/38335533
BLE服务模块和协议
- A2DP(音乐播放)
- SDP 服务发现协议
- SMP 安全管理协议
- L2CP 逻辑链路控制和适配协议
- BNEP 蓝牙网络封装协议
- PAN 个人局域网络
- GATT 通用属性
- AVRCP(流媒体控制及音乐封面传输)
- HFP(免提通话)
- SPP(数据传输)
- PBAPC(电话本同步)
- HID(鼠标)
- BLE DataTrans(低功耗模式下的小数据传输)等协议
- 模块上的VREG高电平开机、低电平关机,开机后自动连接最近连接的手机。
- 蓝牙模块与MCU执行UART 通信,使用AT指令实现连接、断开、拨打电话、音乐播放及远程控制、下载电话本、数据传输等功能。
参考资料
http://www.nsoad.com/Article/wifi/20161118/805.html
https://www.jianshu.com/p/78460132a563
https://blog.csdn.net/waxgourd0/article/details/6596058
https://sec.xiaomi.com/article?id=14
http://bbs.21ic.com/blog-1827100-160300.html
http://www.freebuf.com/articles/wireless/106298.html
http://drops.xmd5.com/static/drops/tips-9651.html
https://blog.csdn.net/leconiot/article/details/76609025
https://mp.weixin.qq.com/s/YCuY4D-IH3ovyBLBQkXwdQ
https://mp.weixin.qq.com/s/5Qp-O3u3bul4kYgE3a0yrw
https://github.com/pybluez/pybluez python蓝牙开发库