BLE 配对-绑定-白名单
配对:用于加密建立连接的链路,提高 BLE 通信的安全性,
绑定:将配对信息存储下来,从而两个设备下次重连时可以直接发起安全通信而不需要再次进行配对。
BLE的配对使用的是低功耗配对(LESC)
配对过程包含包含如下 3 个阶段
- 阶段 1:配对参数特征交换。响应者提出安全请求->发起者提出配对请求->响应者提出配对响应
- 阶段 2(LE legacy pairing):生成短期密钥 STK。/(LE Secure Connections):生成长期密钥 LTK
- 阶段 3:密钥分发
阶段 1 通过配对特征交换使得发起设备和响应设备可以得知双方身份认证要求和 IO(输
入输出)能力,由此确定在阶段 2 中应使用传统蓝牙配对还是 LESC,以及使用哪4种关
联模型
IO能力有5种:
- 该设备只有显示能力
- 该设备有显示能力和至少两个输入可以确认yes/no
- 该设备只有键盘输入能力,可以输入数字0-9
- 该设备没有输入输出能力
- 该设备有键盘输入能力和显示能力
4种关联模型的使用场景:
- Just Works:其中至少一台设备 NO I/O capabilities but can Yes/NO
- Numeric Comparison:配对双方都能够 Display and Yes/No entry。这种方式比较可以抵御 MITM 攻击
- Passkey Entry:One can Keyboard Only. Other can Display and Yes/No entry.
- Out of Band(OOB):不通过蓝牙射频本身来交互,而是通过其他途径交换配对信息,如 NFC、UART 等
阶段 2 通过配对请求和配对响应中的“AuthReq”字段中的“SC”位检测是否使用 LESC 配对,
双方都置位就使用LESC,其他就使用传统配对。
之后通过检测“AuthReq”字段中的OOB 和 MITM 标志来确定使用的关联模型。
如果使用传统配对,OOB 和 MITM 标志的关系如下:
如果使用LESC配对,OOB 和 MITM 标志的关系如下:
之后依据算法生成密钥LTK/ EDIV/ Rand/ IRK/ CSRK进行分发
在NRF芯片代码中需要去进行配对管理
不同平台对配对的要求不同
白名单
白名单(White List)是链路层(LL:Link Layer)用于设备过滤的设备集记录,
白名单记录同时包含设备地址和设备地址类型(公共地址或随机地址)。
链路层在不唤醒主机的情况下执行过滤,可以减少主机的参与,降低电流的消耗。
从机在通用广播(ADV_IND)情况下才使用广播过滤策略
广播过滤策略主要处理主机设备的扫描请求和连接请求
链路层会对白名单上的设备进行这两者请求的处理,例如只响应白名单上设备的扫描请求,
或者只响应白名单上设备的连接请求,或者都响应白名单上设备的请求,或者禁止白名单