iOS設(shè)備的硬件和軟件實現(xiàn)了緊密集成,可確保系統(tǒng)的每個組件均獲得信任,并對系統(tǒng)進(jìn)行整體驗證。從初始啟動到iOS軟件更新,再到第三方應(yīng)用,每個步驟都經(jīng)過分析和審查,確保硬件和軟件以最優(yōu)化的方式協(xié)同工作,并以恰當(dāng)?shù)姆绞绞褂觅Y源。
iOS的啟動引導(dǎo)分為三種模式,分別是正常模式引導(dǎo)、恢復(fù)模式引導(dǎo)以及固件更新模式引導(dǎo)?;謴?fù)模式引導(dǎo)在正常模式引導(dǎo)失敗后會進(jìn)入,固件更新模式在iOS系統(tǒng)升級或者越獄時會使用。
安全啟動鏈
啟動過程每個步驟包含的組件都經(jīng)Apple加密簽名以確保其完整性,只有在驗證信任鏈后,每個步驟才能繼續(xù)。這些組件包括引導(dǎo)加載程序、內(nèi)核、內(nèi)核擴展項和基帶固件。打開iOS設(shè)備后,其應(yīng)用程序處理器會立即執(zhí)行只讀內(nèi)存(稱為Boot ROM)中的代碼。這些不可更改的代碼(稱為硬件的信任根)是在制造芯片時設(shè)好的,為隱式受信任代碼。Boot ROM代碼包含Apple根CA公鑰,該公鑰用于驗證底層引導(dǎo)加載程序(LLB)是否經(jīng)過Apple簽名,以決定是否允許其加載。這是信任鏈中的第一步,信任鏈中的每個步驟都確保下一步驟獲得Apple的簽名。當(dāng)LLB完成其任務(wù)后,它會驗證并運行下一階段的引導(dǎo)加載程序iBoot,后者又會驗證并運行iOS內(nèi)核。
此安全啟動鏈有助于確保底層的軟件未被篡改,并只允許iOS運行在經(jīng)過驗證的Apple設(shè)備上。對于可接入蜂窩移動網(wǎng)絡(luò)的設(shè)備,基帶子系統(tǒng)也使用其類似的安全啟動過程,包括已簽名的軟件以及由基帶處理器驗證的密鑰。對于搭載A7或更高版本A系列處理器的設(shè)備,Secure Enclave協(xié)處理器還會使用安全啟動過程,用以確保其單獨的軟件經(jīng)過Apple驗證和簽名。如果該啟動過程中的某個步驟無法加載或驗證下一過程,啟動過程會停止,設(shè)備屏幕會顯示“連接到iTunes”。這就是所謂的恢復(fù)模式。如果Boot ROM無法加載或驗證LLB,它會進(jìn)入DFU(設(shè)備固件升級)模式。這兩種情況下,設(shè)備都必須通過USB連接到iTunes,并恢復(fù)為出廠默認(rèn)設(shè)置。