33

ARM 有一个叫做 TrustZone 的东西。根据 ARM 文档,它使进程可以在安全/非安全世界中运行。

  1. 安全/非安全世界是什么意思。它与处理器执行模式有关还是与设置内存区域的权限或其他有关。
  2. ARM 的 7 种操作模式与 Secure / Non-Secure Worlds 之间有什么关系吗?
  3. 如何在 ARM 中启用 TrustZone。
  4. 这是从哪个版本的 ARM 引入的。
  5. 是否必须使用此 TrustZone。linux 内核是否使用此 TrustZone 扩展。

请帮助我理解这一点。

4

2 回答 2

34

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html是一个很好的介绍性文档,它概述了一些过于复杂而无法令人满意地解释的东西通过在文本框中键入。但我将尝试在下面回答您的直接问题。

  1. 它指的是与执行模式正交的附加特权选项。安全世界能够使内存访问标记为安全,但也可以进行非安全访问。普通世界只能进行非安全访问。此外,某些处理器配置选项只能由 Secure world 访问。其目的是将安全软件隔离在一个简单的环境中,使其不会(直接)受到设备主操作系统或应用软件中的软件漏洞的攻击。
  2. 没有,除了它添加了一个额外的“监视器”模式。此监控模式用于 Normal 和 Secure 世界之间的“上下文切换”。
  3. TrustZone 未启用,已实施(或未实施)。
  4. TrustZone 是在 ARM 架构版本 6 的安全扩展中引入的。第一个支持它的处理器是 ARM1176。所有 Cortex-A 处理器都支持它。
  5. “否”,尽管由于启用 TrustZone 的处理器在开机时开始以安全状态执行,如果引导加载程序不做任何更改安全状态的操作,所有软件都将作为安全运行(消除任何安全优势)。不,TrustZone 环境明确旨在与您的操作系统一起运行,而不是直接集成到其中。对于某些平台,Linux 内核执行 Secure Monitor Calls 以请求 Secure world 更改某些系统配置选项。
于 2012-09-09T09:18:39.357 回答
20

为了补充UnixSmurfs 的答案,

安全/非安全世界是什么意思。它与处理器执行模式有关还是与设置内存区域的权限或其他有关。

主要与内存区域有关。所有与TrustZone兼容的设备都将使用NS位标记AXI 总线访问。该位指定访问是来自安全世界还是正常世界。这样,即使是正常世界控制下的DMA外设也可以被隔离。

ARM 的 7 种操作模式与 Secure / Non-Secure Worlds 之间有什么关系吗?

并不真地。但是,有一个名为Monitor Mode的中间世界,显然它是其中最强大的。 监控模式安全世界和正常世界之间的中介。它可以访问普通世界的 CP15 寄存器,同时仍然具有安全世界的系统内存视图(将位推送为 0)。NS

如何在 ARM 中启用 TrustZone。

启用是一个有点重载的词。正如unixsmurf指出的那样,它内置在 CPU 中。默认情况下,启用TrustZone的 CPU 将在安全世界中启动。如果您什么都不做,您可能会忽略 CPU 支持TrustZone的事实。只有建立一个正常的世界并把控制权交给它,才会使用TrustZone;可能这就是您所说的enable

这是从哪个版本的 ARM 引入的。

有两种口味:

  1. 与TrustZone兼容。
  2. 启用信任区。

TrustZone 安全白皮书的第 4.2 节回答了这个问题。ARM1176JZ ( F)-SCortex-A8Cortex-A9Cortex-A9-MPCoreCortex-A5支持TrustZone。ARM1156T2 ( F)-SCortex-R4兼容;它们可以是系统中的第二个核心。随着更新内核的开发,它们可能会被添加到列表中;这个问题是一个移动的目标。

是否必须使用此 TrustZone。linux 内核是否使用此 TrustZone 扩展。

这不是强制性的。Linux内核可以扮演两个角色;安全正常的世界。有关在Linux中使用TrustZone的一些信息,请参阅svc-handler-to-smc-call

UnixSmurf暗示的一些事情没有得到回答;您必须确保所有BUS 主设备和设备都适当地了解NS位。此信息在 CPU 信息之外,涉及BUS 仲裁器;另一个类似书的话题。

请参阅:PRD29-GENC-009492C
         ARM TrustZone 作为嵌入式系统中的虚拟化技术
         使用 ARM TrustZone 的可信计算构建块
         ARM 可信固件

于 2013-05-29T18:41:58.783 回答