![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/zh_HK/52d714626638d3391623c853be0c593b.png)
簽署系統卷宗保安
在 macOS 10.15,Apple 引入了唯讀系統卷宗,這是供系統內容專用的隔離卷宗。macOS 11 則為簽署系統卷宗(SSV)的系統內容加入了高強度的加密編譯保護。SSV 具備核心機制,可在執行時驗證系統內容的完整性,以及拒絕沒有 Apple 有效加密編譯簽署的任何資料(程式碼與非程式碼)。從 iOS 15 和 iPadOS 15 開始,iPhone 或 iPad 上的系統卷宗也取得簽署系統卷宗的加密保護。
SSV 有助於防止竄改屬於作業系統一部份的任何 Apple 軟件,也可讓 macOS 軟件更新更可靠且更安全。且因為 SSV 使用「Apple 檔案系統」(APFS)快照,如果更新無法執行,可還原舊版系統而不需要重新安裝。
引入此功能後,APFS 在內置儲存裝置上使用非加密編譯總和檢查碼,因此提供了檔案系統後設資料完整性。SSV 加入了加密編譯雜湊值,讓其可延伸至包含檔案資料的所有位元組,因而加強了完整性機制。內置儲存裝置(包括檔案系統後設資料)中的資料在讀取路徑中以加密編譯方式進行雜湊值處理,而雜湊值之後會與檔案系統後設資料中的預期值做比較。如結果不一致,系統會假設資料已遭到竄改,且不會傳回給提出要求的軟件。
每個 SSV SHA256 雜湊值都儲存在主檔案系統後設資料樹狀結構中,而這個樹狀結構本身就經過雜湊值處理。樹狀結構的每個節點都經過遞迴式驗證,驗證其子項目雜湊值的完整性,類似二位元雜湊值(Merkle)樹狀結構;因此根節點的雜湊值(稱為印章)會包含 SSV 中資料的所有位元組,這表示加密編譯簽署涵蓋整個系統卷宗。
安裝和更新 macOS 期間,印章會從裝置上的檔案系統進行重新運算,並根據 Apple 簽署的測量值驗證其測量結果。在配備 Apple 晶片的 Mac 上,將控制權傳送給核心之前,啟動程式會驗證印章。在以 Intel 為基礎並配備 Apple T2 安全晶片的 Mac 上,啟動程式會將測量值和簽署轉送至核心,然後核心會直接在裝載根檔案系統之前驗證印章。在這兩種情況下,如果驗證失敗,開機程序都會停止,且系統會提示用户重新安裝 macOS。此程序會在每次開機時重複執行,除非用户選擇進入較低的保安模式,且已分別選擇停用簽署系統卷宗。
在 iOS 和 iPadOS 軟件更新期間,系統卷宗會以類似的方式準備和重新計算。在允許裝置設備啟動核心之前,iOS 和 iPadOS Bootloader 會驗證印章是否完好無損並且符合 Apple 簽署值。開機時如不相符,系統會提示用户更新裝置上的系統軟件。用户無法在 iOS 和 iPadOS 上停用已簽署之系統卷宗的保護機制。
SSV 和程式碼簽署
程式碼簽署仍存在並由核心強制執行。從內置儲存裝置讀取任何位元組時,簽署系統卷宗可提供保護。相對地,當 Mach 物件記憶體對映到可執行檔時,程式碼簽署可提供保護。SSV 和程式碼簽署都能保護所有讀取和執行路徑上的可執行程式碼。
SSV 和檔案保險箱
在 macOS 11 或較新版本中,SSV 為系統內容提供了等效的靜態保護,因此系統卷宗不再需要加密。對靜態檔案系統進行的任何修改,都會在讀取檔案系統時偵測到。如果用户已開啟「檔案保險箱」,資料卷宗上的用户內容仍會以用户提供的密碼加密。
如果用户選擇停用 SSV,靜態時的系統將變得容易遭到竄改,且此處的竄改可能讓攻擊者得以在系統下次啟動時截取已加密的用户資料。因此,如果已開啟「檔案保險箱」,系統將不會允許用户停用 SSV。兩種卷宗的靜態保護功能啟用或停用狀態必須一致。
在 macOS 10.15 或較早版本中,「檔案保險箱」使用密鑰(受到用户提供的密碼保護)加密用户和系統內容,藉此保護靜態作業系統軟件。此功能會保護裝置,以防止可實際取用裝置的攻擊者存取或有效地修改包含系統軟件的檔案系統。
SSV 和配備 Apple T2 安全晶片的 Mac
在配備 Apple T2 安全晶片的 Mac 上,只有 macOS 本身受到 SSV 保護。在 T2 晶片上執行和驗證 macOS 的軟件受到安全啟動保護。