赞
踩
蓝牙配对是建立安全连接的关键过程。对于传统蓝牙应采用SSP配对方式,而低功耗蓝牙4.0和4.1的版本应使用legacy pairing配对方式,4.2以后的版本应采用Secure connection的配对方式。
传统的蓝牙采用的配对方式如下:
蓝牙简单安全配对SSP的流程如下图所示:
低功耗蓝牙依据版本的不同,采用Secure Connection 和legacy pairing。
SSP生成密钥的流程如下图:
其中各个步骤如下:
Secure connection用于蓝牙4.2以及之后的版本。Secure connection的流程如下:
各个步骤详细内容如下:
配对名称 | 描述 |
Numeric Comparison | 配对双方都显示一个6位数字,由用户来核对数字是否一致,一致即可配对。 |
Just works | 用于配对没有显示且没有输入的蓝牙设备,该设备接收到连接请求即可完成配对,用户看不到配对过程。这种设备常见蓝牙耳机。 |
Passkey Entry | 要求配对目标输入一个在本地设备上显示的6位数字,输入正确即可配对。常见蓝牙键盘。 |
Out of Band | 蓝牙设备之间通过其他的途径交换配对信息。常见NFC。 |
传统蓝牙和低功耗蓝牙同时支持以上四种鉴权模式。
蓝牙配对需要完成两个安全目标:
蓝牙的四种鉴权模式中,只有Just works模式无法防护中间人攻击。因此,该模式不建议使用在汽车蓝牙环境。
蓝牙在完成鉴权后,即可以使用生成的密钥对蓝牙通信信道进行加密。蓝牙的通信数据经过加密后可以在链路上进行安全传输。
针对蓝牙协议栈漏洞,应通过升级安全的蓝牙固件、使用高版本蓝牙协议栈等方式解决。
White List
白名单就是一组蓝牙地址列表,通过设置白名单可以允许扫描、连接特定的蓝牙设备,以及被扫描、连接
LL Privacy
在白名单的基础上将设备地址进行加密,转变成Resolvable Private addresses
本地Resolving List需要保存每一对BLE设备的key/address信息,格式为:Local IRK|Peer IRK|Peer Device Identity Address|Address Type
LL Privacy机制在Controller中完成,即加解密操作对HCI上层是透明的
LL Encryption
数据发送和接收过程进行加解密
加解密操作在Link Layer完成
Host会保存至少1280bit的LTK(根密钥),启动加密传输时,LL会首先协商出一个128-bit的随机数SDK(Session Key Diversifier)和64-bit的iv,经过Encryption Engine和LTK生成此次通信的会话密钥SessionKey
SecurityManager
为BLE设备提供加密连接相关的key,包含以下规范:
定义了配对(Pairing)的相关概念及过程
定义了密码工具箱,包含配对、加密所需的各种算法
定义了安全管理协议(Security Manager Protocol,SMP),实现配对、密码传输等操作
SMP规范中,配对的定义是,Master和Slave通过协商确定用于加密通信的key的过程,包含三个阶段:
阶段一、Pairing Feature Exchange,交换双方配对相关的设置,如配对方法、鉴权方式等
鉴权方式可以采用交换额外的信息(Out of band,OOB),或者弹窗引入人来判定,称为MITM鉴权,还有输入配对码进行对比(Passkey Entry/Numeric Comparison),或者不鉴权(Just Work)
阶段二、通过SMP协议进行配对操作,有两种配对方案,LE Legacy Pairing和LE Secure Connections
阶段三、协商好密钥key,建立加密连接,传输密钥信息(可选)
蓝牙协议栈是各个蓝牙协议实现的载体。其本身提供蓝牙的各个功能。蓝牙协议栈功能在设计中,应依据具体的应用场景,增加或删除其功能。关闭不必要的功能,做到最小化功能需求。
蓝牙的基本功能依赖于其蓝牙协议栈所支持的服务。除了物理层与链路层协议是不可缺少的,蓝牙服务是由多个协议共同组成的。下表列出了多个常见的车载蓝牙协议的基本功能。
表2 常见蓝牙协议
蓝牙协议名称 | 蓝牙协议功能 |
基带协议 | 蓝牙跳频协议。用于控制物理层的功能 |
HCI | 蓝牙控制器接口,用于上层协议与物理层之间的通信接口 |
LMP | 蓝牙链路管理器。用于链路管理控制。 |
L2CAP | 逻辑链路控制和适配层协议,为上层协议提供面向连接和无连接的数据服务。 |
SDP | 服务发现协议,用于发现其他蓝牙设备所提供的服务。 |
OBEX | 文件交换协议。 |
AVRCP | 蓝牙音乐控制协议,用于控制蓝牙的播放、暂停、上一曲、下一曲等功能。 |
A2DP | 蓝牙音频传输协议。 |
HFP | 蓝牙语音通话控制协议,用于控制蓝牙电话。 |
OPP | 蓝牙文件传输协议 |
SMP | 用于蓝牙设备间的加密认证的协议 |
PBAP | 蓝牙电话本传输协议 |
GATT | 蓝牙低功耗通用属性配置协议 |
Secure Manager | 蓝牙安全管理 |
蓝牙是无线设备,其工作在2.4GHZ的全球公共频段。其采用跳频的方式与其他蓝牙设备进行通信。所以蓝牙硬件需要对其输出的功率有明确的要求。
蓝牙的功率分为三个级别。如下表所示。蓝牙硬件开发时,需要依据具体的需求,设置蓝牙的发射功率。
表3 蓝牙功率级别
功率等级名称 | 功率限制 | 覆盖距离 |
Class1 | 0dBm – 20dBm | 100米 |
Class2 | -6dBm – 4dBm | 10米 |
Class3 | 小于0dBm | 1米 |
蓝牙发射的包类型如下表:
蓝牙发射包类型 | 调制方式 | 蓝牙模式 |
DH1 | GFSK | BDR 传统蓝牙 |
DH3 | GFSK | BDR 传统蓝牙 |
DH5 | GFSK | BDR 传统蓝牙 |
2DH1 | 4-DQPSK | EDR 传统蓝牙 |
2DH3 | 4-DQPSK | EDR 传统蓝牙 |
2DH5 | 4-DQPSK | EDR 传统蓝牙 |
3DH1 | 8DPSK | EDR 传统蓝牙 |
3DH3 | 8DPSK | EDR 传统蓝牙 |
3DH5 | 8DPSK | EDR 传统蓝牙 |
BLE_1M | GFSK | 低功耗蓝牙 |
BLE_2M | GFSK | 低功耗蓝牙 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。