3.1 NimBLE安全性
低功耗蓝牙安全模型包括以下列出的五个不同的安全概念。
- 配对(Pairing),创建一个或多个共享密钥的过程。在BLE中,通过将每个设备的贡献组合成配对过程中,生成一个单独的链接密钥。
- 绑定(Bonding),将配对过程中使用的密钥存储的行为,以便在后续连接中形成可靠的设备对。
- 设备认证(Device authentication),验证具有相同密钥的两个设备(验证设备标识)。
- 加密性(Encryption),保证信息的机密。BLE中使用AES-CCM加密算法加密,在控制器中完成。
- 信息完整性(Message integrity),防止信息伪造。
BLE根据设备的IO功能使用四种关联模型。
- Just Works,针对特定场景设计,这种场景下至少有一个设备没有显示6位数字的能力,也没有能够输入6位数字的键盘。
- Numeric Comparion,两种设备都能显示6位数字,都能让用户输入yes或no,此模型的一个很好示例就是手机或PC场景。
- Out of Band,用于使用带外机制发现设备以及在配对过程中交换或传输密码的场景。
- Passkey Entry,用于一个设备有输入的能力,但是不能显示6位数字,而另外的设备具有输出的能力。此模型的一个很好示例就是PC和键盘场景。
秘钥生成方法
BLE中所有用途的密钥生成,都由每个LE设备的Host执行,与其他低功耗设备独立。
隐私性
BLE在连接模式和连接过程中支持一个可选特性:通过频繁地更改蓝牙设备地址,减少在一段时间内跟踪LE设备的可能。
隐私性包含两种变体。
- 在第一种变体中,由主机解析和生成私有地址。
- 在第二种变体中,在主机提供控制器设备标识信息后,控制器设备在没有主机的情况下解析和生成私有地址。主机可能为控制器提供一个完整的解析列表或解析列表的子集。在第二种变体中,是可以实现设备过滤的。在控制器中执行地址解析时,配对设备标识地址可以在白名单中解析,检查是否在白名单。
注意:当仅在主机上执行地址解析时,由于必须禁止设备过滤,所有设备功耗将有所增加。