LocalPolicy 簽署密鑰的建立與管理
建立
一開始在廠內安裝 macOS 時,或者在執行連線式清除安裝時,Mac 會從暫時回復 RAM 磁碟執行程式碼以初始化其預設狀態。在此過程中,回復環境將建立一對新的公用密鑰和專用密鑰,它們分別保存在「安全隔離區」中。專用密鑰稱為所有者身分密鑰(OIL)。如果任何 OIK 已經存在,則會在此過程中銷毀它。回復環境還會初始化用於「啟用鎖定」的密鑰;使用者身分密鑰(UIK)。該過程的一部分(這對配備 Apple 晶片的 Mac 而言是專有程序)是在為「啟用鎖定」要求 UIK 認證時,會包括一組在驗證時在 LocalPolicy 上強制執行的要求限制。如果裝置無法為「啟用鎖定」取得 UIK 認證(例如,由於該裝置目前與「尋找我的 Mac」帳號相關聯並且回報為遺失),則該裝置將無法繼續建立 Local Policy。如果向裝置核發了使用者身分憑證(ucrt),則該 ucrt 在 X.509 v3 擴充套件中包含伺服器所施加的策略限制和使用者要求的策略限制。
成功擷取「啟用鎖定」/ucrt
後,其會儲存在伺服器端的資料庫中,且還會傳回到裝置。裝置具有 ucrt 後,與 OIK 對應的公用密鑰認證要求會傳送到基本認證機構(BAA)伺服器。BAA 會使用儲存在 BAA 可取用資料庫中的 ucrt 中的公用密鑰來確認 OIK 認證要求。如果 BAA 可以確認認證,則它將驗證公用密鑰,並傳回所有者身分憑證(OIC),其由 BAA 簽署並包含儲存在 ucrt 中的限制。OIC 會被傳送回「安全隔離區」。從那時起,只要「安全隔離區」簽署了新的 LocalPolicy,它就會將 OIC 附加到 Image4。LLB 對 BAA 根憑證具有內建信任,這讓其可信任 OIC,也可讓其信任 LocalPolicy 完整簽章。
RemotePolicy 限制
所有 Image4 檔案(並非只有 Local Policy)都包含對 Image4 資訊檔評估設定的限制。這些限制都會使用分葉憑證中的特殊物件識別碼(OID)加以編碼。進行簽章評估時,Image4 驗證庫會在憑證中查詢特殊憑證限制 OID,然後機械式評估其中指定的限制。限制的形式有以下幾種:
X 必須存在
X 必須不存在
X 必須有指定值
舉例來說,若為「個人化」簽章,憑證限制就會包含「ECID 必須存在」,而若是「全域」簽章,則會包含「ECID 必須不存在」。這些限制的設計是為了確保由指定的密鑰簽署的所有 Image4 檔案,都必須遵守特定要求,以避免產生錯誤簽署的 Image4 資訊檔。
在每個 LocalPolicy 中,這些 Image4 憑證限制稱為 RemotePolicy。對於不同開機環境的 LocalPolicy,可以有不同的 RemotePolicy。RemotePolicy 用於限制 RecoveryOS LocalPolicy,讓 RecoveryOS 啟動時,行為只能和以「完整安全性」啟動一樣。這提高了對 RecoveryOS 開機環境完整性的信任,可在這個環境中更改規則。RemotePolicy 會將 LocalPolicy 限制為包含產生 LocalPolicy 的 Mac 之 ECID,以及儲存在該 Mac 上「安全儲存元件」中的特定「遠端規則」隨機數雜湊 (rpnh
)。僅當對「尋找我的Mac」和「啟用鎖定」採取了如註冊、取消註冊、遠端鎖定和遠端清除之類的操作時,rpnh
以及 RemotePolicy 才會更改。「遠端規則」限制是在使用者身分密鑰(UIK)認證時確定和指定的,並已登入到已核發的「使用者身分憑證」(ucrt)。伺服器確定某些「遠端規則」限制,例如 ECID、ChipID 和 BoardID。這樣的設計是為了防止一部裝置為另一部裝置簽署 LocalPolicy 檔案。裝置可能會指定其他「遠端規則」限制,以協助防止本機策略的安全性降級,且不會同時提供取用目前 OIK 所需的本機驗證和裝置鎖定啟用之帳戶的遠端驗證。