因此,如果芯片是从验证驻留在闪存中的第一个映像的 ROM 启动的,那么使用 TrustZone 可以获得什么附加值?
安全启动和 TrustZone 是独立的特性/功能。他们经常一起工作。 事情总是取决于您的威胁模型和系统设计/要求。 即,攻击者是否可以物理访问设备等。
如果您在闪存中有映像并且有人可以重写闪存,那么如果引导失败,系统可能会“正常”。即,有人不能对闪存重新编程并让用户认为该软件是合法的。在这种情况下,您可以允许不受信任的操作系统访问闪存。如果映像被重写,安全启动将失败,攻击者无法提供木马映像。
我在这里错过了什么吗?
如果有人可以阻止系统启动而导致系统出现故障,那么您需要将闪存控制器分配给安全内存,并且只允许通过世界之间的受控通道访问闪存。在此设计/要求中,安全启动可能不会真正发挥作用,因为您正在尝试构建系统以不运行未经授权的软件。
如果攻击者具有物理访问权限,这可能几乎是不可能的。他们可以通过移除、外部编程和重新安装芯片来拆卸设备并重新编程闪存。此外,攻击者可以将设备与一些模拟的木马设备交换,这些设备甚至没有相同的 CPU,但只有外观和类似的行为。
如果第一种情况是可接受的(流氓代码重新编程闪存,但不可引导),那么您的设计/要求是内存代码不能损害正在运行的系统的功能。即,您可能不希望此代码获取密码等。因此,TrustZone 和安全启动在很多情况下都可以协同工作。完全有可能找到一些仅适用于其中的模型。可能更常见的是您需要两者并且不了解所有威胁。