死者不咬人,但会发光:2026 年 Find My 在 iOS 中如何工作
Source: Dev.to
(请提供需要翻译的正文内容。)
Find My 真正的工作原理
从电源控制器的硬件技巧到后量子加密算法。
我们将拆解为什么“死机”的 iPhone 对用户来说只是一种幻觉,数学如何保护你的坐标不被 Apple 本身读取,以及当屏幕变暗时你的智能手机如何变成加密信标。本文对开发者、安全专家以及任何想了解现代电子设备真实能力(及其局限性)的人都有帮助。
电源保留模式 – 死亡只是开始
在 2026 年,只要锂离子电池还能提供电流,iPhone 永远不会真正关机。当出现电池耗尽图标时,iOS 和主应用处理器被迫关闭,但 电源保留 仍然为关键子系统供电。
- 设备实际上变成了一个非常昂贵、技术先进的 AirTag。
- 蓝牙 LE(低功耗)芯片及其常驻处理器(AOP)保持活跃。
为什么要保持运行?
Find My 现在是 Apple 安全体系的一部分。Apple 决定,在设备“死亡”后 48–72 小时内定位被盗或丢失的设备,比可能防止深度放电的额外 0.5 % 电量更有价值。
硬件 – 谁在大家都睡觉时不睡?
电源域分离实现了这种行为。当庞大的 A 系列芯片(主处理器)进入最深度睡眠时,PMIC(电源管理 IC) 仍继续为以下部件供电:
| 子系统 | 角色 |
|---|---|
| Secure Enclave (SEP) | 存储你的私钥。 |
| Bluetooth LE 控制器 | 处理 BLE 广播。 |
| U2/U3 芯片(超宽带) | 实现精确的近距离查找。 |
广播间隔是自适应的。如果加速度计(以微模式运行)检测到设备静止,广播频率会降至每几分钟一次;一旦移动,频率立即上升。这使得“尸体”可以存活最长三天。
隐私的数学 – 为什么 Apple 看不见
常见误解:“Apple 知道我在哪里。”
**现实:**Find My 的架构设计使得即使在极端压力下,Apple 也无法在其服务器上解密你的设备坐标。
密钥生成
你的 iPhone 从不广播序列号或 Apple ID。相反,它使用 轮转公钥。大约每 15 分钟,设备会生成一个新的公钥 (K_{\text{pub}}),该公钥来源于在初始设置期间从未离开 Secure Enclave 的主密钥。
- iPhone 生成一对密钥 ((K_{\text{pub}}, K_{\text{priv}}))。
- 仅将 (K_{\text{pub}}) 通过 BLE 发送。
- 任意附近的 iPhone(称为“帮助者”)接收广播,将其 GPS 坐标附加在负载上,并使用 (K_{\text{pub}}) 加密该负载。
报告公式
[ \text{Location_Report} = \operatorname{Encrypt}\bigl(\text{GPS_Coords} + \text{Timestamp},; K_{\text{pub}}\bigr) ]
加密后的数据包被发送到 Apple 的服务器。帮助者看不到私钥,也无法读取它加密的内容;Apple 同样没有私钥。只有你——在受信任的第二台设备(iPad、Mac 或另一部 iPhone)上——才能解密该报告。
数据转发与众包
把你的死机 iPhone 想象成森林里不能说话但可以留下无限笔记的人。陌生人(其他 iPhone)捡起这些笔记并将它们送到邮局(iCloud),而不阅读内容。
[Your iPhone (OFF)] --(BLE)--> [Stranger's iPhone] --(Internet)--> [iCloud] --(Key)--> [Your iPad]
到 2026 年,网络已经如此密集,即使在偏远的林区,遇到携带 Apple Watch 或 iPhone 的路人的概率也极高。Apple 与 Google 已就统一标准(DULT – Detecting Unwanted Location Trackers)达成一致,Android 设备同样可以匿名帮助定位你的物品,反之亦然。
2026 创新 – 后量子保护与 UWB 2.0
后量子加密
量子计算机已不再是理论威胁。Apple 在…(未完)
Source: …
引入了 PQ3 协议到 iMessage,Find My 也采用了该协议。用于加密坐标的密钥现在能够抵御 “先记录后解密” 的攻击。
超宽带 2.0
iPhone 17 与 AirTag 2 中的新芯片使用信号相位偏移测量来确定距离,精度可达 1–2 cm。即使设备处于 “关闭” 状态,精准查找仍可通过感应能量或极少的残余电荷触发响应。
Swift 示例(简化版) – 展示了框架的使用方式:
import CoreLocation
import NearbyInteraction
// Example session initialization for device finding in 2026
class FindingManager: NSObject, NISessionDelegate {
var niSession: NISession?
func startPreciseFinding(for deviceToken: NIDeviceCapability) {
guard NISession.isSupported else { return }
niSession = NISession()
niSession?.delegate = self
// Configure the session with the token of the target device
let configuration = NINearbyPeerConfiguration(token: deviceToken)
niSession?.run(configuration)
}
// MARK: - NISessionDelegate
func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) {
// Process distance and direction data here
}
func session(_ session: NISession, didInvalidateWith error: Error) {
// Handle session errors
}
}
要点
- Power Reserve 能在电池看似耗尽后仍让最小子系统保持数天运行。
- 轮换的公钥 与 仅限 Secure Enclave 的私钥 确保只有你能够读取位置报告。
- 众包 BLE 中继 让已关机的设备在不向 Apple 或帮助者暴露身份的前提下被找到。
- 后量子加密 为系统提供对抗量子攻击者的未来保障。
- UWB 2.0 即使在设备名义上关闭时,也能实现厘米级的精度。
self
// In 2026 we work with encrypted tokens even in UWB
let config = NINearbyPeerConfiguration(peerToken: deviceToken.sentinelToken)
niSession?.run(config)
func session(_ session: NISession, didUpdate nearbyObjects: [NINearbyObject]) {
if let object = nearbyObjects.first {
// Distance and direction accounting for U2/U3 phase modulation
print("Distance: \(object.distance)m, Azimuth: \(object.direction)")
}
}
物理 vs. 技术:网络的无能为力之处
再酷的技术也抵不过物理法则。当设备 从雷达上消失 时,我常看到用户失望。主要有两大敌人:
- 法拉第笼。 如果你的 iPhone 被塞进微波炉(已关闭!)或用多层铝箔包裹,BLE 信号根本无法逸出。金属保险箱和深层混凝土地下室也会产生同样的效果。
- 设备密度。 在西伯利亚的针叶林里,每 100 公里才出现一只熊,根本没有 iPhone,众包根本不起作用。没有人能够拾取 “森林中游客” 的求救信息。
结论
2026 年的 Find My 是系统编程的胜利。工程师们让“已关机”硬件在消耗纳安培电流的情况下完成最复杂的密码运算。这让我想起了老派微控制器开发时代——每个处理器周期都至关重要,只是现在要兼顾现代隐私需求。
如果你正在设计自己的 IoT 设备,请记住:未来不在于强大的发射器,而在于聪明地利用他人的基础设施。