gpt4 book ai didi

security - 如何在 BlueZ 上启动 BLE 配对

转载 作者:行者123 更新时间:2023-12-01 10:38:22 25 4
gpt4 key购买 nike

我想在 Bluez 上启动与低功耗蓝牙设备的配对。虽然有一些关于如何使用 GATT 触发 SMP 过程的帖子,但如果您不想使用 GATT,则没有太多可用的帖子。

我的用例是我想为 bluetooth-6lowpan 使用加密链接,它通过基于 L2CAP 信用的模式而不是 ATT/GATT 交换数据。

此外,我想使用 OOB 模式进行 SMP 配对。

感谢有关如何使用命令行或编写 C 程序触发 SMP 配对的指示。

谢谢!

最佳答案

我认为不使用 GATT 命令(仅从命令行)就不可能执行 BLE 配对。这样做的原因是 LE 中的安全性是基于 GATT 操作的。换句话说,特征/服务权限决定了你是否需要与设备配对(即读取心率特征,设备可能决定你需要先配对)。为此,操作类似于:

gatttool --sec-level=high --device=00:11:22:33:44:55:66 --char-read --uuid=0x2A37

此命令会在读取特征前先建立配对。

至于如何使用 C 程序执行此操作,您可以下载 BlueZ 源代码并查看传递此“sec-level”选项的作用。我快速浏览了代码并在 utils.c 中找到了这个:-

            chan = bt_io_connect(connect_cb, NULL, NULL, &tmp_err,
BT_IO_OPT_SOURCE_BDADDR, &sba,
BT_IO_OPT_SOURCE_TYPE, BDADDR_LE_PUBLIC,
BT_IO_OPT_DEST_BDADDR, &dba,
BT_IO_OPT_DEST_TYPE, dest_type,
BT_IO_OPT_CID, ATT_CID,
BT_IO_OPT_SEC_LEVEL, sec,
BT_IO_OPT_INVALID);

其中 sec 设置为 sec = BT_IO_SEC_HIGH;

希望对您有所帮助。

关于security - 如何在 BlueZ 上启动 BLE 配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com