TPM“所有权”和“所有者密码”的用途

信息安全 tpm
2021-08-28 06:55:30

我有一台配备 TPM 2.0、双启动 Windows 10 和 Linux 的笔记本电脑。默认情况下,Windows 使用一次性密码自动获取 TPM 的所有权,但可以将其配置为将其存储在注册表中。

但是,即使没有所有者密码,Linux 似乎也可以访问 TPM - 至少,我能够成功地针对某些 PCR 密封 LUKS 密钥,稍后解封它,并且在 PCR 更改时无法解封它,就像预期的。

这,实际上是 Win10 的整个“一次性所有者密码”,让我对所有者密码的确切用途感到困惑——哪些操作需要它?

另外:如果我有一些可能是当前所有者密码的东西,我如何使用 Linux TPM 2.0 工具检查/验证它,最好不要对 TPM 内容进行任何更改?(我同时安装了 IBM 和 Intel 用户空间工具。)

1个回答

简单地说,“取得所有权”会创建一个新的存储根密钥。如果人们希望在命令行模式下执行与所有权密码相关的选项,该密码可确保执行“拥有”的用户再次是同一个人。密码在 TPM 文档中被称为“共享密钥”,并且在命令的语法中是必需的,如果供应商希望符合 TPM 规范,无论在他们的 TPM 实现中是否有必要,都需要该密码。在 Win 7 中,一个命令是,它允许控制 bitlocker 以及 TPM,其中 bitlocker 依赖于:

manage-bde -tpm [-turnon] [-takeownership !Owner Password!] [-computername ] [{-?|/?}] [{-help|-h}]

TPM 实现的一个问题是,虽然标准存在,但供应商的实现会有所不同,甚至命令的行为方式也会有所不同。我只能从 Windows 经验说起,它从像你现在在 Win7 周围那样进行过程调用开始,到在 Win10 中完全自动化或使用不易出错的管理控制台,如 tpm.msc。当用户亲自到场获取所有权时,Win 10 中的管理员权限足以执行 TPM.msc 并使用用户不知道的 Win10 生成的密码,因为该密码由各种 Windows 维护控制台协调。如果用户 PC 是网络的一部分,则假定系统管理员是唯一允许管理安全功能和设置 TPM 的人。如果 PC 用户将其 TPM 更改为本地管理员或什至系统管理员并在以后遇到问题,他们只是重复整个所有权过程;给定后续包装的密钥,该过程需要一段时间才能完成。因此,总而言之,在 Win10 中,管理员可以执行所有权所需的任务,而无需知道以前用于所有权的密码。