Ben*_*Obi 5 security peripherals arm trustzone
我目前正在对ARM的TrustZone进行一些研究,例如:ARM信息中心。据我了解,使用TrustZone可以创建基于AMBA AXI总线的安全环境。
在ARM网站上,它表示:“安全和非安全世界的概念已扩展到处理器之外,涵盖了SoC中的内存,软件,总线事务,中断和外围设备。” 我读的外设可以通过被连接到的TrustZone Ñ上小号的AMBA AXI总线的ecure位(额外的信号用于可信和不可信的请求之间进行区分)。
1)除了带AMBA AXI总线的额外引脚外,带TrustZone的SoC中的TrustZone特定硬件是什么?
2)是否可以将外部非易失性存储器(例如Flash)或其分区连接到TrustZone,从而可以访问安全环境(通过外部存储器接口和-然后内部-AXI总线)?如果否,如何存储秘密(作为密钥)以在安全环境中使用(借助保险丝?)?如果是,如何防止包含恶意代码的Flash被连接?
3)是否有可能在芯片出厂之前或之后以芯片供应商(例如TI或NXP)的客户的身份向安全领域实施代码?
谢谢您的回答。
TrustZone 是 ARM 发布的一套标准。它为 OEM(嵌入式软件程序员)和 SOC 供应商提供了一些工具来制定安全的解决方案。根据需要保护的内容,它们有不同的需求。所以每个SOC都会有所不同。一些 SOC 制造商会尝试在相同的安全应用上展开竞争,但他们仍然会差异化。
1) 除了 AMBA AXI 总线的额外引脚之外,具有 TrustZone 的 SoC 中的 TrustZone 特定硬件是什么?
供应商想要的任何东西。GIC (ARMv7-A) 中断控制器、L1 和 L2 控制器以及 MMU 都是大多数 Cortex-A CPU 中的 TrustZone 感知外设。这些由 ARM 设计并在 SOC 中实现。此外,还有各种可以放置在外设和 SOC 之间的内存分区/排除设备。例如 NIC301 和各种专有的总线互连技术。
其他硬件可能包括物理篡改、电压和温度监控、时钟监控和加密加速器。
2) 是否可以将外部非易失性存储器(例如闪存)或其分区连接到 TrustZone 并访问安全世界(通过外部存储器接口,然后通过内部 AXI 总线)?如果不是,如何存储秘密(作为密钥)以便在安全世界中使用(在保险丝的帮助下??)?如果是,如何防止连接包含恶意代码的Flash?
如上所述,像 NIC301 这样的芯片可以对 AXI 外设进行物理分区。请参见下图 任何 TrustZone 解决方案的一部分都是一些安全启动机制。所有 CPU 都将在安全世界中启动。安全启动机制可能有所不同。例如,一次性可编程 ROM可能适合某些应用。许多都具有可编程熔丝,并在 SOC ROM 中实现了公钥/私钥机制。SOC ROM 启动软件将验证闪存中的映像是否由烧毁一次性保险丝的人正确签名。
此 OEM 映像可以设置许多 TrustZone 外设,其中大多数都有锁定位。一旦设置,外设中的寄存器在下次硬启动之前无法更改。
3) 作为芯片供应商(例如TI 或NXP)的客户,是否可以在芯片出厂之前或之后将代码实施到安全世界?
是的,这就是安全启动机制。ARM TrustZone 文档中没有指定如何保护代码。如果您制造芯片并拥有带 MESH 层保护的片上 ROM,则可能足以实现安全启动。不过,TI 和 NXP 将实施公钥/私钥机制,并验证只有 OEM 签名的软件才能加载。该 OEM 软件可能存在错误(SOC 供应商的 ROM 加载程序也可能存在错误),但至少可以创建安全引导链。
有了公钥,即使完全访问芯片,攻击者也只能加载 OEM 先前发布的软件。某些解决方案可能还具有撤销机制,以防止使用以前发布的软件。
请参阅:信任区

| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |