安全的 iBeacon 蓝牙连接

Secure iBeacon bluetooth connection

我正在研究使用 iBeacon 在应用程序中显示距离的 iPhone 应用程序,但我不希望该区域的其他用户看到 iBeacon 或其 RSSI。仅 iPhone 已被用户连接。它需要安全并仅向特定 iPhone 显示 RSSI。这可以实现吗?

我能否做到让 RSSI 突然向周围的其他人提供零星的 RSSI 读数,但用户连接到 iBeacon 的 App 理解这一点并显示真实值?

如果另一个用户运行该应用程序要通过具有相同 UUID 和主要和次要值配置的 iBeacon,该应用程序会连接吗?

iBeacon 技术在距离计算方面不是很好,这里有一些关于使用信标网络和映射技术来获得某种 x 和 y 估计的线程。

为了安全起见,您可以查看更开放的解决方案,例如 http://altbeacon.org/,您可以将自己的安全协议融入其中。

I'm looking into an iPhone Application that uses iBeacon to show a distance in an App

让我们先搁置这是否会按照您希望的方式工作的问题,但请理解使用 iBeacon 的距离估计是非常近似的。看 Understanding ibeacon distancing 一些背景。

I don't want other users in the area to see the iBeacon or its RSSI.

从表面上看,这是不可能的:iBeacon 协议定义了一个完整的 public 广告数据包。信标所做的就是每秒传输此数据包 10 次。任何人都可以收听。

但是,我注意到您正在为 iOS 开发。 iOS 不会在应用程序级别公开范围内的每个信标。也就是说,使用 iOS,你不能做任何类似于 Wi-Fi "wardriving" 的事情,只能吸走你靠近的任何信标。应用程序需要提供 iOS 它正在侦听的 "region" (其中区域由标识符的 UUID、UUID+major 或 UUID+major+minor 部分组成)。因此可以想象,并且再次限制为 iOS,您可以将特定用户限制为信标的特定 UUID,此时它就像您认为 UUID 可以猜测的那样 "secure"。 (此外,如果有人使用非 iOS 设备嗅探您的 iBeacon 标识符,则无论如何都结束了。除非您使用供应商特定的解决方案,例如 Estimote's Secure UUID。)

Could I make it so the RSSI could suddenly give sporadic RSSI readings to others around, but the App that the user connected to the iBeacon, understand this and display the real value?

我无法想象你会怎么做。

If another user running the App was to go past the iBeacon with the same UUID and Major and Minor Value configuration, would the App connect?

请记住,没有连接。只是一个信标广告,和设备监听。一般来说,是的,如果你知道标识符的所有部分,你可以获得 iOS 来监视信标创建的区域,并确定信标的范围。