TPM和SGX在可信计算中的功能异同点是什么?

信息安全 tpm 可信计算 英特尔-sgx
2021-08-28 02:37:20

我知道 TPM(可信平台模块)。近年来,越来越多的研究人员开始在英特尔 SGX 上进行开发,而我对此没有任何经验。

  1. 它们都是加密芯片,但它们的功能有何异同?

  2. 新交所可以实现典型 TPM 无法实现的目标吗?

(如果需要,请在“教科书”版或“实用”版中进行说明。)

1个回答

首先,SGX 不是加密芯片。它是英特尔芯片组本身内置的一项功能,而 TPM 通常是位于LPC 总线上的分立芯片,尽管有时它可以在芯片组中进行仿真(在这种情况下,它称为 fTPM,用于固件 TPM,或 iTPM,用于集成TPM)。在 Intel 处理器上,任何支持TXT的系统都将提供一个集成的 TPM

可信平台模块 (TPM)

TPM 旨在允许测量启动,这是一个启动过程,其中每个阶段都验证信任链中的下一个阶段,从而将可信计算库(TCB) 减少到更少量的代码。它的工作方式是获取各种固件相关数据的哈希值并将其存储在 PCR(TPM 中的寄存器)中,如果与已知配置匹配,则打开一个秘密值这一切都始于受信任的 CRTM(用于测量的核心信任根),它通常是 BIOS 的只读组件,将 BIOS 本身的哈希发送到 TPM。如果 CRTM 和 TPM 是可信的,那么系统的其余部分就不需要可信。

TPM 无法对任何检测到的完整性违规采取行动。它是完全被动的,仅存在于 LPC 总线上。对于违规行为,它所能做的就是拒绝自行启封。这个秘密值可以是启动系统所必需的加密密钥,或者是攻击者不知道的秘密字符串,允许您验证 TPM 是否真正解封,即使它通过不受信任的介质与您通信。TPM 还包含一个背书密钥或 EK,用于验证它是否为真正的 TPM。只有真正的和批准的 TPM 才会获得此密钥。这类似于 HTTPS 的 PKI 基础架构,其中 CA 允许浏览器验证与服务器的连接的合法性。

TPM 为系统管理员提供以下保证:

  • TPM 将抵制篡改尝试(例如,去盖和故障攻击)。
  • 系统管理员将能够验证 TPM 是否真实。
  • 只有当引导过程中的哈希值正确时,TPM 才会自行解封。
  • 可以设置一个密钥,以便 TPM 不会解封,除非 PCR 有效并且提供了密钥。

TPM 不限于在启动时打开。它可以随时开封。由于经过验证的启动还可以验证用户空间应用程序,因此 TPM 甚至可以间接用于证明系统正在运行给定软件或以特定方式配置的事实。一旦 BIOS、引导加载程序和内核得到验证,它就可以验证系统是否处于任意状态,例如,具有最新的软件。只有当所有这些都处于有效状态时,TPM 才会自行解封,允许它向客户证明它正在运行最新且安全的软件。这称为远程证明,它本身可以用作网络访问控制的构建块。

请注意,这是对 TPM 功能的一点简化,它没有涉及 SRTM 和 DRTM(分别用于测量的静态和动态信任根)之间的差异,但对于目的来说应该足够了描述系统的一般功能。

软件保护扩展 (SGX)

新交所有不同的设计目标,而且要复杂一些。SGX 可以为进程提供机密性和完整性,并且可以在执行之前验证可执行代码。它是一项主动功能,可加密在安全飞地中运行的进程,同时保护它们。进程知道 enclave 是真实的,从而防止它通过仿真被欺骗,并且 enclave 知道该进程是真实的,从而防止不受信任的主机给它一个受损的进程。

一旦设置了安全飞地,内核或任何其他特权任务甚至都无法读取它。因此,在安全飞地中运行的进程在最坏的情况下可能会被杀死或崩溃。它不能被篡改(即使使用 JTAG,因为在 SGX 上下文中禁用了探测模式,或者我被告知)。这可用于运行不需要信任主机的虚拟机来宾。

SGX 为在安全飞地中运行的进程提供以下保证:

  • 该过程将能够验证它是否在真正的 SGX 上运行。
  • 一旦进程在 enclave 中运行,主机就无法篡改进程。
  • 该进程需要定义一个 I/O API,用于与主机上的进程进行通信。
  • 进程的状态永远不会以明文形式存在于内存中。
  • 该过程将在运行之前进行验证,确保它是合法的。

通常,必须专门为此目的设计使用 SGX 的应用程序。该应用程序将被编写为具有两个组件。第一个组件将在主机上不受限制地运行,而第二个组件将在安全飞地中运行。定义了一个 I/O API 以允许两个组件相互通信。任何敏感计算都可以卸载到安全飞地中的进程。

虽然 SGX 保护 enclave 免受主机的影响,但它并不能保护主机免受 enclave 的影响。恶意或受感染的 enclave 进程可能会退出 enclave 并在主机上执行任意代码。这是因为退出飞地的EEXIT 指令(参见第 67 页)仅恢复有限数量的寄存器。特别是,它允许 enclave 进程设置 RIP、指令指针并跳转到任意地址。

相似之处

TPM 仅告诉您您的固件或启动过程是否已更改,仅此而已,而 SGX 则用于保护主机的敏感或机密进程。TPM 和 SGX 的一个相似之处是它们都不能被欺骗,从而允许系统知道它正在与真实交易对话。另一个是它们都涉及可信计算的概念,以各种方式减少系统的TCB。这两个系统都有自己的一系列缺陷。例如, TPM 1.1 版及之前的版本容易受到平台重置攻击正如最近两篇 论文所表明的那样,SGX 容易受到侧信道攻击。

除此之外,它们完全不同,它们解决的问题也完全不同