【发布时间】:2021-02-08 22:45:03
【问题描述】:
我在 linux 机器 (ubuntu 14.04) 上使用默认的 gatt-service 和使用工具文件夹中提供的 btmgmt 的信标在 bluez5.52 中运行 BLE 信标。以下是我运行来设置信标的命令:
1 号航站楼:
./gatt-service
2号航站楼
sudo ./btmgmt
add-adv -u 180d -u 180f -d 080954657374204C45 1
我可以使用 android 中的 BLE 扫描仪应用轻松连接和断开信标。 我想做的是为信标设置密码,以便我是唯一可以连接到它的人。到目前为止,我一直无法在网上找到任何可以帮助进行设置的资源。我对 btmgmt 和 gatt-service 代码有很好的理解。我正在寻找有关设置密码保护的 bluez 代码部分的方向。任何线索、伪代码或部分代码都会有很大帮助。
【问题讨论】:
-
我想我应该措辞更好。我的意思是一个ble外围信标。您可以连接到它并阅读 gatt 服务。我认为在第一个终端运行 gatt-service 很明显。
-
BLE 不支持密码保护/登录机制。它提供的是配对/绑定,只有当用户控制两个设备时才应该成功(例如第一个有显示器,另一个有键盘,用户应该在另一个上输入显示的密码设备的键盘,以防止中间人攻击,例如窗外的黑客)。你可以使用这个 API 来实现它:git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/….
-
谢谢@Emil。我还有一个问题。是否可以动态更改 gatt 服务?我在想的是公开一个写入特征供用户输入密码(在建立连接后),如果它匹配,那么我在其他特征中公开实际数据。
标签: bluetooth bluetooth-lowenergy bluez bluetooth-gatt