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

问题描述 投票:1回答:2

我偶然发现的很多文献都提到TrustZone是一种促进安全启动的机制(可以看到here等等)。

据我所知,Secure Boot以这种方式运行:

“Root-of-Trust验证img1验证img2 ......”

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

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

我在这里错过了什么吗?

security arm embedded cortex-m trust-zone
2个回答
1
投票

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

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

如果你有一个闪存中的图像,有人可以重写flash,那么如果启动失败,系统可能就是'OK'。即,有人无法重新编程闪存并让用户认为该软件是合法的。在这种情况下,您可以允许不受信任的操作系统访问闪存。如果重写图像,安全启动将失败,攻击者无法呈现木马图像。

我错过了什么吗?

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

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


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


1
投票

非常确定TrustZone可以隔离闪存,具体取决于供应商的安全配置寄存器(SCR)的实现

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

© www.soinside.com 2019 - 2024. All rights reserved.