蓝牙LE特性加密/认证无法通知?

时间:2019-04-27 19:39:26

标签: security bluetooth-lowenergy bluez

看着bluez dbus API,似乎不可能具有“通知”的特征,即只有成对的设备才能以加密方式订阅(所以类似“ encrypt-authenticated-notify”之类的东西)。 / p>

有没有办法做到这一点?还是这是bluez的局限性?也许甚至根本不支持蓝牙?

1 个答案:

答案 0 :(得分:1)

Bluetooth Low Energy和BlueZ API实际上都支持此功能,但是,您需要将属性应用于客户端特征配置描述符(CCCD),而不是特征本身。 / p>

为了详细说明,要使一个特征可通知/可指示,它必须具有CCCD描述符作为该特征的一部分。例如,对于心率特征,有一个随附的CCCD描述符可用于启用/禁用通知或指示。向描述符写入0100启用通知,写入0200启用指示,写入0000禁用两个通知/指示。

现在,如果仅希望配对的设备能够启用通知,则需要更改该描述符的属性,以使其不“打开”。可以使用here来执行此操作的API,例如,可以将属性设置为“读取,加密-写入”,这意味着您可以正常读取描述符的值,但是要对其进行写入和启用通知,您将必须与之配对。

请查看以下可能有用的链接

我希望这会有所帮助。