密封密鑰保護(SKP)
在支援「資料保護」的 Apple 裝置上,密鑰加密密鑰(KEK)受到系統上軟件的測量值保護(或密封),也與只能從「安全隔離區」取用的 UID 綁定。在配備 Apple 晶片的 Mac 上,整合了有關系統保安規則的資料,進一步強化了 KEK 的保護機制,因為 macOS 支援其他平台不支援的重要保安規則變更(例如,停用安全啟動或 SIP)。在配備 Apple 晶片的 Mac 上,這個保護機制包含「檔案保險箱」密鑰,因為「檔案保險箱」是使用「資料保護」(類別 C)來執行的。
衍生自用户密碼、長期 SKP 密鑰和硬件密鑰 1(「安全隔離區」的 UID)的密鑰稱為密碼衍生密鑰。此密鑰用於保護用户 Keybag(在所有受支援的平台上)和 KEK(只限在 macOS 上),然後啟用生物識別解鎖或使用其他裝置(如 Apple Watch)來自動解鎖。
「安全隔離區開機監視器」會截取已載入「安全隔離區 OS」的測量值。當「應用程式處理器」的「Boot ROM」測量值附加至 LLB 的 Image4 資料檔時,該資料檔中也會包含其他所有已載入系統配對韌體的測量值。LocalPolicy 包含已載入 macOS 的核心保安設定。LocalPolicy 也包含 nsih
欄位,這是 macOS Image4 資料檔的雜湊值。macOS Image4 資料檔包含所有 macOS 配對韌體和核心 macOS 開機物件(例如「開機核心集合」或簽署系統卷宗(SSV)根雜湊值)的測量值。
如果攻擊者能未預期地更改任何上述任何測量韌體、軟件或保安設定元件,便會修改儲存在硬件暫存器中的測量值。修改測量值會造成由加密硬件衍生的系統測量根密鑰(SMRK)衍生出不同的值,實際上會破壞密鑰階層上的印章。而這會導致無法存取系統測量裝置密鑰(SMDK),進而導致無法存取 KEK 和資料。
然而,當系統未有受到攻擊,其必須根據合法軟件更新進行調適,這些更新會更改韌體測量值及 LocalPolicy 中的 nsih
欄位以指向新的 macOS 測量值。在其他企圖整合韌體測量值但沒有已知真實來源的系統中,用户必須停用保安、更新韌體,然後再重新啟用,這樣才能截取新的測量基準。這大幅提高了攻擊者在軟件更新期間可能竄改韌體的風險。Image4 資料檔包含所需的一切測量值,對系統有所幫助。正常開機期間測量值相符時透過 SMRK 解密 SMDK 的硬件,也可以將 SMDK 加密為建議的未來 SMRK。藉由指定軟件更新後預期的測量值,硬件可以加密可在目前作業系統中存取的 SMDK,如此一來在未來作業系統中它仍保持可存取狀態。同樣地,當客户合法更改 LocalPolicy 中的保安設定時,必須根據 LLB 電腦下次重新起動時會運算的 LocalPolicy 測量值將 SMDK 加密為未來的 SMRK。