0

我打算对蓝牙智能外围设备进行编程,但我不太确定如何实现它。

外围设备只能连接到一个中央设备。是否可以在(一般可连接)广告期间(使用广告数据)判断该外围设备不接受来自所有人的连接?

显然,外围设备在第一次连接之前必须是“公共的”(对于任何中央设备可见和可连接),但之后它只对与该中央设备的连接感兴趣。这不是隐私或安全问题;我只是尽量不污染其他扫描中心设备的扫描结果。

我正在阅读 Robin Heydon 撰写的“Bluetooth Low Energy - 开发人员手册”一书,其中涵盖了一般的 Bluetooth Smart。它提到了“Flags AD”广告数据。这可能是我要找的吗?书中还提到了“结合”,我理解这只是一种长期的安全关系。我不需要加密链接、私人地址或签名写入,但在我的情况下是否建议使用绑定?

4

1 回答 1

1

由于写完这个问题后我又学到了很多蓝牙LE,没有人回答,所以我在这里写一个答案。

两个设备之间的长期关系是通过绑定来完成的。绑定导致两个设备交换并保存密钥,这些密钥将用于进一步的连接以相互验证。此外,密钥用于加密线路。

如果一个通用的广告外围设备想要针对一个特定的中心,它会使用广告数据来做到这一点。核心规范补充 (CSS) v6有两种可用于此目的的数据类型:公共目标地址(1.13) 和随机目标地址(1.14)。或者作为开发人员,您可以以某种方式将您喜欢的任何内容纳入制造商特定数据

由于广告外围设备针对特定设备,因此它可能会阻止来自其他中心的连接。为此,请使用白名单。将您定位的中心地址放入白名单,将过滤策略设置为仅允许来自白名单中设备的连接,然后开始广告。但是有一个问题:外设需要解析中心的地址,以确保它是之前绑定的地址。在蓝牙 4.2 之前,这必须手动完成(在应用程序中)。相反,4.2 规范会自动为您执行此操作:将绑定中心也放入解析列表,链路层也将进行解析。

于 2016-10-20T15:37:01.177 回答