操作臂TrustZones(Handling ARM TrustZones)

2019-06-18 02:15发布

ARM有一些所谓的TrustZone。 按照ARM的文档,它提供了一个进程可以在安全/非安全世界中运行。

  1. 什么安全/非安全世界表示。 它是关系到处理器上执行的模式或者是涉及到设定的内存区域或其他东西的权限。
  2. 有ARM的7种操作模式和安全/非安全世界之间的关系。
  3. 如何能够在ARM的TrustZone的。
  4. 从ARM的哪个版本是这样介绍。
  5. 是否必须使用此信任区。 请问linux内核使用这个扩展的TrustZone。

请帮助我理解这一点。

Answer 1:

http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html是一款相当不错的入门文档给出了一些概要有点太复杂,无法令人满意的解释通过输入到一个文本框。 但我会尝试回答以下你直接的问题。

  1. 它指的是一个额外的特权选项正交的执行模式。 安全的世界必须进行内存访问标记为安全的能力,还可以使非安全访问。 正常的世界只能让非安全访问。 此外,某些处理器的配置选项只访问安全的世界。 这样做的目的是在一个简单的环境中,它不可能是(直接)容易受到设备的主操作系统或应用软件的软件漏洞来隔离的安全软件。
  2. 无,除了它增加一个额外的“监控”模式。 这种监控模式是用于正常和安全的世界的“上下文切换”。
  3. 的TrustZone没有启用,它的实现(或没有)。
  4. TrustZone的是在安全扩展引入到ARM架构的版本6.第一个处理器,支持它是ARM1176。 所有的Cortex-A处理器的支持。
  5. “否”,虽然自的TrustZone功能的处理器,开始在上电时在安全状态运行,如果引导装载程序没有采取任何措施改变安全状态,所有的软件将运行安全(去除任何保障福利)。 不,环境的TrustZone明确意在你旁边OS上运行,而不是被直接集成到它。 对于某些平台上,Linux内核进行安全监控调用请求的安全世界改变某些系统配置选项。


Answer 2:

为了补充UnixSmurfs答案,

什么安全/非安全世界表示。 它是关系到处理器上执行的模式或者是涉及到设定的内存区域或其他东西的权限。

主要是它关系到内存区域 。 所有的TrustZone兼容设备将Tag与NSAXI总线访问。 该位指定的访问是从安全正常的世界。 这样一来, 正常世界的控制之下,甚至外设DMA可以分离。

有ARM的7种操作模式和安全/非安全世界之间的关系。

并不是的。 然而,有一个世界之间 ,所谓的监控模式 ,显然它是最强大的一群。 监控模式安全正常世界之间的经纪人。 同时仍然具有安全世界的系统正存储器视图(将推动它可以访问正常世界 CP15寄存器NS位为0)。

如何能够在ARM的TrustZone的。

启用是一个有点超负荷字。 它内置于CPU作为unixsmurf指出。 默认情况下启用的TrustZone的CPU将在安全世界中引导。 如果你什么都不做,你可以无视CPU被信任区能够将事实。 只有通过建立一个正常的世界,并移交控制权交给它,将TrustZone的使用; 可能这是你的意思是什么。

从ARM的哪个版本是这样介绍。

有两种形式:

  1. TrustZone的兼容。
  2. 启用TrustZone。

安全的TrustZone白皮书的第4.2节回答这个问题。 所述ARM1176JZ(F)-S,Cortex-A8皮质-A9, 的Cortex-A9-MPCore的Cortex-A5支持TrustZone的 。 所述ARM1156T2(F)-SCortex-R4是兼容的; 它们可以是在系统中的第二核心。 由于新芯的开发,可以将它们添加到列表中; 这个问题是一个移动的目标。

是否必须使用此信任区。 请问linux内核使用这个扩展的TrustZone。

这不是强制性的 。 主要有两个作用Linux内核可以发挥; 安全正常的世界。 见SVC处理程序对SMC-电话上使用的TrustZoneLinux的一些信息。

有些事情没有回答这UnixSmurf暗示; 你必须确保所有的总线主机从机都适当地意识到NS位。 此信息的CPU信息 ,并涉及BUS仲裁 ; 另一个话题是书等

请参阅: PRD29-GENC-009492C
ARM的TrustZone在嵌入式系统虚拟化技术
与ARM的TrustZone可信计算积木
ARM可信固件



文章来源: Handling ARM TrustZones