可信计算和远程证明部署的状态

信息安全 审计 可信计算 远程认证
2021-08-31 20:39:20

多年来,对基于可信计算(维基百科)的各种客户端控制的硬件支持一直在发展,例如 TCPM、TPM、TXT(LaGrande、DRTM)。

我听说过一个实际应用,通过 BitLocker 的“透明操作模式”方便地进行磁盘加密。

可信计算技术的应用还有哪些其他示例?我将区分出两个感兴趣的类别。

  • 独立,保护“我是用户和所有者”免受修改文件的影响。Bitlocker 是一个示例,但这也包括例如“TXT 延迟启动”从不受信任的环境到受信任的虚拟机,如Attacking TXT (Joanna Rutkowska)中所述)
  • “远程证明”:向另一个系统证明这个系统正在运行经过批准的软件(例如,允许服务器信任浏览器、在线游戏公平等)

开源应用程序是我最感兴趣的。

注意:由于对用户控制的各种威胁,例如通过更有效的 DRM 和相关的政治问题,我非常清楚 TC 可以被视为“背叛计算”的问题。但请不要在这里讨论它的那一面。

3个回答

一般来说,人们必须知道 TPM 和 TXT 以及所有这些技术的目的是要保护的,因为存在误解。TPM 通常启用 5 个不同的流程,并且仅支持以下流程:

  • 完整性测量——计算平台组件的加密哈希
  • Authenticated boot – 可靠地测量和存储平台状态(其组件的总和)的过程
  • 密封存储——在平台上存储数据的过程,只有在平台处于特定状态时才能检索数据
  • 证明——可靠地报告平台当前状态的过程
  • 独立执行——使软件能够不受阻碍地执行

从 Intel 的角度来看,TXT 是可信计算功能的整体,包括 TPM、对处理器操作的修改和对芯片组操作的修改。

TXT 技术的主要特点是 TPM 的所有特点加上

  • 受保护的执行(基于硬件的域分离)
  • 受保护的内存页面(针对所有四种不同的内存访问方式提供保护——通过软件、通过 DMA、通过 GPU 卡、通过 SMM)
  • 受保护的输入
  • 受保护的图形
  • 启用可信通道(两台计算机之间或一台计算机之间的设备)

您提到的延迟启动功能是一个可选的 TXT 功能,可以在系统启动后进行测量,而不是启动过程的每个步骤,这有点复杂。

一般来说,可信计算是一个巨大的项目,多年来在全球范围内进行了大量研究,并有短期、中期和长期目标。我必须在这里透露我是该研究的一部分。

现在开始真正的实现(尽管这些不在我的领域)

首先,所有主要的系统制造商都有使用 TPM 的企业硬件和软件,至少它的一些特性。生产大多数企业系统的戴尔和惠普等公司使用的软件如(HP ProtectTools)。在此示例中,在 TPM 的帮助下使用了预引导身份验证。微软一直在进行这项研究,并在 Vista 之前发布了支持 TPM 的 bitlocker。实际上,bitlocker 不仅仅是关于加密:它有一个名为 Secure Startup 的单独功能,它实现了完整性检查部分(它可以在没有加密组件的情况下存在)。透明操作与身份验证有关 - 它也可以在预启动身份验证模式下工作。像 symantec 和 mcaffee 这样的安全软件开发商也有依赖或使用 TPM 的软件。

现在,我不知道有任何其他商业或即用型开源软件处理 TPM 和证明或任何其他功能。(但正如我所说的我没看太多,也许另一个成员知道更多)。

如果您想要实验工具、概念验证软件或只是论文和规范,那么有很多——正如我所说,项目中有长期目标,而证明是长期目标之一。这是一个示例,软件堆栈的参考实现是支持 linux 中 TPM 的所有功能所必需的:http ://www.opentc.net/publications/OpenTC_PET_prototype_documentation_v1.0.pdf (软件位于http://www.opentc .net )

只是为了吸引读者,网络访问控制是一个活跃的研究领域——商业工具可能已经存在于该领域。NAC 中使用 TPM 的一般想法当然是只允许网络中的设备通过提供特定测量来验证它是安全的,不仅在启动软件的完整性上,而且在应用的补丁级别上,防病毒定义、防火墙配置... 其他研究示例:安全软件下载,如移动运营商需要通过无线方式安全地更新手机固件,特别是软件定义无线电的软件。当然,数字视频广播 (DVB) 是一个领域或研究 - dvb 接收器已经使用智能卡来存储密钥,可以使用 TPM 代替。

非常长期的目标?想象一个世界,每个系统和移动设备都有一个 TPM:加密协处理器、安全存储……并且可以按需生成公钥对,无需用户交互:全球 PKI - 正在研究如何管理和如何处理那!

我认为我已经远远超出了问题的范围,所以这应该足够了。

所有相关工具都可用于 Linux,甚至可能比其他地方更多。

很多开源精神,你必须自己构建一切。如果您在 Google 上搜索“IBM blueprint eCryptFS TPM”,建议您使用免费版本的 MS Bitlocker。Trousers 还支持 PKCS#11 接口,允许与例如 Firefox 集成。使用 Linux IMA,即使在 Linux 中,您也可以获得很好的灵活测量架构。Flicker 还允许您使用 LateLaunch 技术启动简单的程序。

然而,作为主要目标之一的“远程证明”仍然是不可能/不切实际的,除了非常受限的设置。有太多可能的配置和太频繁的更新,以使任何安全实施都基于一个典型的(几千个项目长)SHA-1 测量列表。不同的操作系统架构会有所帮助(google 'Turaya'),但 MS 管理层在 2004 年搁置了 NGSCB 并且 Linux 3.0 仍然不是微内核。

据我所知,用于用户 I/O 的“可信硬件”是很久以前就有的,但从未实现。英特尔 TXT 实现了 VT-d,但无助于对抗,例如,基于硬件的键盘记录器。对这类东西的需求很少。当前在 x86 上的 DRTM/LateLaunch 实现也存在一些概念问题。AMT 和 SMM 从本质上阻止您创建真正独立的 RTM。这不是微不足道的修复,英特尔或多或少地拒绝这样做,因为缺乏需求:如果你仍然每 1-2 周获得一个新的浏览器漏洞利用,那么破坏 x86 架构以进行模糊的“Ring -3”攻击是没有意义的。

DRTM 问题的一个很好的资源:http: //invisiblethingslab.com/itl/Resources.html

此外,Flicker 最近被扩展并移至 SF: http: //flickertcb.sourceforge.net/

除了将 TPM 用作 SmartCard 之外,Flicker 可能是桌面上最有趣的工具。移动领域的有趣发展是“板载凭证 (ObC)”和基于软件的证明(SWATT,Pioneer,最近也称为“基于 PUF 的证明”)。证明在这里更实用,因为软件堆栈复杂得多,开发周期慢得多。

这个问题已经回答了,但我觉得它已经老了。

以下是关于可信计算的一些新内容: