在Bluez BLE信标上设置密码



我在linux机器(ubuntu 14.04(上运行bluez5.52中的BLE信标,使用默认的gatt服务,信标使用tools文件夹中提供的btmgmt。以下是我运行以设置信标的命令:

终端1:

./gatt-service

终端2

sudo ./btmgmt
add-adv -u 180d -u 180f -d 080954657374204C45 1

我很容易使用BLE扫描仪应用程序在android中连接和断开与信标的连接。我想做的是为信标设置一个密码,这样我是唯一可以连接到它的人。到目前为止,我无法在网上找到任何有助于设置密码的资源。我对btmgmt和gatt服务代码有很好的理解。我正在寻找关于bluez代码的哪一部分来设置密码保护的方向。任何线索、伪代码或部分代码都会有很大帮助。

Emil已经在评论中提到了配对和绑定。这将毫无疑问地达到你的目的,因为你将能够控制谁可以连接到你的外围设备。BLE特性可以要求连接的设备在读取或写入之前进行身份验证,如果设备未与外围设备配对,则会导致"身份验证不足错误"。安卓应用程序可以根据使用的配对方法显示配对弹出窗口来处理此错误。因此,有可能在需要配对的特征旁边有没有安全性的特征。

如果你仍然想实现你提到的密码安全,你应该查看"授权阅读"。需要授权的特性首先接收读取请求,您可以根据自己的要求允许或拒绝它。这意味着你可以通过向一个特征发送密码来授权自己,然后允许对另一个特征进行读取请求。如果你一次只接受一个连接,这会更容易。

最新更新