首页/系统/信创系统运维速查/Secure Boot 状态检查
安全加固65 条

Secure Boot 状态检查

信创环境常核查安全启动状态:mokutil 查看开关与已登记密钥,涉及第三方驱动签名与自编译模块时注意加载限制。

信创系统运维速查系统更新于 2026-10-13

Secure Boot 在核什么

UEFI Secure Boot 要求引导链上的每一环(固件、引导程序、内核、内核模块)都带受信任的签名。开启之后,未签名或签名不受信任的内核模块会被拒绝加载,第三方 RAID 卡、网卡与自编译驱动的适配问题就出在这里。核查安全启动状态,本质是在确认这套信任链是开着还是关着。

基本信息

检查命令mokutil --sb-state、mokutil --list-enrolled
适用平台UEFI 启动的 x86_64/aarch64 服务器与桌面(legacy BIOS 无此项)
相关概念MOK:由机器所有者登记的自签名密钥
生效方式开关在固件设置界面,需重启生效
权限要求查询普通用户;登记密钥需 root

典型使用场景

  • 安全基线核查要求提供安全启动开关状态的证据
  • 部署自研或第三方内核模块前,确认是否会被签名校验拦住
  • 登记自签名密钥(MOK)以便加载自己编译的驱动
  • 整机到货验收时核对固件里的安全启动是否按交付要求设置
  • 排查 dmesg 中模块加载被拒的报错

状态与密钥检查

状态与密钥检查
mokutil --sb-state                     # SecureBoot enabled / disabled
mokutil --list-enrolled | head -20     # 已登记的公钥列表
dmesg | grep -iE 'secure boot|lockdown|verification failed' | head
ls /sys/firmware/efi 2>/dev/null       # 目录存在即以 UEFI 方式启动
modinfo <模块名> | grep -iE 'sig|vermagic'   # 查看模块签名与版本标识
mokutil --import mykey.der             # 登记自签名公钥
# 登记后重启,在 MOK 管理界面完成确认才算生效

输出逐项读法

检查项输出含义
mokutil --sb-stateSecureBoot enabled信任链开启,未签名模块无法加载
mokutil --sb-stateSecureBoot disabled信任链关闭,需进固件界面开启并重启
mokutil --list-enrolled列出若干条目已登记的信任密钥,自签名驱动依赖它
/sys/firmware/efi目录存在系统以 UEFI 方式启动,才可能有该项
安全启动的开关在固件设置界面,不在操作系统里:mokutil 只能查询状态与登记密钥,真正切换需要重启进固件界面操作,属于要排变更窗口的动作。
虚拟机里 mokutil 可能没有输出或提示不支持,因为虚拟固件未实现该接口;这种情况改去虚拟化平台的固件配置项确认,不要据此判断机器有故障。

易错点

  • 只在操作系统里查状态就下结论:开关在固件界面,核查要重启进设置确认实际值
  • 开着安全启动部署未签名驱动:模块加载被拒,报错位置看起来与驱动无关,先查 dmesg
  • 登记 MOK 后没在重启时的 MOK 管理界面确认:登记未完成,模块依然加载失败
  • 把虚拟机里 mokutil 无输出当故障:虚拟固件常不支持该接口,改查平台配置
  • 调试时关闭安全启动后忘记恢复:安全基线核查会直接判为不符合项

数据来源与参考

  • man 1 mokutil
  • UEFI 规范(Secure Boot 章节)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌