iPhone 和 iPad 设备启动过程
启动过程每个步骤包含的组件都经 Apple 加密签名以启用完整性检查,因此只有在验证信任链后,启动才能继续。这些组件包括引导载入程序、内核、内核扩展项和蜂窝网络基带固件。这一安全启动链的设计旨在验证软件的最底层不被篡改。
iPhone 和 iPad 设备开机后,其应用程序处理器会立即执行只读内存(称为 Boot ROM)中的代码。这些不可更改的代码(称为硬件信任根)是在制造芯片时设定的隐式受信任代码。Boot ROM 代码包含 Apple 根证书颁发机构 (CA) 公钥,该公钥用于验证 iBoot 引导载入程序是否经过 Apple 签名,以决定是否允许其载入。这是信任链中的第一步,信任链中的每个步骤都会检查下一步骤是否已经过 Apple 的签名。iBoot 完成任务后,会验证和运行 iOS 或 iPadOS 内核。对于搭载 A9 或更早 A 系列处理器的设备,Boot ROM 还会载入和验证底层引导载入程序 (LLB),后者随后会依次载入和验证 iBoot。
无法载入或验证以下阶段时,处理方式因硬件而异:
Boot ROM 无法载入 LLB(较旧的设备):设备固件升级 (DFU) 模式
LLB 或 iBoot:恢复模式
出现任一情况时,设备都必须通过 USB 连接到“访达”(macOS 10.15 或更高版本)或 iTunes(macOS 10.14 或更低版本),并恢复为出厂默认设置。
安全隔区使用启动进程寄存器 (BPR) 来限制不同模式中对用户数据的访问,在进入以下模式前会对 BPR 进行更新:
DFU 模式:由搭载 Apple A12 或后续型号 SoC 的设备上的 Boot ROM 设定
恢复模式:由搭载 Apple A10、S2 或后续型号 SoC 的设备上的 iBoot 设定
对于可接入蜂窝网络的设备,蜂窝网络基带子系统使用已签名的软件以及由基带处理器验证的密钥来执行额外的安全启动过程。
安全隔区还会执行安全启动过程来检查其软件 (sepOS) 是否已经过 Apple 验证和签名。