对引导加载序列的所有阶段进行数字签名和验证。
启动序列描述了设备在启动过程开始时执行的初始操作集。在此阶段,可用资源驻留在某种形式的本地非易失性存储中,设备可以很容易地访问这些存储。启动启动序列的实体称为引导加载程序(或引导加载程序)。
引导加载程序允许在整个启动序列中向前推进,直到完成,此时设备进入正常运行状态。引导加载程序流由多个阶段组成,每个阶段逐步执行启动序列中更复杂的部分,例如包含特定于平台的驱动程序代码。如果引导过程不安全,攻击者可以在引导过程中隐射伪造代码,从而控制系统和/或执行恶意代码。
使用信任根,可以通过数字签名和验证引导加载序列的所有阶段,以安全的方式实现引导流。这是通过以下步骤完成的多阶段安全引导序列:
在信任的Rambus根目录中实现安全引导序列的情况下,安全引导加载程序的第一阶段存储在ROM中,称为“fBoot”(第一次引导)。此代码验证并执行安全引导流的下一阶段,并为制造和测试提供支持。安全引导加载程序的后续阶段是“sBoot”(第二次引导),通常在注册阶段加载到本地一次写入的非易失性存储中。这段代码通常处理验证和启用安全引导流下一阶段执行所需的任何特定于设备的操作。接下来是“tBoot”,它指的是安全引导加载程序的下一个阶段,通常存储在远程大容量存储中,支持后续安全引导加载程序阶段的加载、验证和执行。
毫无疑问,任何安全引导过程都需要依赖于快速但可靠的加密概念和“信任锚”之上的健壮实现。至少,需要一套所谓的基于P-256或p -521的椭圆曲线数字签名验证,对芯片上的私钥进行验证。在加载和验证之前,健壮的图像解密可以提供额外的保护。请注意,最好是信任根处理安全引导自身以及安全引导SoC中的主机系统。
在Rambus Root of Trust中启用的多阶段安全引导流非常灵活,可以适应复杂程度不同的引导加载程序序列。例如,如果不需要设备或平台初始化(或配置),则不需要boot。或者可以将boot和tBoot组合为一个阶段。类似地,如果整个安全引导加载程序可以驻留在本地ROM存储器中,则不需要boot和tBoot。此外,安全引导流机制将需要扩展安全固件更新功能,这是另一个故事。
为了在实践中说明这些概念,以下是信任根如何按健壮性降序保护系统引导序列的四种方法:
随着威胁的数量和严重性的增长,系统设计人员应该仔细评估系统的威胁模型。在此基础上,可以选择使用信任根的安全引导方法。Rambus拥有超过30年的安全经验和业界最广泛的信任根解决方案。无论您的应用程序是什么,我们都可以帮助您选择正确的信任根,以及最适合您的安全需求的安全引导方法。
额外的资源:
留下回复