安全启动和验证启动有什么区别?

安全启动和验证启动有什么区别?

据我了解,“安全启动”和“验证启动”的工作方式相同。特别是:

  • 启动时,首先运行的是 ROM 中的代码。这确保它可以“受信任”
  • ROM 代码验证下一个启动软件的签名,只有签名有效时才运行它
  • 验证代码的过程一直持续到用户空间

上述高层概述是否遗漏了一些关键差异?或者它们是一样的,如果其余启动过程符合 UEFI 规范,我们就称之为“安全启动”?

答案1

验证启动

启动时验证致力于确保所有执行的代码都来自可信来源(通常是设备 OEM),而不是攻击者或腐败代码。它建立了一条完整的信任链,从受硬件保护的信任根开始,到引导加载程序,再到启动分区和其他经过验证的分区,包括系统分区、供应商分区和可选的 OEM 分区。在设备启动期间,每个阶段都会在移交执行之前验证下一阶段的完整性和真实性。除了确保设备运行的是安全的 Android 版本之外,启动时验证还会使用回滚保护检查 Android 的正确版本。回滚保护可确保设备仅更新到较新版本的 Android,从而有助于防止可能的漏洞持续存在。除了验证操作系统之外,启动时验证还允许 Android 设备将其完整性状态传达给用户。

安全启动

安全启动是 PC 行业成员开发的一种安全标准,旨在帮助确保设备仅使用原始设备制造商 (OEM) 信任的软件进行启动。当 PC 启动时,固件会检查每个启动软件的签名,包括 UEFI 固件驱动程序(也称为 Option ROM)、EFI 应用程序和操作系统。如果签名有效,PC 就会启动,固件会将控制权交给操作系统。OEM 可以使用固件制造商的说明来创建安全启动密钥并将其存储在 PC 固件中。添加 UEFI 驱动程序时,您还需要确保这些驱动程序已签名并包含在安全启动数据库中。

有关详细信息,请参阅文章安全启动验证启动

答案2

安全启动和验证启动大致相同,描述的是软件身份验证框架,这些框架通常需要一些硬件支持才能正确实现。“验证启动”更特定于 Android 平台,而“安全启动”则是用于许多平台的更通用术语。尽管 Microsoft 文档声称“安全启动”是 PC 特定标准,但我们发现许多其他平台供应商(NXP、Qualcomm 等)也使用这个术语来描述其固件身份验证的安全框架。

相关内容