蓝牙 4.0 流量是否默认/设计加密?

信息安全 加密 无线的 蓝牙
2021-08-23 21:49:14

我想知道 BLE (v4.0) 流量是默认加密还是设计加密,还是只是可选的?如果是前者,是否使用仅从配对引脚派生的密钥对流量进行加密,或者是否也存在某种会话密钥 - 就像 WPA2 一样?如果是前者,那么加密密钥会是一个长期密钥,那么哪个看起来不那么安全?

编辑:

我在 Wikipedia 上读到支持 AES-128,并且像 CC2540 这样的芯片提供硬件加速,但不清楚 AES 加密是可选的还是设计强制的。IIRC,蓝牙 2.1 提供了非安全模式,因此加密只是可选的,但我想知道这是否同样适用于 BLE。

1个回答

我现在读了一些规范——第 3 卷,H 部分,第 3.5.1 节配对请求和 3.5.2 配对响应。

设备配对后,恕我直言加密是强制性的,因为发起者必须发送要使用的最大密钥大小:

最大加密密钥大小(1 个八位字节)

此值定义设备可以支持的最大加密密钥大小(以八位字节为单位)。最大密钥大小应在 7 到 16 个八位字节的范围内。

这也确保了我的评论,因为 2.1 加密是强制性的。

因此,您不能选择长度为 0 的密钥大小来配对。但是,我不知道是否有可用的 ad-hoc 模式允许非配对数据交换(但我不相信这一点)。

请注意,这仅表示加密的数据流。身份验证是另一回事。例如,您无法验证是否连接到正确的蓝牙耳机,因为它没有显示器或键盘(您仍然可以在确认之前读取它的 MAC 地址,例如)。因此,对于某些配对模式,我会假设身份验证处于低信任级别(按设计)。

恕我直言,因为蓝牙一开始是串行/红外通信的替代品,它总是在安全方面苦苦挣扎。我认为它对某些小工具来说是一个不错的功能,但不会交换敏感信息(= 它不等于 WiFi 或 LAN)。