我想设置一个带有加密外部驱动器的 Mac Mini 服务器。在 Finder 中,我可以使用全盘加密选项。但是,对于多个用户来说,这可能会变得很棘手。
我想要做的是加密外部卷,然后进行设置,以便在机器启动时解锁磁盘,以便所有用户都可以访问它。当然需要维护权限,但这是不言而喻的。
我正在考虑设置一个 root 级 launchd 脚本,该脚本在启动时运行一次并解锁磁盘。加密密钥可能存储在 root 的钥匙串中。
以下是我关心的问题:
- 如果我将加密密钥存储在系统钥匙串中,那么
/private/var/db/SystemKey
当攻击者获得服务器的物理访问权限时,该文件可用于解锁钥匙串。这很糟糕。 - 如果我将加密密钥存储在用户钥匙串中,则必须使用密码手动运行该命令。这是不可取的。如果我使用用户凭据运行 launchd 脚本,它将在我的用户帐户下运行,但无法访问钥匙串,从而违背了目的。
- 如果 root 有钥匙串(有吗?)那么如何解密?它会保持锁定状态直到输入密码(像用户钥匙串一样)还是会存在与系统钥匙串相同的问题,密钥存储在驱动器上并且可以通过物理访问访问?
假设以上所有方法都有效,我已经找到了diskutil coreStorage unlockVolume
似乎合适的命令,但存储加密密钥的位置细节是最大的问题。如果系统钥匙串不够安全,而用户钥匙串需要密码,那么最好的选择是什么?