随着越来越多的设备实现互联,人们对关键资产的保护需求也在升温。传统上,此类支持由硬件安全模块 (HSM) 提供,但在过去十年中,可信执行环境 (TEE) 的使用显着增长。本文旨在让读者了解这两种解决方案之间的区别以及它们对不同场景的适用性。
通常,HSM为其他应用程序提供密钥管理和加密功能。
TEE也有此功能,同时应用程序(或应用程序的安全重点部分)还能够在其隔离环境中执行。
例如,在现代 Android 移动设备中,每天其实都有数百万用户在使用HSM的等价物--TEE,只是因其通过Android KeyMaster的可信应用程序 (TA)来实现,不易被人察觉罢了。
常规执行环境 (REE) 是 TEE 社区中的术语,用于表示特定 TEE 之外的设备中的所有内容。从技术上来说,站在特定 TEE 的角度,所有超出其安全边界的组件都存在于 REE 中。然而,为了简化,具有多个 TEE、SIM、HSM 或其他高信任组件的设备可能会将这些从 REE 中分离出来。REE 包含常规操作系统,与该执行环境的其余部分相结合,没有足够的安全性来满足设备任务所需。
在集成 HSM 的紧凑型设备中,软件架构如下所示:
01 TEE 与集成 HSM 之比较(一)
HSM 为以安全为中心的任务提供加密服务。REE 中的“Secure”任务有数据。HSM 可以接收该数据并进行加密或解密,然后再将其交还给 REE 中的发布者(issuer task)任务。
而TEE完成支持HSM功能,其完成任务的过程如下:
02 TEE 与集成 HSM 之比较(二)
在 Android 设备中,HSM 通常由 TEE 中的 TA 代替,实现 Keymaster 功能和 Android 特定 REE 堆栈,而不是 OpenSSL/PKCS#11。
在此情况下,在发动机控制单元 (ECU) 中的更简单的常规操作系统里,我们可以通过开发一个通用 TA 来提供典型 HSM 的功能。
有了 TEE,你总是可以做得更好。
TEE 不需要像 HSM 那样只能提供固定用途,它也可以直接托管任务。
03 TEE 与集成 HSM 之比较(三)
当我们将任务移到 TEE 中,就可以在 REE 内活动无法访问的地方对未加密数据进行操作。
用例诸如:
- 设备通常支持其他任务,如复杂的通信协议(例如 CAN 总线、IP、蓝牙甚至 5G)。
- 这些通信机制可能会(或不会)用于特定的安全任务。
- 重要的是,通过将安全任务放置在与该通信软件隔离的某个位置(例如,在 TEE 中),通信软件中的安全问题可不再对安全任务造成不良影响。
- 一些 HSM 可以通过加载代码扩展任务,但符合 GlobalPlatform 标准的 TEE 却使用标准化接口,直接开发一个TEE任务在另一个 TEE 上执行。在 TEE 中执行的此类任务被称为“可信应用程序 - TA”。
在设计良好的 SoC 中,HSM 无法做到但 TEE 可以做到的事还包括:HSM 无法直接保护提供传感器数据或控制执行器的 I/O 端口免受软件攻击,例如,车辆 ECU 的 REE。
04 TEE 与集成 HSM 之比较(四)
与 HSM 不同,在一个正确设计的片上系统 (SoC) 上,TEE 还可以连接到外围设备。这可以创建一个安全任务,安全地存放在 TEE 内,可用于显着增强关键任务的安全性。
05 TEE 与集成 HSM之比较(五)
以一个来自汽车行业的燃油节流阀为例。如果 ECU 上的油门 I/O 控制端口暴露在 REE 软件中,那么HSM给REE“安全”任务带来多少安全性并不重要;如果您对 REE 本身的安全性有很高的信心,那么您就不会使用 HSM,因此您也无法确信 REE 中的软件会不会受到攻击。
如果 REE易受攻击,那么被攻击的 REE 软件可能会未经授权访问该 I/O 端口,与HSM自身有多好无关。
在 TEE(就像在 HSM 中)中,我们所有的负载都只与安全有关,没有与安全无关的一般负载。TEE 中的任务可以直接连接到硬件控制端口,不会有其他软件进行未经授权的访问的风险。
在上面的例子中,如果只有一个 HSM,那么我们所能做的就是保护设备的数据流量,而不是设备中的决策。而如果有了TEE,则可以两者兼得。
物理攻击:TEE vs HSM
如前所述,HSM 的一个问题是有可能在加密之前就数据通信就已暴露。
这将影响软件中的数据,在 HSM 有机会对其采取行动之前,攻击者可以通过损坏的 REE 提取或修改数据,也会影响硬件攻击配置文件。
从根本上说,设备集成 HSM 可能会使用 SoC 上的硬件方法来保护其密钥不被提取,这比 TEE 的密钥更强大。但是,将数据传输到 HSM 以通过这些密钥进行保护的方法并没有比 TEE 使用的方法得到更强的保护,而且可能要弱得多。
考虑以下与 PCB 连接的 HSM 与典型的 TEE 相比,后者将使用堆叠芯片(封装上的封装)来保护其更高的速度流量:
06 TEE 与集成 HSM 之比较(六)
TEE 使用 On-SoC RAM
在这种情况下,使用 TEE 提供传统 HSM 功能的好处是未受保护数据的暴露显着减少,从而增强了平台的整体安全性。
最后,如果您担心密钥提取,建议设计保持较小的密钥批量大小,无论是使用 TEE 还是 HSM。
值得注意的是,在 EVITA 标准中,某些 HSM 类型与 REE 驻留在同一 SoC 上,但在这些情况下,它们的硬件保护方法通常与 TEE 相同(请参阅 EVITA HSM 级别)。
结论
在快速发展的新创新领域,例如联网汽车和机器人技术以及消费电子设备,TEE 提供了一种具有成本效益且面向未来的 HSM 替代方案。
除了提供典型 HSM 功能潜力之外,符合 GlobalPlatform 的 TEE 还可以直接保护关键任务,并具有实现关键系统无线更新的标准化方法。
从根本上说,典型的 HSM 是一种抗攻击加密设备,旨在由 HSM 设计者执行一组特定的加密功能。它在相关保护配置文件定义的范围内提供了不干扰的信心。一个标准化的 TEE 可以做同样的事情,而且不需要添加额外的硬件。由于 TEE 驻留在现有的 SoC 集成 MMU 和支持 TrustZone 的硬件上,因此可以减少整体硬件材料清单,并在移除组件时减少硬件故障的风险。
TEE 的发展是由 GlobalPlatform 等标准驱动的,这带来了可预测性和互操作性。这意味着设备 OEM 和第三方可以开发可信应用程序来支持不断增长的平台安全要求列表。