![](https://help.apple.com/assets/664256E0F9FFA26F690A0B01/664256E3F9FFA26F690A0B07/zh_HK/312766e3df7f57c1f549da2dab216b36.png)
在部署中使用保安代碼、Bootstrap 代碼和卷宗擁有權
保安代碼
在 macOS 10.13 或較新版本,Apple 檔案系統(APFS)會改變「檔案保險箱」加密密鑰的產生方式。 在 CoreStorage 卷宗中的舊版本 macOS,當用户或機構在 Mac 上開啟「檔案保險箱」,會產生供「檔案保險箱」加密過程使用的密鑰。 在配搭 APFS 卷宗的 macOS,加密密鑰會在建立用户、設定第一個用户的密碼或 Mac 用户第一次登入時產生。 當加密密鑰產生時,其執行和儲存方式都是「保安代碼」功能的內容。 確切地說,保安代碼是由用户密碼保護的已封裝版密鑰加密密鑰(KEK)。
當在 APFS 部署「檔案保險箱」時,用户可以繼續:
使用現用的工具和程序,如可儲存於流動裝置管理(MDM)解法方案以供託管的個人還原密鑰(PRK)
製作和使用「指示性還原密鑰」(IRK)
延後啟用「檔案保險箱」,直至用户登入或登出 Mac
在 macOS 11 或較新版本中,在 Mac 上設定最初首位用户的初始密碼,會使該用户獲授予一個保安代碼。 在部份工作流程中,這可能不是用户期望的行為。如前所述,授予第一個保安代碼會需要該用户帳户來登入。 如要避免此情況,在設定用户密碼前,以編程方式將 ;DisabledTags;SecureToken
加入會製作用户的 AuthenticationAuthority
屬性,如下所示:
sudo dscl . -append /Users/<user name> AuthenticationAuthority ";DisabledTags;SecureToken"
Bootstrap 代碼
在 macOS 10.15 或較新版本,Bootstrap 代碼是用來協助將保安代碼授予 macOS 帳户和裝置註冊時製作的可擇性管理員帳户(「受管理的管理員」)。 在 macOS 11 或較新版本中,Bootstrap 代碼可授予保安代碼至任何登入至 Mac 電腦的用户,包括本機用户帳户。 使用 macOS 10.15 或較新版本「Bootstrap 代碼」功能的需求:
監管
MDM 供應商支援
你的 MDM 解決方案應該可以支援 Bootstrap 代碼。 在 macOS 10.15.4 或較新版本,用户已啟用保安代碼的用户首次登入時,會產生 Bootstrap 代碼供 MDM 解決方案託管。 如有需要,亦可使用 profiles
命令列工具產生 Bootstrap 代碼並供 MDM 託管。
在 macOS 11 或較新版本,Bootstrap 代碼亦可以不止用於授予保安代碼至用户帳户。 在配備 Apple 晶片的 Mac 電腦上,Bootstrap 代碼(如有)在使用 MDM 管理時,可用於授權核心延伸功能和軟件更新的安裝。 在 macOS 12.0.1 或較新版本上,當透過 MDM 觸發時,Bootstrap 代碼也會用於在無提示的情況下授權「清除所有內容和設定」指令。
卷宗擁有權
配搭 Apple 晶片的 Mac 電腦帶來了卷宗擁有權的概念。 機構情境中的卷宗擁有權不會連繫到 Mac 真正在法律上的擁有權或監管鏈。 反之,卷宗擁有權會被寬鬆地定義為首先宣告擁有 Mac 的用户(透過設定 Mac 以供他們使用),以及任何其他用户。 你必須為卷宗擁有者才能為 macOS 的指定安裝更改啟動保安規則、授權安裝 macOS 軟件更新和升級、在 Mac 上啟用「清除所有內容和設定」等。 啟動保安規則定義了對可開機的 macOS 版本之取用限制,以及能否載入或管理第三方核心延伸功能及其載入或管理的方式。
首先宣告擁有 Mac 的用户(透過設定 Mac 以供他們使用)在配備 Apple 晶片的 Mac 上會獲授予保安代碼,並成為第一位卷宗擁有者。 在有可用的 Bootstrap 代碼且其正被使用,其也會成為卷宗擁有者,然後在其向其他用户授予保安代碼時,便會向那些用户授予卷宗擁有權。 因為第一位被授予保安代碼的用户和 Bootstrap 代碼會成為卷宗擁有者,而 Bootstrap 代碼擁有將保安代碼授予其他用户的能力(以及卷宗擁有權狀態),卷宗擁有權理應不需要在機構中被經常管理或處理。 管理和授予保安代碼的前期考量一般應該與卷宗擁有權狀態一致。
卷宗擁有者可以不是管理員,但特定操作需要檢查兩者的擁有權。 例如,修改啟動保安設定就需要管理員和卷宗擁有者,而授權軟件更新可由標準用户允許並只需要擁有權即可。
如要檢視配備 Apple 晶片的 Mac 電腦上目前的卷宗擁有者列表,你可以執行以下指令:
sudo diskutil apfs listUsers /
列於 diskutil
指令中的 GUID 輸出類型「本機 Open Directory 用户」對應至 Open Directory 中的用户記錄之 GeneratedUID
屬性。 如要使用 GeneratedUID
尋找用户,請使用以下指令:
dscl . -search /Users GeneratedUID <GUID>
你也可以使用以下指令來同時查看用户名稱和 GUID:
sudo fdesetup list -extended
擁有權受「安全隔離區」中保護的加密編譯支持。 如需更多資料,請參閲:
命令列工具使用方式
命令列工具適用於管理 Bootstrap 代碼和保安代碼。 在 macOS 設定過程中,MDM 解決方案告知 Mac 其支援該功能後,Bootstrap 代碼通常會在 Mac 上產生,並由 MDM 解決方案託管。 但是,Bootstrap 代碼亦可在已部署的 Mac 上產生。 在 macOS 10.15.4 或較新版本,如 MDM 解決方案支援 Bootstrap 代碼功能,在任何已啟用保安代碼的用户首次登入時會產生 Bootstrap 代碼並供 MDM 解決方案託管。 這樣會減少在裝置設定後使用 profile 命令列工具來產生 Bootstrap 代碼並將其交由 MDM 解決方案託管的需要。
profiles
命令列工具有多個選項來與 Bootstrap 代碼互動:
sudo profiles install -type bootstraptoken
: 此指令會產生新的 Bootstrap 代碼並將其交由 MDM 解決方案託管。 此指令要求現有的保安代碼管理員資料來於一開始產生 Bootstrap 代碼,且該 MDM 解決方案必須支援該功能。sudo profiles remove -type bootstraptoken
: 在 Mac 和 MDM 解決方案移除現有的 Bootstrap 代碼。sudo profiles status -type bootstraptoken
: 回報 MDM 解決方案是否支援 Bootstrap 代碼功能,以及目前 Mac 上 Bootstrap 代碼的狀態。sudo profiles validate -type bootstraptoken
: 回報 MDM 解決方案是否支援 Bootstrap 代碼功能,以及目前 Mac 上 Bootstrap 代碼的狀態。
sysadminctl 命令列工具
Mac 電腦上的用户帳户可使用 sysadminctl
命令列工具來指定修改保安代碼的狀態。 請格外謹慎並只在必要時執行此操作。 使用 sysadminctl
更改用户的保安代碼狀態,一律需要已啟用保安代碼的管理員用户名稱及密碼,以互動方式或經指令上的適當旗標執行。 sysadminctl
及「系統設定」(macOS 13 或較新版本)或「系統偏好設定」(macOS 12.0.1 或較早版本)均防止刪除 Mac 的上一個管理員或已啟用保安代碼的用户。 如果製作額外本機用户使用 sysadminctl
來編碼,需要目前已啟用保安代碼管理員的憑證,以由使用互動選項,或直接透過 -adminUser
和帶有 sysadminctl
的 -adminPassword
旗標來提供已被保安代碼啟用的用户。 如在製作時未授予保安代碼,在 macOS 11 或較新版本,本機用户在登入到 Mac 電腦的期間,如 Bootstrap 代碼可從 MDM 解決方案取得,就會被授予一個保安代碼。 使用 sysadminctl -h
以獲得更多使用指示。