github编辑

固件、操作系统

本文为M.W.D.的个人笔记,严格意义来讲不应该发布到此处。

在现实世界的UEFI固件电脑当中,有一个名为UEFI安全启动的守门员,它曾守护者每一个Windows设备。

如果你想给你的固件签署Microsoft UEFI CA 2023签名,你需要准备一个EV证书(禁止自签,这个证书必须提交到Microsoft那边)。

如果……

你想拿Windows UEFI CA 2023签名去签署自己的Linux固件。

但是因为UEFI BlackLotus事件(再者用别人的私钥签署病毒会被微软直接处刑),这个猜想却是失败的,或者说注定失败。

本来UEFI安全启动只认固件签名(也许还能搞自签名证书),但是因为需要同时替换PK、KEK、db、dbx对于我们自己而言反而是件坏事。

你绝对会想到一个问题:我直接用MOKManager不就好了?

这里提出一个事实:我们中国绝大多数计算机用户、尤其是Windows用户,甚至连Linux都没接触过(更不用说Grub和Arch Linux)。甚至不习惯于使用iso文件打包项目作品(这是光盘的格式)。

几个月前,笔者试着拆解Windows重装大师的PE文件,发现除了DiskGenius和Windows重装大师之外,其他的什么都没有

只留下了一个README文件,而且还是一个警告。

你可能会觉得这是一个PE镜像文件,但是这个镜像不同于常规的iso、vhd、vhdx文件分发

一般PE的READNE文件可能会说明用户如何修改PE镜像文件、以及注意事项和已知问题。(微PE都这么干了,为何重装大师不行?

甚至连EFI文件都不看。

因为微软沟糟的固件签名机制,一些启动加载器需要其他奇淫技巧才能让这个固件在已开启UEFI安全启动的前提下正常开机(这里指不通过Grub和shim/MOKmanager绕过微软的验证)。

目前为止,没有一个开源项目能够不使用Grub和shim/MOKManager直接和UEFI安全启动对线(上一个直接和UEFI安全启动对线的直接差点让所有bootloader被微软拉闸)。

更不用说更改PE文件会让整个U盘无法使用这种情况。

补充:哪些动作会导致PE无法加载

此处的行为不会导致U盘无法使用,顶多让PE无法加载。

再次提醒:安装PE时务必备份数据!

本段落部分文字取自Microsoft Learn。

电脑启动时,它会首先找到操作系统启动加载程序。 无安全启动功能的电脑运行电脑硬盘上的任何启动加载程序。 电脑无法判断它是受信任的操作系统还是 rootkit。

配备有 UEFI 的电脑启动时,电脑首先验证固件是否经过了数字签名,从而减少了固件 rootkit 风险。 —— Microsoft Learn

  • 固件签名不当

  • 修改了UEFI固件设置导致安装了Windows UEFI CA 2023的电脑无法开机(只能关闭UEFI安全启动并重新生成启动文件) - 参考此处arrow-up-right

  • 删除wim文件

  • 删除Grub配置文件(会导致没法进入Grub)

  • 删除BCD配置文件(这可不得了,只能重装了)

最后更新于