在部署中使用安全令牌、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 令牌除了可用于向现有用户账户授予安全令牌外,还可用于其他方面。在搭载 Apple 芯片的 Mac 电脑上,通过 MDM 进行管理时,Bootstrap 令牌(如果可用)可用于以下方面:
监督
MDM 供应商支持
假设你的 MDM 解决方案支持 Bootstrap 令牌。在 macOS 10.15.4 或更高版本中,启用了安全令牌的用户首次登录时会生成 Bootstrap 令牌并托管到 MDM。在需要时,还可以使用 profiles
命令行工具来生成 Bootstrap 令牌并托管到 MDM。
在 macOS 11 或更高版本中,Bootstrap 令牌除了可用于向现有用户账户授予安全令牌外,还可用于其他方面。在搭载 Apple 芯片的 Mac 电脑上,通过 MDM 进行管理时,Bootstrap 令牌(如果可用)可用于以下方面:
授权安装软件更新。
静默授权“抹掉所有内容和设置” MDM 命令(macOS 12.0.1 或更高版本)。
通过平台 SSO 首次登录时创建新用户(macOS 13 或更高版本)。
宗卷所有权
搭载 Apple 芯片的 Mac 电脑引入了宗卷所有权的概念。在组织的环境中,宗卷所有权与 Mac 的实际法律所有权或监管链无关,而是可以宽泛定义为首先声明拥有 Mac(通过将其配置为自用)的用户以及任何其他用户。你必须是宗卷所有者才能更改特定 macOS 安装的启动安全性策略、授权安装 macOS 软件更新和升级、在 Mac 上发起“抹掉所有内容和设置”等。启动安全性策略定义了可以启动的 macOS 版本限制和如何以及是否可以载入或管理第三方内核扩展。
通过将 Mac 配置为自用来首先声明拥有 Mac 的用户会在搭载 Apple 芯片的 Mac 上被授予安全令牌,并成为第一个宗卷所有者。Bootstrap 令牌可用且正在使用时,它也会成为宗卷所有者,并在授予其他账户安全令牌时授予其宗卷所有权状态。由于被授予安全令牌的第一个用户和 Bootstrap 令牌都成为宗卷所有者,以及 Bootstrap 令牌具有授予其他用户安全令牌(因此也授予其宗卷所有权状态)的能力,宗卷所有权在组织中不应需要主动管理或操作。之前对管理和授权安全令牌的考虑因素也应当大体与宗卷所有权状态对应。
用户可以成为宗卷所有者而不成为管理员,但某些任务需要检查这两者的所有权。例如,修改启动安全性设置需要同时为管理员和宗卷所有者,而授权软件更新可以由普通用户执行且只需要所有权。
若要查看搭载 Apple 芯片的 Mac 电脑上当前宗卷所有者的列表,你可以运行以下命令:
sudo diskutil apfs listUsers /
在“本地 Open Directory 用户”类型的 diskutil
命令输出中列出的 GUID 与 Open Directory 中用户记录的 GeneratedUID
属性对应。若要通过 GeneratedUID
查找用户,请使用以下命令:
dscl . -search /Users GeneratedUID <GUID>
你还可以使用以下命令来同时查看用户名和 GUID:
sudo fdesetup list -extended
所有权由安全隔区中受保护的密码系统提供支持。有关更多信息,请参阅:
命令行工具使用
命令行工具可用于管理 Bootstrap 令牌和安全令牌。Bootstrap 令牌通常在 macOS 设置过程中在 Mac 上生成并托管到 MDM 解决方案(在 MDM 解决方案告知 Mac 其支持此功能后)。但 Bootstrap 令牌还可在已部署的 Mac 上生成。在 macOS 10.15.4 或更高版本中,启用了安全令牌的任何用户在首次登录时会生成 Bootstrap 令牌并托管到 MDM,前提是 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
编写脚本创建了其他本地用户,这些用户要启用安全令牌时需要提供当前已启用安全令牌的管理员凭证,可通过交互选项提供,也可直接使用 sysadminctl
的 -adminUser
和 -adminPassword
标志位提供。在 macOS 11 或更高版本中,即使创建时未被授予安全令牌,只要可从 MDM 解决方案获取 Bootstrap 令牌,登录 Mac 电脑的本地用户也会在登录期间被授予安全令牌。使用 sysadminctl -h
获取其他使用说明。