1、可信启动概述

什么是可信启动

可信启动,说白了就是一套「谁也别想篡改我」的启动机制。

我习惯这么跟新人解释:
你按下电源键,机器开始跑代码。从 BIOS 到内核,每一段代码在运行前,都要先验证「上一段代码」是不是可信的。就像接力赛,每一棒都要确认前一棒没被人掉包。

这个链条一旦建立,整个启动过程就是可信的。
如果中间任何一环被篡改,启动就会中断。嗯,这就是可信启动的核心逻辑。

一句话总结: 信任从硬件开始,一级验证一级,直到操作系统完全启动。

为什么需要可信启动

你想想看,现在的攻击手段有多狡猾。
恶意代码可以藏在 Bootloader 里,也可以躲在内核模块中。传统杀毒软件根本扫不到这些地方——因为它们启动得太早了。

我在项目中遇到过一件事:
一台服务器反复重启,查了三天,最后发现是 Bootloader 被人注入了后门。从那以后,我对可信启动的态度就变了——它不是可选项,而是必需品。

具体来说,可信启动能解决三个核心问题:

  • 防止启动链被篡改 —— 任何一环被改,系统直接罢工
  • 保证内核的完整性 —— 内核加载前先验签名,假的进不来
  • 建立硬件级信任根 —— 信任不是靠软件说的,是芯片里写死的
注意: 可信启动不是防病毒,它防的是「启动过程中被植入恶意代码」。如果你系统已经跑起来了,那它管不了。

可信启动的核心组件

整个链条分四段。我一个个说。

1. BIOS / UEFI

这是第一棒。
BIOS 或者 UEFI 是硬件自检和启动加载的起点。在可信启动体系里,它负责验证 Bootloader 的签名。

我个人更推荐 UEFI,因为它原生支持 Secure Boot。
Secure Boot 说白了就是 UEFI 里内置了一个白名单,只有签名过的 Bootloader 才能跑。

小经验: 我遇到过不少机器,Secure Boot 默认是关的。你排查可信启动问题时,第一件事就是进 BIOS 看看它开了没。

2. Bootloader

Bootloader 是第二棒。常见的有 GRUB2、U-Boot、LILO 等。
它的任务是把内核从磁盘加载到内存,然后跳转执行。

在可信启动里,Bootloader 要干两件事:

  • 验证自己的完整性(由上一级 UEFI 完成)
  • 验证内核和 initramfs 的签名

我记得有一次调试,GRUB 死活不肯加载内核。查了半天,发现是内核签名过期了。嗯,签名也是有有效期的,这个坑我踩过。

3. 内核

内核是第三棒。
它被 Bootloader 加载后,会先验证自己的签名,然后才真正执行。

这里有个细节:
内核本身也支持模块签名验证。如果你加载了一个未签名的内核模块,系统会拒绝加载。我建议你在编译内核时开启 MODULE_SIG 选项。

# 查看当前内核是否启用了模块签名验证
cat /boot/config-$(uname -r) | grep CONFIG_MODULE_SIG

# 如果输出是 y,说明启用了
CONFIG_MODULE_SIG=y

4. initramfs

initramfs 是第四棒,也是容易被忽略的一环。
它是一个临时的根文件系统,内核用它来加载必要的驱动和文件系统模块,然后挂载真正的根分区。

在可信启动里,initramfs 也需要签名验证。
我曾经遇到一个案例:initramfs 被人替换了,里面藏了一个挖矿脚本。因为内核没验证 initramfs 的签名,结果就中招了。

关键点: 如果你启用了可信启动,一定要确保 initramfs 也纳入了签名验证链条。否则,前面三棒再安全,第四棒掉链子也是白搭。

可信启动的整体流程

下面这张图,是我画的可信启动核心流程。你看一眼就明白了。

BIOS / UEFI 硬件自检 + Secure Boot Bootloader GRUB2 / U-Boot 内核 签名验证 + 模块检查 init ramfs 验证链条:硬件信任根 → UEFI 验证 Bootloader → Bootloader 验证内核 → 内核验证 initramfs 信任根(Root of Trust) 通常固化在 CPU 或 TPM 芯片中,不可篡改 验证失败时 系统停止启动,或进入恢复模式。不会执行未经验证的代码

常见误区

我总结几个新手容易搞混的点:

误区 真相
可信启动 = 安全启动 安全启动(Secure Boot)只是可信启动的一部分。可信启动还包括 Bootloader 验证、内核签名等。
开了 Secure Boot 就万事大吉 Secure Boot 只验证 Bootloader。内核和 initramfs 的验证需要额外配置。
可信启动影响性能 验证过程通常只有几百毫秒,对启动速度影响极小。
我的建议: 如果你是第一次配置可信启动,先从 UEFI + Secure Boot 开始。跑通了再加内核签名验证。别一口气全上,出了问题不好排查。

好了,这一章就到这里。
可信启动的核心概念,说白了就是「信任链」三个字。你只要记住:每一级都要验证下一级,链条断了就停。后面几章我们会深入每个组件的具体配置和排查方法。

可可精品资料库