我正在使用BlueZ 5.49
,并尝试在两个不同的蓝牙设备之间连接,配对和传递信息。
似乎我在执行两者之间的安全性和身份验证时遇到问题。
我正在为每个hci
设备配置:
据我所读,hciconfig hci0 pscan auth encrypt
正在将设备设置为安全模式3。
此外,我正在双方手动创建此路径:/var/lib/bluetooth/<local_bdaddr>/<remote_bdaddr>/info
和LinkKey
。
我注意到,如果我仅创建一个设备的路径,然后尝试使用rfcomm connect
从没有info
文件的设备进行连接,即使连接成功,设备缺少包含info
的{{1}}文件。
如果我尝试使用具有LinkKey
文件的设备尝试rfcomm connect
,则会收到info
错误,这是可以接受的,因为另一台设备没有密钥。
我的底线是似乎未实施安全性和身份验证。
非常感谢, 利亚德
答案 0 :(得分:0)
显然hci
设备默认设置为在安全简单配对中工作
为sspmode
。产生了简单配对原始信息,以支持在配对过程中无法插入个人识别码的设备(例如耳机)。
因此,当设备启用sspmode
时,它将使用默认的PIN密钥(例如0000),然后基于该PIN生成LinkKey
进行加密和认证,因此不能真正地执行认证正如我之前提到的。
第hciconfig hci0 sspmode disable
行禁用了安全简单配对模式,最后使用您提供的静态LinkKey
强制执行身份验证
在/var/lib/bluetooth/<your_mac>/<remote_mac>/info
中的信息文件中。