本章介绍了ARM TrustZone的背景及其缺点。
3.1 ARM TrustZone
ARM TrustZone 是 ARM 对可信计算的硬件支持。它是在许多最新的 ARM 处理器(包括 Cortex A8、Cortex A9 和 Cortex A15)中发现的一组安全扩展。 ARM TrustZone 提供两个由硬件访问控制支持的虚拟处理器。分别为secure world(SW)和normal world (NW),根据单个 ARM SoC 的具体情况,单个资源可以在两个世界之间进行强分区,可以跨世界共享,或仅分配给单个世界。
Secure monitor.
安全监视器是一种 ARM 处理器模式,旨在在安全和正常世界之间切换
Secure world entry/exit.
根据设计,ARM 平台总是首先进入安全世界。 在这里,系统固件可以在任何不受信任的代码(例如操作系统)有机会运行之前提供安全世界的运行时环境。
Curtained memory
在启动时,在安全监视器中运行的软件可以仅将一系列物理地址分配给安全世界,从而创建窗帘内存的抽象——系统其余部分无法访问内存。
3.2 Shortcomings of ARM TrustZone
尽管 ARM TrustZone 规范描述了在安全世界中如何保护处理器和内存子系统,该规范没有说明应该如何保护大多数其他资源。 这导致了碎片化——SoC 为 TrustZone 提供了各种形式的不同硬件资源保护,或者根本没有保护。
*Storage.*(No trusted storage)
令人惊讶的是,ARM TrustZone 规范没有提供有关如何为 TrustZone 实施安全存储的指南。 缺乏安全存储大大降低了 TrustZone 作为可信计算硬件的有效性。
**Crypto needs.**(No trusted storage)
大多数受信任的系统都使用密码学。 然而,该规范并未提及提供安全的熵源或单调递增的计数器。
Lack of virtualization.
当今移动设备中使用的大多数基于 ARM 的 SoC 都缺乏虚拟化支持。 在缺乏虚拟化硬件辅助的 ARM 平台上虚拟化商用操作系统(例如 Windows)非常困难。
Lack of secure clock (and other peripherals).
系统通常需要一个安全时钟。 虽然 TrustZone
访问受保护的内存和中断是向提供安全外设迈出的一步,但如果不保护可以与这些外设通信的总线控制器,通常是不够的。
Lack of access
大多数 SoC 硬件供应商不提供对其固件的访问。 因此,许多开发人员和研究人员无法找到将他们的系统或原型部署到 TrustZone 的方法。