据我所知,在 UEFI 中启用安全启动功能会将签名密钥存储在 NVRAM 中,以便操作系统的内核映像在启动级别检查其是否损坏。但没有什么能阻止我启动设置菜单并禁用此功能,直到 UEFI 菜单被密码锁定。
从那时起,访问内核映像并加载恶意代码的唯一方法是通过重置 UEFI 密码进行 Evil Maid 攻击。但如果我们可以访问主板,为什么还需要安全启动规范?
答案1
安全启动并不是禁止物理攻击者访问系统。它旨在防止软件通过检查引导加载程序的加密完整性来防止操纵启动过程。想想蓝色药丸。
启动步骤负责验证下一步代码。安全启动本身只关心第一步。
软件攻击者无需访问 UEFI 设置或更改任何有关启动配置的内容。他们只需替换设置为运行的 UEFI 可执行文件即可。UEFI 设置上的密码锁对此无能为力。
另一方面,安全启动使用加密方法验证 UEFI 可执行文件。它会检测到此更改并拒绝启动。
为了确保可信启动和操作,所有内核模式代码都必须经过签名。64 位版本的 Windows 也强制对设备驱动程序进行签名。
操作系统或其运行的软件并不安全。在大多数情况下,不可能实现正式可证明的安全性。因此,攻击者总是能够获得足够的访问权限来执行特权操作,例如替换引导加载程序。
答案2
UEFI 指定了一种存储密钥的方式以及如何使用这些密钥来验证数字签名(作为 EFI 映像加载过程的一部分),以及可供操作系统使用的经过验证的 UEFI 变量。
如何允许机器进入设置模式完全由实施者决定。这可能是制造商设置一次,用户永远无法更改,或者可以在 UEFI 菜单中更改。在其他情况下,必须重置 CMOS 才能重新进入设置模式。其他情况需要密码才能启用安全启动。其他情况使进入设置模式成为带外管理系统的一部分。
如何进入设置模式和重新配置安全启动超出了规范的范围。
答案3
如果操作系统没有检查锁,那么锁就没有意义了。
您应该做的是,让操作系统无法启动,除非启动过程的 UEFI 部分全部正确。