我有几台运行最新 Windows 10 的 HP 台式机,需要升级 TPM 固件 (sp82407.exe) 来修复去年的 Infineon 加密漏洞。更新程序需要初始化 TPM,并要求用户输入密码或密钥备份文件才能继续。
无论我怎么尝试,Windows 10 都拒绝在 TPM 初始化期间调出密码输入/密钥备份对话框。我读过的所有指南要么过时,要么完全错误。在 Win7 上,这曾经很容易,手动初始化的选项就在 tpm.msc 中。但 Win10 在某些时候改变了它,默认情况下,出于安全原因,会生成一个随机密钥然后丢弃。所以现在升级固件是不可能的。
TPM 要求用户在启动时亲自按下 F3 键以确认 TPM 清除步骤,这让情况更加糟糕。我花了几个小时在现场反复重启一台启动缓慢的 PC,并尝试我找到的指南中的各种命令和切换。这令人沮丧和不安。微软和惠普都没有在他们的 TPM 文档中承认这种行为,固件升级工具也无法适应这种新的 Windows 行为。
那么,有人可以提供如何在最新的 Windows 10 上将 TPM 初始化切换为手动模式的工作说明吗?
答案1
根据 sp82407.exe SoftPaq 存档中包含的 Readme.html:
Windows 10 ® 版本 1607 及更高版本
所有者授权不再存储在本地系统上。要更新固件,您需要清除 TPM 并使用修改后的 Windows 设置重新取得所有权,以便所有者授权存储在本地系统上。更新固件需要以下步骤:
- 将注册表项“HKLM\Software\Policies\Microsoft\TPM\OSManagedAuthLevel”设置为 4 [REG_DWORD]。
- 启动 tpm.msc 并单击“清除 TPM...”。重新启动计算机。
- 启动 tpm.msc 并单击“准备 TPM...”。
- 运行TPM固件更新工具并更新固件。重新启动计算机。
- 将注册表项恢复为其先前的值。
- 启动 tpm.msc 并单击“清除 TPM...”。重新启动计算机。
- 启动 tpm.msc 并单击“准备 TPM...”。
至于它的具体工作原理,我使用注册表项的名称来查找TPM 组策略设置。它解释了各种值的含义以及它们的行为方式:
如果启用此策略设置,Windows 操作系统将根据您选择的 TPM 身份验证设置将 TPM 所有者授权存储在本地计算机的注册表中。0
= 无,2 = 委托,4 = 完整。从 Windows 10 版本 1703 开始,默认值为 5(虚拟)。
我还发现了微软博客文章TPM 所有者密码其中详细介绍了密码的存储位置和存储方式以及如何使用密码。
对于操作系统 (Windows 8.1/10),TPM 是自动配置的 - 这意味着 TPM 会自动激活。Windows 使用随机生成的 Lockout Auth 来配置 TPM,然后销毁 Lockout Auth,而不会将其透露给用户。但是,根据 GPO 设置,TPM 所有者密码可以另外存储在注册表中。
因此,诀窍是将 OSManagedAuthLevel 设置为 Full 并重新初始化。仍然没有密钥备份 UI,但注册表项的存在将导致 TPM 密钥保存在注册表中。根据自述文件,更新程序应该能够自动获取密钥。如果没有,则可以从注册表中提取密钥。