Security TrustZone vs ROM作为安全引导中的信任根

Security TrustZone vs ROM作为安全引导中的信任根,security,arm,embedded,cortex-m,trust-zone,Security,Arm,Embedded,Cortex M,Trust Zone,我偶然发现的许多文献都将TrustZone称为一种促进安全引导的机制(如图所示,还有更多) 据我所知,Secure Boot的工作方式如下: “信任根验证img1验证img2…” 那么,如果芯片是从验证闪存中第一个映像的ROM启动的,那么使用TrustZone会有什么附加值呢 在我看来,如果系统没有ROM信任根,TrustZone无法提供安全引导,因为它只能隔离RAM内存,而不能隔离闪存,因此在运行时,如果不受信任的操作系统受到破坏,它无法保护自己的闪存不被重写 我是不是遗漏了什么 那么,如果芯

我偶然发现的许多文献都将TrustZone称为一种促进安全引导的机制(如图所示,还有更多)

据我所知,Secure Boot的工作方式如下:

“信任根验证img1验证img2…”

那么,如果芯片是从验证闪存中第一个映像的ROM启动的,那么使用TrustZone会有什么附加值呢

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

我是不是遗漏了什么

那么,如果芯片是从验证闪存中第一个映像的ROM启动的,那么使用TrustZone会有什么附加值呢

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

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

我是不是遗漏了什么

如果您的系统出现故障,如果有人可以阻止系统启动,那么您需要将闪存控制器分配给安全内存,并且只允许通过世界之间的受控通道访问闪存。在这种设计/要求中,安全引导可能实际上没有多大作用,因为您试图构造系统,使其不运行未经授权的软件

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



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

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

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