以 Intel 為基礎的 Mac 之 RecoveryOS 和診斷環境
RecoveryOS
RecoveryOS 與 macOS 主體完全獨立,且所有內容儲存於稱為 BaseSystem.dmg 的磁碟映像檔案。同時亦有關聯的 BaseSystem.chunklist 用來驗證 BaseSystem.dmg 的完整性。區塊列表是 BaseSystem.dmg 的 10 MB 區塊的一系列雜湊值。統一可延伸韌體介面(UEFi)韌體會評估區塊列表檔案的簽署,然後為 BaseSystem.dmg 的區塊雜湊值進行逐個評估。這可協助確保其與區塊列表顯示的簽署內容相符。如果這些雜湊值中有任何一個不相符,便會中止從本機 RecoveryOS 開機,然後 UEFI 韌體會改為嘗試從互聯網 RecoveryOS 開機。
如果驗證成功完成,UEFI 韌體會將 BaseSystem.dmg 裝載為 RAM 磁碟,並啟動其中的 boot.efi 檔案。UEFI 韌體不需要對 boot.efi 執行特定檢查,boot.efi 也不需要檢查核心,因為作業系統的完整內容(這些元素只是其子集)已通過完整性檢查。
Apple 診斷
啟動本機診斷環境的程序大部份與啟動 RecoveryOS 相同。系統會使用獨立的 AppleDiagnostics.dmg 和 AppleDiagnostics.chunklist 檔案,但是驗證方式與 BaseSystem 檔案相同。無需啟動 boot.efi,UEFI 韌體會啟動磁碟映像(.dmg 檔案)中的 diags.efi 檔案,然後這個檔案會負責呼叫其他各種 UEFI 驅動程式,這些驅動程式可以連接並檢查硬件中的錯誤。
互聯網 RecoveryOS 和診斷環境
如果啟動本機還原或診斷環境時發生錯誤,UEFI 韌體會嘗試改從互聯網下載映像檔。(用户也可使用啟動時按下特殊按鍵序列的方法,指定要求從互聯網截取映像檔)。從「OS 還原伺服器」下載的磁碟映像和區塊列表的完整性驗證方式,與驗證從儲存裝置取得的映像之方式相同。
雖然連線至「OS 還原伺服器」時是使用 HTTP,但下載的完整內容仍會進行上文所説明的完整性檢查,因此受到保護而免於遭擁有網絡控制權的攻擊者操縱。當單獨的區塊沒有通過完整性驗證,系統會先從 OS 還原伺服器重新要求該區塊 11 次,然後再放棄並顯示錯誤。
Mac 電腦的互聯網還原和診斷模式是於 2011 年加入,當時決定最好使用較簡單的 HTTP 傳輸,以及使用區塊列表機制來處理內容認證,而非在 UEFI 韌體中執行較複雜的 HTTPS 功能,因此增加了韌體的攻擊面。