BIOS中的Secure Boot是什么,什么是Secure Boot?

题图来自Unsplash,基于CC0协议
导读
Secure Boot 是 UEFI(统一可扩展固件接口)规范中的一个关键安全特性,主要目的是在计算机启动过程中防止加载未经授权的软件或恶意代码。它并非传统 BIOS(通常指带有 CSM 模式的旧式 BIOS)的固有功能,而是现代平台,特别是那些寻求符合 UEFI 安全标准(如 UEFI Secure Boot)的平台中采用的一项重要措施。简单来说,Secure Boot 就像是计算机启动过程的“大门管理员”,它只允许经过验证和签名的软件进入操作系统的加载阶段。
首先,我们来看它的核心机制:Secure Boot 工作原理。在硬件初始化后,UEFI 固件中的启动管理器开始加载引导加载程序(Bootloader)。整个启动过程中的关键组件(包括 UEFI 固件本身、引导加载程序,甚至操作系统加载器)都必须进行数字签名。这些签名使用特定的公钥进行验证。UEFI 固件本身(Boot Manager)通常只信任一个或少数几个根密钥(通常已预先植入或包含在内部 Secure Enclave 或 TPM 中)。当需要加载一个组件时,Boot Manager 会检查该组件是否带有有效的签名,并且其公钥是否被受信任的根密钥签名。这个过程就像是 VisA 服务器上的安全更新,下载文件前先检查来源是否可信,防止了未授权和潜在恶意的启动代码被执行。
比较传统 BIOS 和 UEFI Secure Boot 时会发现,老式的 BIOS 环境通常使用传统的 Legacy 启动模式,支持 MBR 分区表,对操作系统和其他启动加载程序的选择限制较少,并不提供内置的、强制性的签名验证。迁移到 UEFI 并启用 Secure Boot,意味着平台必须使用 GPT 分区表,并且对启动过程施加了严格的控制:所有参与启动的软件(包括操作系统本身)必须提供有效的数字证书证明其身份和来源。这在一定程度上限制了那些试图在受管理的硬件上直接加载未经批准的、可能带有恶意特征的操作系统或修改而带来的风险。
如何启用或禁用 Secure Boot 通常取决于计算机制造商的 BIOS/UEFI 实现。一般来说,你需要在开机自检(POST)时中断启动过程(通常按特定组合键如 F2、Del、Esc 或 F10 进入 BIOS/UEFI 设置)。然后,导航到“安全”或“Secure Boot”等相关设置菜单。你通常可以看到一个开关选项来启用或禁用 Secure Boot 功能。一些高级设置可能允许更精细的控制,例如管理受信任的密钥、查看密钥列表或配置不同的 UEFI Policy(如 User、Setup、Lock 或 General UEFI Support)。更改这些设置后,通常需要保存并退出。
对系统启动的影响主要是增加了验证步骤,这个过程对最终用户通常不可见,除非签名验证失败。如果 Boot Manager 无法验证一个启动组件(例如,操作系统加载程序),启动过程就会停止,并提示加载失败或身份验证错误。因此,Secure Boot 确保了只有能提供正确“通行证”的代码才能在启动序列中运行,提高了整体系统的安全性,但也需要确保必要的启动组件已经被正确签名。
这对于使用第三方操作系统(OS)或在同一硬件上安装多个操作系统(双系统或三系统引导)的用户尤为重要。由于 Secure Boot 要求严格的签名验证,直接从此硬件的已安装操作系统列表中启动一个未获此平台 Secure Boot 信任的第三方操作系统(例如基于 FedoA 的 Linux 发行版,尽管其内核通常可以签名,但某些驱动或引导加载程序组件可能不被信任)可能会失败。一些厂商提供了方法将其公钥签入 Trusted Platform Module (TPM) 或接纳列表中,但这通常比较复杂,或者需要平台供应商提供支持。
Secure Boot 防止恶意软件(尤其是启动级别的恶意软件,如 rootkit)的核心方法正是这种严格的签名验证机制。通过只加载符合受信任密钥库的软件,系统可以有效避免那些未签名的、可能包含恶意代码的病毒、木马或未经授权的修改后的操作系统加载程序在启动时被载入,从而防御了在操作系统完全启动之前就植入的隐患。
从硬件角度来看,需要某些支持才能启用或顺利运行 UEFI Secure Boot。最关键的组件是 UEFI 固件本身支持 Secure Boot 规范。然后, CPU 需要支持 UEFI,并且主板上的硬件(通常包括安全芯片,即 TPM 模块)需要硬件级别的支持。
UEFI Secure Boot 与 TPM 的关系是密不可分的。TPM(可信平台模块)是一个安全协处理器,通常可以提供或存储 Secure Boot 过程中使用的密钥材料,例如用于存储受信任密钥的根密钥或锁定策略。虽然并非所有支持 Secure Boot 的 UEFI 实现都强制要求 TPM,但 TPM 对于提供强健的密钥管理、执行完整性度量(Measures Types)以及符合 NAP/Device Health Attestation 功能至关重要。在某些配置下,如果缺少可用的内部加密密钥,Secure Boot 可能依赖于由硬盘驱动器或 CPU 内部生成的“模拟”密钥,但这通常不如 TPM 作为专用安全设备那样安全,并且可能影响多项安全功能。
不过,没有任何安全措施是完美的。Secure Boot 本身理论上存在一些潜在的安全漏洞。其中之一是“Key Management”问题:如果攻击者能够获得对 UEFI 设置的物理访问权限,并说服用户启用或禁用 Secure Boot,他们进行篡改是简单的。一旦被启用,通过物理访问可以绕过所选 Secure Boot 配置,比如使用 U 盘或网络引导加载程序进行引导。此外,依赖于 EMSAAS Authentication 对于 UEFI 固件签名的 UEFI 安全启动实现,也存在 UEFI 固件固件被破坏或更新时引入漏洞的可能性,而这可能被恶意第三方利用进行攻击。新发现的攻击向量或密钥暴露出的后门也可能在未来成为一个风险。
总而言之,Secure Boot 是现代计算机安全的重要组成部分,它通过数字签名确保了操作系统和关键启动组件的真实性和完整性,大大减少了启动时执行恶意代码的可能性。它依赖于 UEFI 平台、公钥基础设施、以及往往的 TPM 支持。虽然存在某些已知缺点和潜在的未来发展中的挑战,但它无疑是提升系统韧性的关键防御层之一。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com