是否可以使用 BlueZ 堆栈修复密码?

Is it possible to used fix pincode with BlueZ stack?

我正在开发基于蓝牙 linux 堆栈 blueZ 5.52 的蓝牙应用程序。 我正在使用 Dbus 接口。 该模块是 运行 BLE 4.2.

我的设备是外围设备,中央设备是智能手机(Android 和 IOS)。 我成功地通过密码实现了安全性。

我的问题是每次连接都会生成密码,我找不到使用静态密码的方法。

我在蓝牙规范 4.0 中看到我们可以设置 PIN 已固定(7.3.6 写入 PIN 类型命令)但是没有办法给出我们想要使用的 PIN 码...

如何为我的应用程序使用固定密码?可能吗 ?

感谢您的帮助,

由于您提到了 运行 BLE 而不是经典蓝牙,因此 "Write PIN type command" 不相关(它用于经典蓝牙)。

使用 BLE 中的安全协议,不再可能使用固定密钥。每次尝试都必须生成一个新的随机密钥。安全协议的设计方式是,如果重用密钥,安全性 属性 就会被破坏。特别是,它平均需要 10 次尝试才能破解密钥,因为每次尝试都至少可以多了解一位密钥。

查看我在 https://devzone.nordicsemi.com/f/nordic-q-a/35856/questions-about-lesc-mitm-and-passkey 的回答了解更多详情。