1

我偶然发现的许多文献都将 TrustZone 称为促进安全启动的机制(如可以在此处看到的,以及更多内容)。

据我所知,安全启动以这种方式运行:

"信任根验证 img1 验证 img2 ... "

因此,如果芯片是从验证驻留在闪存中的第一个映像的 ROM 启动的,那么使用 TrustZone 可以获得什么附加值?

在我看来,如果系统没有 ROM 信任根,则 TrustZone 无法提供安全启动,因为它只能隔离 RAM 内存而不是闪存,所以在运行时,如果不受信任的操作系统受到威胁,它无法保护自己的闪存不被重写。

我在这里错过了什么吗?

4

2 回答 2

1

因此,如果芯片是从验证驻留在闪存中的第一个映像的 ROM 启动的,那么使用 TrustZone 可以获得什么附加值?

安全启动和 TrustZone 是独立的特性/功能。他们经常一起工作。 事情总是取决于您的威胁模型和系统设计/要求。 即,攻击者是否可以物理访问设备等。

如果您在闪存中有映像并且有人可以重写闪存,那么如果引导失败,系统可能会“正常”。即,有人不能对闪存重新编程并让用户认为该软件是合法的。在这种情况下,您可以允许不受信任的操作系统访问闪存。如果映像被重写,安全启动将失败,攻击者无法提供木马映像。

我在这里错过了什么吗?

如果有人可以阻止系统启动而导致系统出现故障,那么您需要将闪存控制器分配给安全内存,并且只允许通过世界之间的受控通道访问闪存。在此设计/要求中,安全启动可能不会真正发挥作用,因为您正在尝试构建系统以不运行未经授权的软件。

如果攻击者具有物理访问权限,这可能几乎是不可能的。他们可以通过移除、外部编程和重新安装芯片来拆卸设备并重新编程闪存。此外,攻击者可以将设备与一些模拟的木马设备交换,这些设备甚至没有相同的 CPU,但只有外观和类似的行为。


如果第一种情况是可接受的(流氓代码重新编程闪存,但不可引导),那么您的设计/要求是内存代码不能损害正在运行的系统的功能。即,您可能不希望此代码获取密码等。因此,TrustZone 和安全启动在很多情况下都可以协同工作。完全有可能找到一些仅适用于其中的模型。可能更常见的是您需要两者并且不了解所有威胁。

于 2018-10-09T13:35:51.240 回答
1

很确定 TrustZone 可以根据供应商的安全配置寄存器 (SCR) 实现来隔离闪存

请注意,这是关于 TrustZone-M(TrustZone for Cortex-M 架构),它可能不是您想要的。

于 2019-03-29T12:15:42.827 回答