据我所知,没有什么可以限制任何开发人员编程他们的信标使用特定的UUID,主要,次要或标识符。
如果我创建了一个UUID为“foo”的iBeacon,那么是什么阻止另一个开发人员创建一个具有相同ID和(意外或恶意)导致我的应用显示不正确数据的信标?
我误解了iBeacons是如何工作的吗?如果我错了,请纠正我。
答案 0 :(得分:4)
这是绝对正确的。我有两个spoofed the Apple Store's iBeacons(以证明这一点)并且有my beacons spoofed by Make magazine用于消费电子展清道夫狩猎。
这根本不是一个缺陷。您只需设计一个使用iBeacons的应用程序,因此欺骗相对无关紧要。如果你设计你的应用程序,那么它不重要,关心谁?
适合解决此问题的具体安全机制取决于相关应用,但有无数种可能性。
例如,对于CES Scavenger狩猎,我们只是保留了一个带有时间戳的审核日志,因此我们知道是否有人很快就找到了所有目标。最后没有人这样做 - 我们的参与者都是很好的运动!
答案 1 :(得分:1)
您无法阻止广告数据包的欺骗,因为没有发布通用唯一标识符(UUID)的中央授权机构。 UUID被任意分配给信标,实际上并不保证是唯一的。
但是,一旦将掌上电脑与信标配对,图像就会不同。您可以对信标(或更具体地说,类似信标的设备)进行编程,以便在配对时生成绝对唯一的信息,例如一次性密码或应用与配对信标之间的某些私钥加密握手。
典型的流程是:
手机检测到ibeacon广播,读取UUID + Major / Minor。
手机启动您的应用(使用didEnterRegion事件)。
您的应用请求与信标配对,向其发送命令以生成加密响应。
您的应用会解密回复。如果成功,请表现出快乐的一面!如果失败,表现出悲伤的表情。
继续前进,我怀疑大多数信标系统都是以这种方式实现的。除非并且直到更新iBeacon标准以适应加密,否则它必须是ping + pair的混合方法。