【转载】iOS 13 上 Find My 工作原理概述

原文转载自 ZW Cai 的 Facebook 动态,他的 Facebook 地址是:https://www.facebook.com/x43x61x69 只做了简繁体转换和必要的排版

今年 WWDC 除了刨起司器之外,最重要的东西应该是隐私保护。其中最让我惊艳的是 Apple 在新的「Find My」系统上所采用的方式。过去「Find My Phone」或「Find My Friends」靠的都是回传使用者的 GPS 位置,这样做有几个缺点:

  1. 使用者在传输过程(中间人攻击)或在 Apple 主机(主机被入侵)留存的资料会透露出真实位置资讯。
  2. 使用者装置在没有网路的状态下无法回报位置(国外无漫游、被窃后 SIM 卡遭移除等等)。

Apple 对於第二项问题的解决方案是透过周遭其他有网路的 Apple 装置来回传位置(藉由蓝牙),但这样不但不能减少第一项的问题,甚至可能引发更多被追踪的疑虑(扫瞄四周即可知道某装置是否在范围内)?

Apple 采用的方式非常的有趣:

  1. 新版的「Find My」前提与以前不同,使用者必须拥有至少两台登入相同 Apple ID 的装置在附近时才能啟用。Apple 会在啟用的装置上產生一把私钥,并透过点对点加密传输储存於其他台装置上,也就是这把私钥只存在你拥有的每一台机器上;每台装置接著会各自產生一系列公钥(对应前一步產生的私钥),透过蓝牙传输的作為识别。这些公钥会定时更换,且不会与先前產生过的相同,但仍可以透过最初的私钥验证。言下之意就是要靠公钥判断装置持有人做定位追踪是行不通的。
  2. 假设你的 MacBook/iPad 被窃走并处於闔上、无网路状态,有啟用 Find My 的装置仍会持续透过蓝牙发送现在的公钥,但不传送其他资讯(此时通常你也没有相关资讯);周围他人有网路连线的 Apple 装置侦测到该公钥后,会将自己的地理位置资讯,透过此公钥加密,连同公钥的 Hash 值传给 Apple。提供位置的装置没有提供自己的识别资讯,又因為公钥不断变换而无法反推公钥持有者身份;不断变换的公钥 Hash 本身无法直接关联使用者,使得 Apple 主机上储存的资料无法逆推回持有人资讯,位置资讯也因为没有私钥而无法被解密。
  3. 当你用你的 iPhone 寻找你的 MacBook/iPad 时,手机会将过去一系列公钥的 Hash 上传至 Apple 作為识别(详细方式 Apple 并没有明确说明,但理论上应该是回传过去一定时间内的公钥 Hash)。此时 Apple 会从资料库中寻找对应的加密位置资料并回传给你的 iPhone 并使用储存於装置上的私钥解密位置资讯并显示给你。整个流程中只有你的装置有办法解密这些位置资讯,且只有在你的装置上解密。

所以第一项问题就解决了!比以前有更强大的追踪能力但却又比以前更能保障隐私。你现在知道你的信仰奉纳都投资在哪些地方了吧?