Apple如何找到您的离线设备?这是否是隐私噩梦?

  • 似乎没有完美的解决方案。智能手机从来都是一个随身间谍

在 WWDC 大会上,Apple 发布了一个很酷的新功能,名为“Find My”。

与 Apple 早期的 “Find my iPhone” 不同,它使用蜂窝网络和丢失设备自己的GPS来识别丢失手机的位置。

“Find My” 则通时可以让你找到没有移动通信支持也没有内置GPS的设备—— 像笔记本电脑这样的东西,甚至是蓝牙跟踪标签,你可以附加到你的非电子物品上,比如钱包、钥匙、宠物……(Apple 只是广泛暗示这一点)。

这个新系统的想法是将 Apple 现有的 iPhone 网络变成一个庞大的众包位置跟踪系统。每个活动的 iPhone 都会持续监控可能来自任何丢失设备的BLE信标消息。

当它接收到其中一个信号时,参与的智能手机就用其自己的当前GPS位置标记数据,然后将整个数据包发送到 Apple 的服务器。

这对于那些经常丢失东西的人来说会很棒:如果我把背包落在了旅游巴士上,迟早会有人偶然发现它的信号,我会立即知道在哪里找到它。

(值得一提的是,Apple 没有发明这个想法。事实上,像 Tile 这样的公司已经做了很长一段时间了。是的,他们应该为寡头公司的竞争感到担忧。)

如果您还没有通过上述描获得启发,那么我会说出您应该问的问题是:这个系统如何避免成为一场大规模的隐私噩梦?

下面梳理一下这些担忧:

  • 如果您的设备不断发出可以唯一识别它的BLE信号,那么整个世界都可以跟踪您。营销人员已经使用WiFi和蓝牙MAC地址来执行此操作了:Find My 可以创建另一个跟踪渠道。
  • 它还会暴露正在进行追踪的手机。这些人现在将把他们自己当前的位置发送给Apple。现在,他们也可能会与“丢失”设备的陌生人分享这些信息。这可能会很糟糕。比如诱捕者的操作?
  • 诈骗者也可能会进行主动攻击,并伪造设备的位置。虽然这听起来不太可能,但你知道那些人总是会令你惊讶的。

好消息是 Apple 声称他们的系统提供了“强大的隐私”,并且它使用聪明的加密技术来实现这一点。

但通常情况下,他们拒绝详细说明他们将如何做到这一点。

这里是他们有可能如何做到(假设苹果没有撒谎的话/撒谎的可能性不低)。

一些快速问题设定

假设第一个“丢失”的设备叫 Timmy 。Timmy 有一个BLE,但没有GPS也没有连接到互联网。

幸运的是,他之前曾与第二个名叫 Ruth 的设备配对,后者希望找到他。

这里的主角是 Lassie:她是一个随机的陌生人的 iPhone,假设她至少偶尔会有互联网连接和 GPS。而且她是个纯粹的好人。

联网设备通过 Apple 的 iCloud 服务器进行通信,如下所示:

(由于 Timmy 和 Ruth 必须提前配对,它们可能是同一个人所拥有的设备。我是否提到你需要购买两台 Apple 设备来使这个系统有效?这也很好理解对于 Apple 来说很有利)

由于这是一个安全系统,你应该问的第一个问题是:谁是坏人?在这种情况下的答案很不幸:每个人都可能是坏人。这就是让这个问题如此令人兴奋的原因。

如何保持 Timmy 匿名

这个系统最关键的方面是,需要让未经授权的第三方跟踪 Timmy,特别是当他并没有丢失时。

这就排除了一些非常明显的解决方案,例如让 Timmy 设备只是大喊:“嗨,我的名字叫 Timmy,请打电话给我的妈妈 Ruth,让她知道我迷路了。”

它还排除了几乎任何不变的静态标识符,也包括不透明和随机的静态标识符。

如果 Apple 添加了静态跟踪标识符来支持“Find My”系统,那么所有这些问题都会变得更糟。

此要求意味着 Timmy 广播的任何消息都必须是不透明的;而且,这些信息的内容必须相对频繁地更改为无法链接到旧值的新值。

实现这一目标的一个显而易见的方法是让 Timmy 和 Ruth 同意 Timmy 的一长串随机“假名”,让 Timmy 每次都选择不同的假名。

这会有很大帮助。每当 Lassie 看到一些(未知)设备广播标识符时,她不会知道其中哪个属于 Timmy:但是她可以将它与她自己的GPS位置一起发送到Apple的服务器。

如果 Timmy 丢了,Ruth 可以要求 Apple 搜索 Timmy 可能的假名中的每一个。

由于 Apple 以外的任何人都不会知道这个假名列表,并且 Apple 也只是在有设备丢了后才能得到这个列表,这种方法可以防止大多数跟踪。

实现这一想法的一种稍微有效的方法是使用加密函数(如MAC或散列函数),以便从 Timmy 和 Ruth 将保留副本的单个简短“种子”生成假名列表。

然而为了找到 Timmy,Ruth 仍然必须将所有的假名发送到苹果公司,苹果必须在公司的数据库中搜索每一个假名。

隐藏 Lassie 的位置

上面描述的假名方法应该能够很好地保持 Timmy 的身份不受 Lassi、甚至是 Apple 的影响(直到 Ruth 搜索到它为止)。然而,它有一个很大的缺点:它并没有隐藏 Lassie 的 GPS 坐标。

这至少有几个原因是不好的。每当 Lassie 检测到某个设备广播消息时,她需要将她当前的位置(以及她看到的假名)发送到 Apple 的服务器。

这意味着 Lassie 会不断告诉 Apple 她在哪儿。

而且,即使 Apple 承诺不存储 Lassie 的身份,所有这些消息的结果都是一个巨大的集中式数据库,显示每个GPS位置,其中一些Apple设备已被检测到。

请注意,总体而言,这些数据非常具有启发性。是的,设备的标识符可能是假名 — 但这并不会使信息无用。

例如:显示某些 Apple 设备在一天内的某些时间从我的家庭地址广播的记录可能会显示我在家里。

防止向 Apple 公布此数据的一种显而易见的方法是对其进行加密 —— 以便只有实际需要知道设备位置的各方才能看到此信息。

如果 Lassie 接到 Timmy 的广播,那么实际需要知道 Lassie 的 GPS 位置的唯一人就是 Ruch。为了保密这些信息,Lassie 应该在 Ruth 的加密密钥下加密她的坐标。

当然,这会引发一个问题:Lassie 如何获得 Ruth 的密钥?一个明显的解决方案是让 Timmy 大声喊出 Ruch 的公钥,作为他制作的每一个广播的一部分。

当然,这会产生一个静态标识符再次使 Timmy 的广播可以被关联。

为了解决这个问题,我们需要 Ruth 拥有许多不可关联的公钥,这样 Timmy 就可以为每个广播提供不同的公钥

实现此目的的一种方法是让 Ruth 和 Timmy 生成许多不同的共享密钥对(或从一些共享种子生成许多密钥对)。

但这很烦人,并且涉及 Ruch 需要存储许多密钥。实际上标识符可以通过散列每个公钥来派生。

稍微好一点的方法会使用密钥随机化(Apple可能不会使用)。这是由 Elgamal 等密码系统提供的功能:它允许任何一方随机化公钥,以便随机密钥与原始密钥完全不可链接。

于是结果是这样的。

每次 Timmy 广播时,他都会使用一个新的假名和 Ruch 公钥的随机副本。

当 Lassie 收到广播时,她会在公钥下加密她的 GPS 坐标,并将加密的消息发送给 Apple。

Ruth 可以将 Timmy 的假名发送给 Apple 的服务器,如果 Apple 发现匹配,她可以获取并解密 GPS 坐标。

这能解决所有问题吗?

最基本可以肯定的是,不能。没有完美的解决方案。

因为例如,如果 Timmy 是邪恶的并有目的地让 Lassie 向 Apple 展示她的位置怎么办?如果有人试图绑架 Lassie 怎么办?

某种程度上这些问题的答案只是意味着我们已经尽力了:任何剩下的问题都必须超出威胁模型。Lassie 应该知道什么时候放弃。⚪️

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据