我们正在开发传感器,这些传感器将大量分发,每5秒广播一次BLE,以便访问DFU和数据传输。DFU从制造商端加密,但数据发送(NUS/UART(保持打开状态,因此我们正在寻找加密数据或限制不受欢迎的用户对此服务的访问的方法。但是,可以使用静态PIN密钥,因为它只有4位数字长(通常(,因此只有10,000种组合。如果您能对此有所了解,我们将不胜感激。
蓝牙标准不会帮助您以好的方式解决此问题。它的配对/绑定功能旨在防止用户与设备配对时的远程攻击,而不是阻止任何人配对。在我看来,您应该将该问题视为一般问题,而不是特定于蓝牙的问题。
除非您想将所有传感器预先绑定到某个合法设备,然后防止新的配对(这当然可以解决您的问题,但在实践中可能会很麻烦(,否则您应该使用蓝牙标准提供的其他东西。
例如,如果您对拥有访问传感器的密码感到满意,则可以实现 PAKE 方案 (https://en.m.wikipedia.org/wiki/Password-authenticated_key_agreement(,然后使用派生密钥对所有数据进行加密和签名。您也可以简单地使用 TLS 或其他一些基于证书的解决方案。
如果您很懒惰,并且认为实现正确的加密太难,那么您可以只拥有用户写入密码的特征,如果它被接受,则数据发送服务打开。这当然是不安全的,因为攻击者可以嗅探连接并找到密码。当您拥有静态 PIN 并使用标准蓝牙配对时,这同样适用。