如何防止iBeacons的欺骗?

时间:2014-02-22 13:54:48

标签: android ios ibeacon spoofing

据我所知,没有什么可以限制任何开发人员编程他们的信标使用特定的UUID,主要,次要或标识符。

如果我创建了一个UUID为“foo”的iBeacon,那么是什么阻止另一个开发人员创建一个具有相同ID和(意外或恶意)导致我的应用显示不正确数据的信标?

我误解了iBeacons是如何工作的吗?如果我错了,请纠正我。

2 个答案:

答案 0 :(得分:4)

这是绝对正确的。我有两个spoofed the Apple Store's iBeacons(以证明这一点)并且有my beacons spoofed by Make magazine用于消费电子展清道夫狩猎。

这根本不是一个缺陷。您只需设计一个使用iBeacons的应用程序,因此欺骗相对无关紧要。如果你设计你的应用程序,那么它不重要,关心谁?

适合解决此问题的具体安全机制取决于相关应用,但有无数种可能性。

例如,对于CES Scavenger狩猎,我们只是保留了一个带有时间戳的审核日志,因此我们知道是否有人很快就找到了所有目标。最后没有人这样做 - 我们的参与者都是很好的运动!

答案 1 :(得分:1)

您无法阻止广告数据包的欺骗,因为没有发布通用唯一标识符(UUID)的中央授权机构。 UUID被任意分配给信标,实际上并不保证是唯一的。

但是,一旦将掌上电脑与信标配对,图像就会不同。您可以对信标(或更具体地说,类似信标的设备)进行编程,以便在配对时生成绝对唯一的信息,例如一次性密码或应用与配对信标之间的某些私钥加密握手。

典型的流程是:

  1. 手机检测到ibeacon广播,读取UUID + Major / Minor。

  2. 手机启动您的应用(使用didEnterRegion事件)。

  3. 您的应用请求与信标配对,向其发送命令以生成加密响应。

  4. 您的应用会解密回复。如果成功,请表现出快乐的一面!如果失败,表现出悲伤的表情。

  5. 继续前进,我怀疑大多数信标系统都是以这种方式实现的。除非并且直到更新iBeacon标准以适应加密,否则它必须是ping + pair的混合方法。