iOS设备的硬件和软件实现了紧密集成,可确保系统的每个组件均获得信任,并对系统进行整体验证。从初始启动到iOS软件更新,再到第三方应用,每个步骤都经过分析和审查,确保硬件和软件以最优化的方式协同工作,并以恰当的方式使用资源。
iOS的启动引导分为三种模式,分别是正常模式引导、恢复模式引导以及固件更新模式引导。恢复模式引导在正常模式引导失败后会进入,固件更新模式在iOS系统升级或者越狱时会使用。
安全启动链
启动过程每个步骤包含的组件都经Apple加密签名以确保其完整性,只有在验证信任链后,每个步骤才能继续。这些组件包括引导加载程序、内核、内核扩展项和基带固件。打开iOS设备后,其应用程序处理器会立即执行只读内存(称为Boot ROM)中的代码。这些不可更改的代码(称为硬件的信任根)是在制造芯片时设好的,为隐式受信任代码。Boot ROM代码包含Apple根CA公钥,该公钥用于验证底层引导加载程序(LLB)是否经过Apple签名,以决定是否允许其加载。这是信任链中的第一步,信任链中的每个步骤都确保下一步骤获得Apple的签名。当LLB完成其任务后,它会验证并运行下一阶段的引导加载程序iBoot,后者又会验证并运行iOS内核。
此安全启动链有助于确保底层的软件未被篡改,并只允许iOS运行在经过验证的Apple设备上。对于可接入蜂窝移动网络的设备,基带子系统也使用其类似的安全启动过程,包括已签名的软件以及由基带处理器验证的密钥。对于搭载A7或更高版本A系列处理器的设备,Secure Enclave协处理器还会使用安全启动过程,用以确保其单独的软件经过Apple验证和签名。如果该启动过程中的某个步骤无法加载或验证下一过程,启动过程会停止,设备屏幕会显示“连接到iTunes”。这就是所谓的恢复模式。如果Boot ROM无法加载或验证LLB,它会进入DFU(设备固件升级)模式。这两种情况下,设备都必须通过USB连接到iTunes,并恢复为出厂默认设置。