前言
在学习BLE低功耗蓝牙安全知识前,我们要先对BLE蓝牙有个基础了解,知道BLE是什么?
基础简介
BLE(Bluethooth Low Energy)是指低功耗蓝牙技术,是一种用于无线通信的短距离通信技术。蓝牙4.0标准包含两种不同的蓝牙技术:经典蓝牙(Classic BlueTooth)和低功耗蓝牙。
经典蓝牙和低功耗的蓝牙的区别:
- 经典蓝牙:是早期的蓝牙技术,用于传输较大量的数据和支持更复杂的功能。
- 低功耗蓝牙:更专注于低功耗、简单数据传输和快速连接的应用场景。
一些设备可能仍然选择使用经典蓝牙,而另一些设备则可能使用低功耗蓝牙来实现低功耗和简化的数据传输。低功耗蓝牙是在2010年后出现的,为了满足物联网(IOT)和传感设备的需求,使得非常适合用于低功耗设备,如健康追踪器、智能手表、智能家居等。
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
工作频率
蓝牙技术的频率为2.4GHz,使用的是ISM频段,这是一种被广泛应用于各种工业、科学和医疗设备的频段,常见的有2.4GHz和5.8GHz,2.4GHz是最为广泛使用的频段,被用于各种无线技术,包括蓝牙、Wi-Fi、Zigbee等,不同的无线技术采用不同的子频道和协议来进行通信,避免互相干扰。
低功耗蓝牙一共有40个信道,频段范围从2402GHz到2480GHz,每两兆赫兹一个信道。
组成部分
低功耗蓝牙组成部分包括以下几个主要方面:
- BLE芯片:要开发一款BLE设备,需要搭载BLE芯片,这是实现低功耗蓝牙通信的关键组件。在开发中常用CC2540芯片做BLE的设备,支持嵌入式软件开发,该芯片具备以下几个特点和功能:
- 低功耗特性:能够在保持长时间运行的同时,最大限度地减少功耗消耗
- 高集成度:集成了低功耗蓝牙协议栈和相关硬件模块,包括物理层、链路层和主机层,使其能够直接支持BLE通信,无需外部组件。
- 多种设备角色支持:可以作为中央设备(Central)或外围设备(Peripheral)运行,具备连接和数据交换的能力。它可以主动发起连接,也可以响应其他设备的连接请求。
- 高度可编程性:支持嵌入式软件开发
- 丰富的接口和功能:提供了多种通用输入输出引脚和串行接口(UART、SPI、I2C等)可与其他外部器件进行通信和连接。它还具备功耗管理、安全加密、数据传输和存储等功能。
- 广泛应用于物联网(IoT)设备、传感器网络、健康监测、智能家居、追踪器等领域,通过BLE技术实现设备之间的无线通信和数据传输。
CC2540芯片是单模芯片,区别于手机和PC端的双模芯片,区别在于单模芯片专门用于支持一种通信模式,即低BLE或者经典蓝牙,单模芯片通常具有较低的功耗,需要长时间运行且能耗较低,如传感器网络,健康监测等。而双模芯片可以同时支持BLe和经典蓝牙通信模式,兼容性更广泛,能够与不同类型的蓝牙设备进行通信,一般在一些需要同时支持BLE和经典蓝牙的应用中发挥作用,比如智能手机、音频设备等。
常见的集成CC2540的蓝牙主板如图:
- BLE协议栈:BLE协议栈是一组软件协议和算法,用于管理BLE设备之间的通信,处理蓝牙设备之间的连接、数据传输、安全性和功耗管理等各方面。所谓的协议,就是将指定的字节按照一定顺序排列组合起来,以便在使用时,可以通过该使用时同其他设备进行通信,特点就是有固定的帧格式。BLE协议栈由控制器(Controller)、主机控制接口(HCI)和主机(HOST)组成。
- 硬件部分都是在Controller中实现,像蓝牙基带是负责处理蓝牙通信的物理层操作,包括无线信号的调制解调、发送和接受数据包、功率控制、频率选择等,与上层的链路层、控制器层和主机层进行交互,协同工作实现蓝牙设备之间的无线通信。还比如说RF也在Controller中,RF是蓝牙通信中负责射频信号的收发和处理的部分,包括射频收发器(RF Transceiver)和相关的电路部分,用于调制和解调无线信号、调整发送和接收的频率、控制信号的功率等。
- 软件部分则是通过Host来控制,而在Host中存在这各种各样的协议,如数据的分段与重组、定义配对和密钥的分发、负责设置BLE的工作模式等等。
- 而HCI是一个接口,作为软硬件的桥梁,通过该接口实现软硬件的交互,是至关重要的一部分。
BLE的所有设计都要遵循蓝牙协议规范
- BLE设备角色:BLE定义了两种主要角色:中心设备(Central)和外围设备(Peripheral)。中心设备通常是移动设备(手机、PC),负责发起连接并接受来自外围设备的数据;外围设备通常是传感器、小型设备等,负责广播自身的数据并响应中央设备的请求。
以智能手环为例,手环是外围设备,而智能手机是中心设备,手环通过蓝牙将一些心跳、健康监测数据发