TPM 的好处是否大于风险?

信息安全 tpm
2021-08-12 21:03:55

TPM 真的值得吗?

根据维基百科它:

  • 提供随机数生成器(没关系)
  • 用于安全生成有限用途的加密密钥的设施(我猜也可以)
  • 远程证明(听起来不安全)

在底部的部分,它提到了对 TPM 的一些批评,例如远程验证软件 - 制造商,而不是用户决定可以在计算机上运行什么。这听起来很可怕。

此外,VeraCrypt 不支持 TPM,这引起了一些担忧。如果他们不信任它,我为什么要信任它?

那么 TPM 值得还是只是一个不必要的潜在故障点?如果我根本不使用带有 TPM 的计算机,我的安全和隐私会更安全吗?即使对于最非法的用例(经 NSA 验证),使用 VeraCrypt 进行全盘加密听起来也足够安全。

那么,是否可以安全地从主板上移除 TPM 模块?

4个回答

这取决于您的威胁模型。TPM 有多种用途,但最常见的用途是测量启动也就是说,TPM 将验证 BIOS、选项 ROM、引导加载程序和其他敏感引导组件的完整性,以便能够检测到恶意女仆攻击或修改的固件。如果您的威胁模型包含能够修改您计算机上的固件或软件的对手,则 TPM 可以提供篡改证据以确保它不会未被检测到。

那么TPM 是如何工作的呢?当你真正开始的时候,它实际上很简单。TPM 测量各种固件组件的哈希值*并将哈希值存储在称为 PCR 的寄存器中。如果哈希值都匹配一个已知值,TPM 将解封,允许自己用于解密任意数据。它解密的数据取决于您。最常见的是,它是磁盘加密密钥的一部分。除非每个固件和启动软件都有正确的哈希值,否则 TPM 不会解封,加密密钥也不会泄露。TPM 可以用于更多用途,但想法是相同的。

* 从技术上讲,TPM 是被动的,不能主动读取固件、引导加载程序或其他数据。相反,一个称为CRTM的 BIOS 只读组件将 BIOS的哈希发送到 TPM,从而启动信任链此组件是只读的,以确保修改后的 BIOS 不会对 TPM 撒谎。

那么 TPM 值得还是只是一个不必要的潜在故障点?如果我根本不使用带有 TPM 的计算机,我的安全和隐私会更安全吗?即使对于最非法的用例(经 NSA 验证),使用 VeraCrypt 进行全盘加密听起来也足够安全。

您可能不需要使用远程证明。然而,它一点也不安全。它所做的只是允许远程设备向评估人员证明其运行的固件和软件与已知良好的哈希匹配。它不允许远程控制机器。由操作系统进行远程连接并将数据发送到 TPM。TPM 本身甚至不知道它正在用于远程证明。事实上,远程甚至不一定意味着通过网络。有一些非常聪明的实现使用 TPM 远程向安全的 USB 设备证明计算机的状态!由于 TPM 能够使用 DAA 或Direct Anonymous Attestation匿名签名,因此 TPM 的唯一私钥不存在隐私问题

让我们更进一步,假设 TPM 不仅无用,而且是彻头彻尾的恶意。那它还能做什么?嗯,真的没什么。它缺乏通过LPC 总线发送所谓LDRQ#信号的能力,而这是执行DMA 攻击所必需的。它唯一能做的就是说“一切正常”,而实际上固件已被篡改。换句话说,恶意 TPM 所能做的最糟糕的事情就是假装它不存在,使恶意 TPM 不会比没有 TPM 更糟糕。

完全可以安全地从主板上卸下 TPM。没有什么需要它在那里。如果它不存在,您将根本无法验证信任链以确保固件未被篡改。但是请注意,许多现代 CPU 具有集成的 TPM,但可以轻松禁用它,其结果与移除物理 CPU 相同。请注意,某些较新版本的 Windows 确实需要存在 TPM 才能确保启动过程的安全。如果删除了 TPM,您可能需要修改操作系统和 UEFI 设置,使其不再需要它。

在底部的部分,它提到了对 TPM 的一些批评,例如远程验证软件 - 制造商,而不是用户决定可以在计算机上运行什么。这听起来很可怕。

令人担忧的是,未来制造商可能会使用 TPM 来阻止您对系统进行敏感修改。默认情况下,TPM 将只服从其所有者。如果您告诉 TPM 系统的当前状态是已知良好的,它将始终检查以确保系统处于该状态。如果恶意制造商将 TPM 设置为认为已知良好状态是启用恶意 DRM 和其他权限限制软件的状态,那么我们就有问题了。对于当前的 TPM,完全由您决定要运行什么软件!他们不限制您的权利。

另一个批评是,它可能被用来向远程网站证明您正在运行他们希望您运行的软件,或者您正在使用不受您控制的设备。TPM 可以向远程服务器证明您的系统固件没有被篡改,并且如果您的系统固件旨在限制您的权利,那么 TPM 证明您的权利已被充分限制,并且您可以观看最新的您想看的充满 DRM 的视频。值得庆幸的是,目前尚未使用 TPM 来执行此操作,但该技术已经存在。

最重要的问题是,TPM 可以向您本地和远程服务器(当然,由操作系统处理网络)证明您的计算机处于正确状态。什么算“正确”取决于拥有 TPM 的人。如果您拥有 TPM,那么“正确”意味着没有 bootkits 或其他篡改。如果某个公司拥有 TPM,则意味着该系统的反盗版和 DRM 功能功能齐全。对于您今天可以购买的 PC 中的 TPM,您就是所有者。

此外,VeraCrypt 不支持 TPM,这引起了一些担忧。如果他们不信任它,我为什么要信任它?

VeraCrypt 实际上在 VeraCrypt 1.20版中增加了对 TPM 1.2 版的支持和对 TPM 2.0 版的实验性支持,尽管他们还没有编辑他们的文档来反映这一点。他们最初是抗拒的,因为最初的 TrueCrypt 作者不了解 TPM。它的目的不是协助磁盘加密,而是验证固件和重要的引导软件(包括 VeraCrypt 引导加载程序!)没有被篡改。

在底部的部分,它提到了对 TPM 的一些批评,例如远程验证软件 - 制造商,而不是用户决定可以在计算机上运行什么

这里有一个根本性的误解

通过远程认证,供应商不决定硬件上运行什么软件,而是允许哪些硬件运行他们的软件。

远程证明可以很好地使用或滥用(如我的其他答案):

  • 作为 DRM 系统的一部分
  • 根据政治标准阻止某些供应商的设备。这是通过白名单完成的
  • 实施计划报废,这在某些司法管辖区可能是非法的

远程证明是一项可选功能。

远程证明需要硬件证明才能工作。目前在 iOS 和 Android 中通过验证引导加载程序已锁定并强制执行安全引导来证明设备未植根。

人们对远程证明存在担忧。这些与技术本身无关,而是与它在市场上的更大用途有关。

远程证明不能(轻易)用于审查软件。它只是一项技术,需要多个软件部分的大量合作。

不能仅使用远程证明来决定您是否可以运行软件,除非它是 DRM 许可证检查。我的意思是,操作系统决定运行应用程序。如果操作系统强制执行供应商策略,和/或软件实施框架(例如 SafetyNet)以防止软件在未经认证的设备上运行,则不仅仅是 TPM 的存在。

远程证明是一种在硬件上强制执行计划报废的方法,因为随着时间的推移,旧设备可能会被列入黑名单。但它要求应用程序/操作系统供应商强制执行这样的策略。在法国等某些司法管辖区,计划报废甚至是非法的。

远程证明和 TPM 不会阻止开发人员构建自己的开源工具。它不会阻止您安装 OSS,但也许您将无法在自定义操作系统上使用 Netflix 应用程序。

我根本不信任英特尔的 TPM,因为它是一个闭源系统。

我宁愿随时选择 TrueCrypt 或类似的东西。

我也不同意使用阻止我快速部署自己的引导加载程序和自己的操作系统的系统。为什么必须获得“批准”才能使用它们?我只想随时在任何兼容的硬件上使用它们。

在这一点上,我发现 TPM 最多是一种烦恼,它可能或实际上会损害我的活动。

理论上您无法移除 TPM 模块,但您可以从 BIOS/EFI 禁用它。如果物理移除确实有害,我们还没有测试足够的 MB。一位同事确实从 MSI Z68MA-G45 G3 物理上移除了一个 TPM 模块,MB 仍然正常运行,但我不知道以后是否会对功能产生影响。

更新

注意:如果使用 bitlocker 加密,更新 BIOS 可能会使系统丢失所有数据。

注 2:Bitlocker 是一个太大的失败,不值得任何东西。