secure boot是什么意思,How Secure Boot works

题图来自Unsplash,基于CC0协议
导读
Secure Boot 是一种安全技术,旨在通过确保计算机在启动过程中只加载经过数字签名验证的软件,来防止恶意代码在操作系统加载之前执行,从而大大提高了系统免受某些类型攻击的防护能力。
在启动过程中,一旦系统硬件初始通过了自检,UEFI 固件就开始控制启动流程。Secure Boot 的关键在于,它要求每个参与启动流程的组件,例如后续执行的UEFI应用程序、引导加载程序以及操作系统加载器和内核模块,最终直到操作系统本身都被数字签名所覆盖。这些组件在加载之前,必须提供有效的签名,由固件内部或在其信任列表中的密钥进行验证通过。如果某个组件没有适当的数字签名,或者签名本身被验证为无效或损坏,Secure Boot 可能会阻止其加载,从而阻止了潜在恶意软件的执行。
Secure Boot 的基础规范包含在 UEFI 规范中,特别是在较新版本的 UEFI(例如版本 2.3 和后续版本)中对其进行了详细定义。UEFI 规范规定了固件如何存储用于验证组件的公钥,并按照特定格式要求签署可执行的启动模块。在系统出厂时,UEFI 固件 firmware本身通常被打上制造商的签名,并预设了与 bootloaders或特定操作系统的兼容密钥。这些密钥以及信任的公钥会在系统启动时被固件加载,用于后续模块的验证过程。
Secure Boot 与 Measured Boot 是两种不同的安全启动概念。Secure Boot 的主要目标是阻止未授权的(未签名的或无效签名)代码在启动期间运行,其"防范性"更强。而 Measured Boot,也常常涉及类似于TPM的硬件,其更侧重于"检测和记录"。它收集启动过程中各个通过 Secure Boot 或未经历 Secure Boot 认证组件的哈希值顺序,形成一个启动完整性度量日志,这部分日志常被写入 TPM,并可传输到连接的远程服务器上进行进一步的安全审计,例如在远程管理或启动前安全验证场景中使用。因此,Secure Boot 关注的是阻止,而 Measured Boot 关注的是监控和记录。
实施 Secure Boot 带来了显著的安全增强,因为它有效防止了恶意驱动程序、rootkits,以及一些在系统启动早期加载以进行攻击的恶意引导加载程序。这些恶意软件常常在操作系统内核加载之前就活动,从而能够干扰安全软件的检测,甚至阻止它们加载自身。Secure Boot 通过强制签名和验证,确保操作系统加载器和其组件既是预期的,也是相对无害的,这大大提升了解决方案的整体可信度。
尽管 Secure Boot 具有重要优势,但它并非万能。成功的攻击常常不依赖于直接在启动阶段运行恶意软件。因此的技术,尤其是在当前日益复杂的内核漏洞和用户空间漏洞领域,仍存在潜在风险。然而,在启动阶段实现首道防线是重要的。
用户可以通过进入系统的 BIOS、UEFI 或 UEFI 高级设置(通常在计算机启动时通过特定按键进入)。在这类设置界面里找到 "Secure Boot" 控制选项。在这里,用户可以选择:
- 启用 (Enable/Enable Secure Boot):遵循制造商指南,多数现代硬件都是为此设计的,但系统初始化会准备必要的密钥。
- 禁用 (Disable/Disable Secure Boot):如果不启用 Secure Boot,将会跳过所有组件的签名验证步骤,允许启动 PC 上可能已损坏或带有可疑签名的任何旧驱动程序或软件。
Secure Boot 的兼容性可能会因操作系统和主板制造商实现的不同而受一些影响,尤其是在 Linux 环境下。Linux 发行版厂商通常使用专有内核模块来确保其显卡、网卡等常见硬件的适合驱动在 Linux 内核中完成适配,并取得相应权限,通常这是在 Secure Boot 禁用后或启用时加载了由发行商签发的特殊签名密钥的情况下才能正常实现启用来确认。许多现代的 Windows 系统默认是启用安全启动,并且微软提供了针对硬件制造商的签名根密钥支持,以确保在 Windows 启动过程中能够正确识别并装载必要驱动,不再像过去那样通常需要用户手动签名或禁用该功能。然而,用户或系统管理员有时仍然会遇到与驱动签名兼容性相关的各种状况。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com