Windows_logo_horiz_blue_rgb

HOWTO: 升级 Secure Boot 证书解决2026年到期问题

        在开始我们今天的话题前应该先了解一下 Secure Boot(安全启动),它是基于 UEFI 提供的一项安全功能,确保设备加电启动后仅能够从受信任的程序执行启动。这是保护操作系统的第一步,它的工作原理十分容易理解,在设备 UEFI 中预置了受信证书,当我们的设备要执行启动的程序包含匹配的受信证书,则设备会继续执行启动,否则失败!

SecureBoot

        安全启动在 Windows 上通过其内核的受信任启动序列从 UEFI 创建安全可信的启动路径,其示意如下,这一过程首先验证固件是否已进行数字签名,从而降低固件 rootkit 的风险。然后,安全启动会检查操作系统之前运行的代码,并检查启动加载程序的数字签名。

boot_process

        Secure Boot 最初是在 Windows 8 总引入的,直至今日的 Windows 11。早前微软已公布相关的启动证书将于2026年过期,参考如下:

Microsoft Corporation KEK CA 2011,2026年6月到期,KEK,对 DB 和 DBX 进行签名更新,更新后:Microsoft Corporation KEK 2K CA 2023

Microsoft Windows Production PCA 2011,2026年10月到期,DB,用于对 Windows 引导加载程序进行签名,更新后:Windows UEFI CA 2023

Microsoft UEFI CA 2011,2026年6月到期,DB,对第三方引导加载程序和 EFI 应用程序进行签名,更新后:Microsoft UEFI CA 2023

Microsoft UEFI CA 2011,2026年6月到期,DB,签署第三方选项 ROM,更新后:Microsoft Option ROM UEFI CA 2023

        如果你或你所管理的组织设备已启用 Secure Boot,则需要重点进行设备信息的调查汇总并指定响应的更新计划并着手开始实施。因为当这些 CA 过期后,系统将停止接收 Windows 启动管理器和安全启动组件的安全修补程序,并影响 Windows 设备的整体安全性。

        首先,我们需要确认设备是否启用了 Secure Boot,可以通过 msinfo32 查看,或使用 PowerShell 命令:Confirm-SecureBootUEFI。

        然后,联系或检查设备 OEM 供应商是否提供了对应的 UEFI 更新固件,根据说明进行操作。

        更新固件后,可以通过检查以下注册表键值来进行确认是否应用了 Windows UEFI CA 2023 签名启动管理器。

“HKLM\SYSTEM\CurrentControlSet\Control\SecureBoot\Servicing”,UEFICA2023Status 值为 Updated 时表示已完成并应用更新。否则我们需要借助 OEM 的 UEFI 更新程序或微软提供的方案执行。

SecureBoot-reg-uefica2023status

        我们也可以在 PowerShell 中执行以下命令,进行 Windows UEFI CA 2023 的检查。

[System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match ‘Windows UEFI CA 2023’

SecureBoot-verify

        当然,启动设备进入 UEFI 界面也是一个非常直接的方法。

Lenovo-KEK

Lenovo-DB

        是的,你没有看错前面的描述,微软也提供了更新 UEFI 固件证书的方法,但如果不适用当前设备,则需要由 OEM 提供支持。我们可以参考以下几种方案:

1. 安装 Windows Update,这是最简单有效的办法!注意:根据微软 KB5036210 的说明,从 2024年 2月 13日及之后发布的 Windows 更新包含了 Windows UEFI CA 2023 证书应用于 UEFI 安全启动允许签名数据库(DB)。

2. 对于组织用户,同理在满足基本系统版本需求的前提下,可以通过注册表、GPO 和 WinCS 的方式立刻开始更新。对于注册表,运行以下命令行。

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Secureboot /v AvailableUpdates /t REG_DWORD /d 0x5944 /f

Start-ScheduledTask -TaskName “\Microsoft\Windows\PI\Secure-Boot-Update”

第一条命令将启动证书和启动管理器部署,第二条会立刻运行 AvailableUpdates 所对应的计划任务,否则需等待每 12小时运行一次。当重启设备后其键值变为 0x4100 后,可在执行上面的任务计划,触发启动管理器更新。整个过程 IT 人员都可以通过检查 UEFICA2023Status 和 UEFICA2023Error 注册表键值或 DB 和 DBX 事件(ID 1801,1808)进行跟踪。

SecureBoot-event-1045

SecureBoot-event-1799-succeed

3. 如果计划使用 GPO,可配置 计算机配置 - 管理模板 - Windows 组件 - Secure Boot,如下图所示。

SecureBoot-GPO

4. 我们也可以使用 WinCS API 进行更新操作,执行下面的命令行可先进行查询。

WinCsFlags.exe /query --key F33E0C8E002,如下图所示如当前配置为 F33E0C8E001,则未应用新的证书。

SecureBoot-wincs

执行下面的命令行以应用新证书。

WinCsFlags.exe /apply –-key “F33E0C8E002

SecureBoot-wincs-1

注意:通过运行 WinCS 响应的命令并不意味着安全启动证书安装过程已启动或已完成,它仅指示对应的计划任务准备运行,我们也可以手动触发该计划任务,之后重启设备两次以确认正在使用更新的证书。

        目前主要的设备 OEM 厂商(Lenovo、HP、Dell 等)都已经提供了更新支持。如果你所在的组织正面临该问题,可与 gOxiA 联系。

Windows Client | 评论(0) | 引用(0) | 阅读(58)
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我