TrustZone vs ROM 作为安全启动中的信任根



我偶然发现的许多文献都将TrustZone称为一种促进安全启动的机制(如此处所示,以及更多(。

据我所知,安全启动是这样操作的:

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

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

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

我在这里错过了什么吗?

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

安全启动和信任区是独立的特性/功能。 他们经常一起工作。事情将始终取决于您的威胁模型和系统设计/要求。即,攻击者是否对设备具有物理访问权限等。

如果您在闪存中有一个映像,并且有人可以重写闪存,则在启动失败时,系统可能是"正常"的情况。 也就是说,有人不能重新编程闪存并让用户认为该软件是合法的。 在这种情况下,您可以允许不受信任的操作系统访问闪存。 如果重新写入映像,安全启动将失败,攻击者无法提供特洛伊木马映像。

我在这里错过了什么吗?

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

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


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

非常确定TrustZone可以根据供应商对安全配置寄存器(SCR(的实施来隔离闪存

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

最新更新