UEFI 与 ARM TrustZone

UEFI 与 ARM TrustZone

我知道 UEFI 具有安全启动功能,现在适用于所有 Win 8(平板电脑和智能手机)。例如,这与 ARM 的 TrustZone 有何关联?UEFI 是否像固件 TPM 一样,在 TrustZone TEE 加载安全域后,可以作为 TrustZone 普通域中的受信任应用程序?我不清楚这两者如何结合在一起 - 或者它们可能是竞争技术?

答案1

我不会参与有关 UEFI、安全启动或 TPM 的任何争议(超出范围),所以我会尝试尽可能直接地回答。

UEFI是(就所有意图和目的而言)位于 BIOS 级别(硬件和操作系统之间)的 BIOS“替代品”。UEFI 安全启动必须得到固件(BIOS)的支持;UEFI 安全启动本质上是一种防止“未签名”代码启动的方法,截至目前,Windows 8、Windows Server 2012 和某些 Linux 发行版都已签名 UEFI 安全启动密钥,可以使用该功能。

TPM(可信平台模块)是一种通常作为独立硬件模块实现的标准,可用于生成加密密钥(以及其他功能)。它与 UEFI 不同(也不属于相关组织团体);TPM 是一种硬件级加密,用于全盘加密和 DRM 等,必须作为独立模块进行物理安装(尽管许多新型 PC/笔记本电脑/主板都包括预装硬件 TPM 的选项),而 UEFI 位于硬件和操作系统之间。从技术上讲,可以将 UEFI(安全启动)与 TPM 一起使用。TPM 由许多不同的公司制造。UEFI 也是由少数公司“制造”(编码)的固件。

UEFI 和 TPM 通常只出现在 x86/x64 平台上(即 Intel/AMD/PPC CPU/芯片组)。ARM(Intel 和 AMD 的竞争对手)提供了类似于 UEFI/TPM 的设置,这就是他们的信任区域。TrustZone 是内置于 ARM 芯片本身的功能,它与 UEFI 位于 BIOS 中而 TPM 则“嵌入”到硬件模块中略有不同,但 ARM 的 TrustZone 可在“系统范围内”使用;其理念是,在每个具有 ARM 芯片组的设备中(可以是键盘/鼠标、显示器和打印机等任何设备),都混合使用 UEFI/TPM 类型的功能。

对于所有这些技术,有一点需要注意,即在软件层面,大多数“安全”功能都需要实现才能使用。例如,您可以拥有一台配备 TPM 的 PC,并使用 TrueCrypt 进行全盘加密(TrueCrypt 不支持 TPM)。ARM 的 TrustZone 也是如此;系统/软件集成商需要利用这些功能才能使其有效/工作(换句话说,仅仅因为某些东西物理上位于您的机器上并不意味着它是“活动的”)。

答案2

TL;DR - Trustzone 提供了在 ARM CPU 上实现 UEFI 和 TPM 功能的原语。

需要的其他功能/原语包括:

  • 安全启动
  • 加密处理器
  • 篡改者
  • 实时时钟
  • 持久存储,篡改后删除/失效

最后三个功能需要为这些元件提供恒定的电源。篡改可能会扩展到芯片级网格。出于这些原因,一些 AMD 系统配备了 ARM CPU。


技术支持答案很有趣,我相信他给出了x86看法。 信任区域最底层是一种将 ARM 软件划分为两个世界. 一是安全世界另一个是正常世界。它本身永远不是一个完整的解决方案。ARM 授权商(Freescale、Samsung、TI、Apple、BroadCom 等)必须提供钩子来完成解决方案。例如特发性中耳炎,是一个总线控制器,信任区域意识到这一点。要点是DMA 攻击在充分配置的系统中这是不可能的。

为了配置总线控制器安全世界,TrustZone 必然会在安全模式。这意味着任何试图使用 TrustZone 实现安全性的系统都必须安全启动

根据 UEFI 的描述,如果有人利用了签名的内核,那么他们可以直接或通过使用 DMA 设备(绕过 MMU)窃取机密。如果无法通过总线访问机密,那么这是不可能的。 信任区域尝试允许两组代码运行。因此未签名Linux 版本可能与受信任的代码执行安全启动并设置总线控制器限制总线主控器奴隶。 这受信任的代码可能只是一组根据 TPM 执行身份验证和加密/解密的例程;在这种情况下,还必须有一些硬件来提供受保护的密钥。

可信代码应该是一组最低限度的功能。根据要求,它可能是一个操作系统,也可能只是一组例程/API。就像 UEFI 一样,这里的漏洞可能会破坏安全性。但是,由于占用空间应该最小/减少,攻击向量应该更小。

看:TrustZone 白皮书了解更多信息。

相关内容