在部署中使用安全代號、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
指令輸出中列出的「本機 Open Directory 使用者」類型的 GUID 映射回 Open Directory 中用戶記錄的GeneratedUID
。若要透過 GeneratedUID
,請使用下列指令:
dscl . -search /Users GeneratedUID <GUID>
你也可以使用下列指令一起查看用使用者名稱和 GUID:
sudo fdesetup list -extended
擁有者權限會由「安全隔離區」中受保護的加密備份。如需更多資訊,請參閱:
命令列工具使用
命令列工具可用於管理 Bootstrap 代號和安全代號。MDM 解決方案告知 Mac 其支援功能後,Bootstrap 代號通常於 macOS 設定程序執行期間在 Mac 上產生,再交由 MDM 解決方案託管。但是 Bootstrap 代號也可在已部署的 Mac 上產生。如果 MDM 解決方案支援此功能,在 macOS 10.15.4 或以上版本中,任何已啟用安全代號的使用者初次登入時,系統會產生 Bootstrap 代號並交由 MDM 託管。這麼做可減少設定裝置後使用 profiles 命令列工具來產生 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 命令列工具
sysadminctl
命令列工具可用來專門修改 Mac 電腦上使用者帳號的安全代號狀態。執行時需要謹慎,並且只在需要時執行。使用 sysadminctl
更改使用者的安全代號狀態一律需要目前已啟用安全代號的管理者之使用者名稱和密碼,無論是以互動方式執行或透過指令上的適當旗標。sysadminctl
和「系統設定」(macOS 13 或以上版本)或「系統偏好設定」(macOS 12.0.1 或較早版本)都會防止刪除 Mac 上的最後一個管理者或已啟用安全代號的使用者。如果使用 sysadminctl
撰寫建立其他本機使用者的指令碼,若要為這些使用者啟用安全代號,必須提供目前啟用安全代號的管理者憑證(透過互動選項,或直接使用含有 -adminUser
和 -adminPassword
旗標的 sysadminctl
)。若建立時未授予安全代號,在 macOS 11 或以上版本中,若可從 MDM 解決方案取得 Bootstrap 代號,安全代號會時在登入期間授予登入 Mac 電腦的本機使用者。使用 sysadminctl -h
以取得其他使用指示。