低功耗蓝牙瞄准多个市场,特别是移动智能终端,智能家居,互联设备等领域,主要特点包括:
- 低功耗,使用纽扣电池就可以运行数月至数年。
- 快连接,毫秒级的连接速度,传统蓝牙甚至长达数分钟。
- 远距离,长达数百米的通信距离,而传统蓝牙通常10米左右。
- 直接测试模式(DTM):通过测试仪器直接连接蓝牙设备控制接口,自动完成与蓝牙模块之间的交互命令和蓝牙参数的设定,从而对蓝牙模块进行测试。
- 链路层(LL):定义逻辑通道并为通道选择调频技术;控制设备的射频状态(等待、广播、扫描、发起连接等)和角色;控制数据包的发送时机、完整性等。
- 主机控制器接口(HCI):为主机和控制器提供统一的通信接口。这一层的功能可以通过软件API来实现,也可以使用硬件外设来实现。
- 逻辑链路控制和适配协议(L2CAP):用于协商与建立逻辑通信信道。BLE使用固定逻辑通信信道来传输协议数据,可避免建立信道时带来的额外时间消耗。
- 安全管理器(SM):定义了设备配对与密钥分配的方式,并为设备之间的安全连接和数据交换提供服务。
- 属性协议(ATT):定义了访问服务端设备数据的规则(比如读、写等)。数据存储在属性服务器的属性(attribute)中,供属性客户端执行读写操作。
- 通用属性规范(GAP):负责处理设备的访问模式和程序,具体包括定义蓝牙设备的角色、通信操作模式和过程,定义蓝牙地址、蓝牙名称等与蓝牙相关的参数。
- 通用访问规范(GAP):主要用来控制设备连接和广播。通用访问规范可使你的设备被其他设备发现,并决定了你的设备是否可以或者怎样与交互设备进行通信。
- 各种应用程序:基于蓝牙协议的应用程序
- 通用属性配置文件(GATT):GATT配置文件定义了如何通过BLE连接来交换所有配置文件和用户数据。它为基于GATT的配置文件提供了参考框架和精确的用例,以确保不同供应商生产的设备之间的互操作性。标准的BLE配置文件都以GATT配置文件为基础,并且必须遵守GATT配置文件才能正常运行。
尽管蓝牙规范在属性协议(ATT)中定义了属性,但定义的这些属性是与ATT相关的。ATT依靠公开的所有概念提供一系列精确的协议数据单元(PDU),以允许客户端访问服务器上的属性。
而GATT进一步建立了严格的层次结构,允许使用一组简洁的规则在客户端和服务器之间访问与检索数据,而这些规则共同构成了所有基于 GATT 的配置文件使用的框架。
在GATT服务器中,属性被分组为服务(service),每个服务可以包含零个或多个特征(characteristic),不同的特征之间用唯一的 UUID区分,这些特征又可以包括零个或多个描述符(descriptor)。对于声称与 GATT 兼容的任何 BLE 设备来说,都具有相应的层次结构。
尽管BLE设备的配对操作是加密的,但每个特征的值可以在不加密的状态下进行读写。当特征值发生改变时,蓝牙设备会收到相应的通知。
https://blog.csdn.net/XiaoXiaoPengBo/article/details/115156929
工具:wireshark3.4+52832dongle+lifesmart智能灯泡+lightblue app+lifesmart app
注意:python版本一定要换
2.确定蓝牙设备mac地址
打开蓝牙灯泡并用产品官方app与其蓝牙连接,再使用lightblue检测蓝牙信号强度,找到一靠近灯泡信号飙升远离灯泡信号掉的最明显的设备就是蓝牙灯泡。我这里是第二个设备,BULB。
插上52832,用btatt过滤规则,查看ATT层传输的数据。device选择mac地址监听目标设备,当52832指示灯变从红色闪烁变绿即连接成功。(连接时手机不能熄屏,要留在lifesmart应用否指连接断开)
4.重放攻击
现在灯是开的,我们通过lightblue app 改写上述服务的特征值,达到重放攻击。
输入Value: 0e000000000000000000000410020180.灯灭。
原文始发于微信公众号(道格安全):蓝牙灯泡重放攻击 | 49期
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论