iBeacon 非静态 UUID

Posted

技术标签:

【中文标题】iBeacon 非静态 UUID【英文标题】:iBeacon non static UUID 【发布时间】:2015-10-24 06:58:19 【问题描述】:

我有一个困扰我的问题: 我有一些 iBeacon 设备(确切地说是标签),我想创建一个自定义的新应用程序来支持它们的功能。

问题是标签时不时地改变他们的mac地址(非常频繁)以及他们的UUID(经常但不是太频繁)。在我看来,此功能的实施是为了保护用户免受跟踪。

现在这可以是特定于硬件的功能(我使用套索标签),也可以是标准的标准功能(我没有的 iBeacon 规范)。

有人可以验证预期的功能或至少提供 iBeacon 官方规范和/或其他文件的指针吗?

问候

【问题讨论】:

【参考方案1】:

最近,Apple 在其 iBeacon 开发人员页面上提供了 iBeacon 规范:https://developer.apple.com/ibeacon/(右侧边栏中的“下载艺术作品和规范”链接)。您仍然需要接受 iBeacon 许可协议。

正如您所说,某些供应商使用轮换 UUID(和/或专业和未成年人)作为解决安全和隐私问题的一种方式。这并不是 Apple 对 iBeacon 的预期(他们在多个场合提到,您应该考虑到信标被欺骗的可能性,b/c iBeacon 并不意味着安全),但它仍然与规范兼容。

最常见的情况是,在制造过程中或启用此类安全功能时,会将一些已知的种子或密钥上传到信标。只有授权方知道种子/密钥,因此可以预测在任何给定时间应该是什么信标的 UUID/主要/次要,或者对其进行解密。最后,UUID+major+minor 只是信标广播的 20 个字节的数据,您可以像加密任何其他数据一样对其进行加密。 (实际上,iBeacon 的问题在于,在 ios 端,您需要知道信标的 UUID 才能扫描它,因此至少 UUID(即前 16 个字节)只需伪随机,不能完全随机。)

就个人而言,我想说这是市场验证 iBeacon 理念/规范并提出解决方案来解决 Apple 决定不解决的问题的案例之一。我不会责怪他们——他们几乎是 Beacon 技术的先驱(当然,它以前就存在,但比现在流行得多),当时没有人考虑使用 iBeacon 来标记个人物品。

当 Google 在今年早些时候发布 Eddystone(即替代信标协议)时,他们同时宣布加密 Eddystone 标识符将成为核心规范的一部分:

同时,隐私和安全性也非常重要,因此我们内置了一个名为 Ephemeral Identifiers (EID) 的功能,该功能经常更改,并且只允许授权客户端对其进行解码。 EID 将使您能够安全地做一些事情,例如在您下飞机后找到您的行李或找到丢失的钥匙。我们将很快发布此设计的技术规格。

(来源:http://googledevelopers.blogspot.com/2015/07/lighting-way-with-ble-beacons.html

对我来说,这几乎验证了保护信标的想法,而轮换 UUID 只是 iBeacon 规范的一个聪明的市场/社区“黑客”来做到这一点。

【讨论】:

【参考方案2】:

传输 iBeacon 格式的蓝牙 LE 信标,包括那些显示 iBeacon 认证标志的信标,通常不会更改其 mac 地址。我基于两年来测试各种供应商的这些信标的经验发表此声明。 iBeacon 自动更改其 ProximityUUID 也是不寻常的。这些似乎是特定于某个供应商实施的特性。这些实现细节不寻常的事实并不一定意味着它是不允许的——它只是意味着它不寻常。

很遗憾,iBeacon 规范是专有的,Apple 不公开提供。您需要与 Apple 建立业务关系才能访问官方文档。也就是说,对简单设备进行逆向工程的人们获得的公共领域中不乏有关 iBeacons 的信息。在没有官方公开文档的情况下,您只需进行 Google 搜索并根据您对所找到信息质量的判断。

【讨论】:

感谢大卫的回答。您提到的重要一点是,根据您的经验,各种各样的供应商都不会更改 UUID,而且规范本身似乎并没有强制执行这种做法。我的问题是,这些产品中有一些是便携式标签吗?因为如果他们是,那么我想你会同意这里可能存在安全隐患,允许攻击者跟踪其他人。顺便说一下,我联系了 Lasso,显然他们正在使用专有机制以可预测(对他们而言)的方式随机化这些字段。 是的,这是一个公平的声明,即传输一致标识符(mac 或 ProximityUUID)的便携式信标可能允许第三方在信标作为个人设备携带时跟踪个人。但是,如果不了解有关与信标标识符相关联的个人的更多信息,则此信息的有用性是有限的。 我同意。我仍然认为将你认识的人与他们发出的信标关联起来并跟踪他们的路线并不复杂。当然,当没有实施保护机制时,很容易欺骗信标。或者,可以进行可能不像其他情况那样危险的大规模统计。我相信 iBeacon 规范背后的人从未打算将这项技术嵌入到移动对象中。我将进一步研究这个话题,我希望更多的人加入到对话中。戴维,我会在几天内接受您的正确回答。

以上是关于iBeacon 非静态 UUID的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义 iOS 应用更改 iBeacon UUID(或主要/次要)?

静态成员和非静态成员的区别?

C++ 非静态成员函数的非法调用

03.静态和非静态的区别

MFC中静态成员函数调用其他类的非静态变量

java ,为啥无法从静态上下文中引用非静态方法