蓝牙安全问题

Bluetooth Security Concern

我们正在开发大量分布的传感器,每 5 秒广播一次 BLE,以便访问 DFU 和数据发送。 DFU 从制造商端加密,但数据发送 (NUS/UART) 保持打开状态,因此我们正在寻找加密数据或限制不需要的用户访问此服务的方法。可以使用静态 PIN 密钥,但由于它只有 4 位数字(通常),因此只有 10,000 种组合。如果您能对此有所了解,我们将不胜感激。

蓝牙标准无法很好地帮助您解决这个问题。它的配对/绑定功能旨在防止用户与设备配对时的远程攻击,而不是阻止任何人进行配对。在我看来,您应该将此问题视为一般性问题,而不是特定于蓝牙的问题。

除非你想将所有传感器预先绑定到某个合法设备然后阻止新的配对(这当然会解决你的问题,但在实践中可能很麻烦),你应该使用蓝牙以外的东西标准优惠。

例如,如果您对使用密码访问传感器感到满意,则可以实施 PAKE 方案 (https://en.m.wikipedia.org/wiki/Password-authenticated_key_agreement),然后使用派生密钥对所有数据进行加密和签名。您也可以简单地使用 TLS 或其他一些基于证书的解决方案。

如果你很懒惰,认为实施适当的密码太难,你可以有一个特征,用户写入密码,如果密码被接受,数据发送服务就会打开。这当然是不安全的,因为攻击者可以嗅探连接并找到密码。当您拥有静态 PIN 并使用标准蓝牙配对时,这同样适用。