Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何防止iBeacons的欺骗?_Android_Ios_Ibeacon_Spoofing - Fatal编程技术网

Android 如何防止iBeacons的欺骗?

Android 如何防止iBeacons的欺骗?,android,ios,ibeacon,spoofing,Android,Ios,Ibeacon,Spoofing,就我所知,没有任何东西可以限制任何开发人员使用特定的UUID、主要、次要或标识符对其信标进行编程 在我创建UUID为“foo”的iBeacon的情况下,如何防止其他开发人员创建具有相同ID的信标,并(意外或恶意)导致我的应用程序显示不正确的数据 我是否误解了iBeacons的工作原理?如果我错了,请纠正我。这是绝对正确的。为了证明这一点,我在消费电子产品展《拾荒者狩猎》上做了这两件事 这根本不是一个缺陷。你只需要设计一个使用iBeacons的应用程序,这样欺骗就相对无关紧要了。如果你设计的应用程

就我所知,没有任何东西可以限制任何开发人员使用特定的UUID、主要、次要或标识符对其信标进行编程

在我创建UUID为“foo”的iBeacon的情况下,如何防止其他开发人员创建具有相同ID的信标,并(意外或恶意)导致我的应用程序显示不正确的数据


我是否误解了iBeacons的工作原理?如果我错了,请纠正我。

这是绝对正确的。为了证明这一点,我在消费电子产品展《拾荒者狩猎》上做了这两件事

这根本不是一个缺陷。你只需要设计一个使用iBeacons的应用程序,这样欺骗就相对无关紧要了。如果你设计的应用程序并不重要,谁会在乎呢

应对这种情况的具体安全机制取决于所讨论的应用程序,但有无数的可能性


例如,对于CES清道夫搜索,我们只需保留一个带有时间戳的审计日志,这样我们就可以知道是否有人很快找到了所有目标。最后没有人这样做——我们的参与者都是优秀的运动员

由于没有发布通用唯一标识符(UUID)的中央机构,因此无法防止对广告数据包进行欺骗。UUID被任意分配给信标,并且实际上不能保证是唯一的

但是,一旦您将手持设备与信标配对,情况就不同了。您可以对信标(或者更具体地说,类似信标的设备)进行编程,以在配对时生成绝对唯一的信息,例如一次性密码或应用程序与配对信标之间的一些私钥加密握手

典型的工艺流程为:

  • 手机检测到ibeacon广播,读取UUID+主要/次要

  • 手机启动您的应用程序(使用didEnterRegion事件)

  • 您的应用程序请求与信标配对,并向其发送命令以生成加密响应

  • 你的应用程序解密响应。如果成功,展示一张快乐的脸!如果失败,表现出悲伤的表情


  • 展望未来,我怀疑大多数信标系统将以这种方式实现。除非iBeacon标准更新以适应加密,否则它必须是ping+pair的混合方法。

    我认为如果有足够多的人欺骗你的信标,那么你的应用程序的质量可能会非常差,因为它可能有错误的信息。实际上,这成了一个叫喊问题——谁喊得更大声,谁就会是唯一能听到的人:)(谁部署了更多的信标,或是更强大的发射机)。也许你已经想出了一个方法来解决这个问题,但到目前为止,我认为我的解决方案并不“优雅”。我仍然需要测试我的解决方案,看看它们的效果如何。解决这个问题的一个方法是使用类似我公司的服务在应用程序中动态配置您的标识符。如果有人恶意欺骗你的iBeacons,你可以在不重新发布应用程序的情况下更改标识符。如果有人真的想破坏你,这可能会成为一个反复无常的问题。但在服务器上进行DDOS攻击要容易得多,所以我怀疑这种情况会非常罕见。对于sabboteur来说,这是太多的工作了。从UUID的统一资源名称空间(通用唯一标识符),也称为GUID(全局唯一标识符)。UUID长度为128位,可以保证跨空间和时间的唯一性。您可以为所有信标分配相同的UUID。是的,您可以在每个站点上使用相同的密码。但是如果你不故意指定相同的UUID,它们就会不同。@Zaph我认为你不理解这里要回答的问题。问题是如何防止欺骗。答案是,你不能,因为UUID和Mac地址可以任意改变。如果你有防止欺骗的方法,请与我们分享,因为它将非常有用!但iBeacons是只传输的设备,对吗?他们无法接收数据。所以我不知道如何实现这种方法。