“查找”安全性
Apple 设备的“查找” App 植根于高级公钥加密系统。
概览
iOS、iPadOS 和 macOS 中的“查找” App 将“查找我的 iPhone”和“查找我的朋友”整合成单个 App。“查找”可帮助用户定位丢失的设备,即使 Mac 已离线。在线设备只需将其位置通过 iCloud 报告给用户。“查找”离线工作的原理是由丢失的设备发出可由附近使用中的其他 Apple 设备检测到的短距离蓝牙信号。这些附近的设备随后将检测到的丢失设备的位置中继到 iCloud,以便用户可以在“查找” App 中定位它;与此同时保护了所涉及到所有用户的隐私和安全。即使 Mac 已离线且处于睡眠状态,“查找”仍可对其进行定位。
通过蓝牙和世界各地亿万使用中的 iOS、iPadOS 和 macOS 设备,用户可定位其丢失的设备,即使它无法接入无线局域网或蜂窝网络。在“查找”设置中启用了“离线查找”的任何 iOS、iPadOS 或 macOS 设备都可成为“查找设备”。这意味着该设备可通过蓝牙检测到另一台丢失的离线设备的存在,然后使用其网络连接向所有者报告大致的位置。当设备启用了离线查找时,意味着它可由其他参与者以同样的方式进行定位。整个交互过程采用了端对端加密且以匿名方式进行,旨在实现对电池和数据的有效利用。电池续航和蜂窝数据套餐用量受其影响极小,且用户隐私得到更佳保护。
【注】“查找”可能并非在所有国家或地区都可用。
端对端加密
“查找”植根于高级公钥加密系统。在“查找”设置中启用了离线查找后,设备上会直接生成记录为 {d,P} 的椭圆曲线 (EC) P-224 加密私钥对,其中 d 为私钥,P 为公钥。另外,还有一个 256 位的密钥 SK0,并且计数器 i 初始化为零。此私钥对和密钥永不会发送给 Apple,并只会通过 iCloud 钥匙串采用端对端加密的方式在用户的其他设备间同步。密钥和计数器用于通过以下递归构造派生当前的对称密钥 SKi:SKi = KDF(SKi-1, “update”)。
基于密钥 SKi,使用 (ui,vi) = KDF(SKi, “diversify”) 计算两个较大的整数 ui 和 vi。记作 d 的 P-224 私钥和称为 P 的对应公钥使用包含两个整数的仿射关系进行派生,以计算出短期有效的密钥对:派生的私钥为 di,其中 di = ui * d + vi(以 P-224 曲线的阶为模),对应的公钥为 Pi 并验证 Pi = ui*P + vi*G。
当设备丢失且无法接入无线局域网或蜂窝网络时(例如,MacBook Pro 被忘在公园长椅上),设备会开始在短时间内定期广播蓝牙有效负载中派生的公钥 Pi。通过使用 P-224,公钥代表可匹配单个蓝牙有效负载。然后周围的设备就可在公钥中加密自己的位置来帮助查找离线的设备。大约每隔 15 分钟,就会使用计数器的增量值并按照上述流程生成的新公钥进行替换,这样其他人就无法通过永久标识符跟踪用户。派生机制旨在使各种公钥 Pi 无法链接到同一台设备。
保持用户和设备匿名
除了确保位置信息和其他数据完全加密外,参与者的身份也对其他人和 Apple 保密。由查找设备发送给 Apple 的流量在内容或标题中都不包含认证信息。因此 Apple 不知道查找设备或寻回设备的所有者身份。而且,Apple 不会记录可泄露查找设备所有者身份的信息,也不会保留允许其他人关联查找设备和设备所有者的信息。设备所有者只会收到加密的位置信息,该信息在“查找” App 中解密和显示且不会指示谁寻回了该设备。