通过 Windows 10 上的安全启动,我试图让只有使用我的私钥签名的引导加载程序才能在机器上启动。这意味着,即使其他人提供了具有所有数字签名的 Microsoft 信任操作系统,它也应该无法启动,因为它没有使用我的私钥签名。至于我想要这样做的原因,我被告知我必须找到一种方法。
我所做的是删除 BIOS 中的固件密钥(PK、KEK、DB、DBX),并注册我自己使用 OpenSSL 生成的公钥。然后,我使用 Rufus 创建了一个可启动的 USB 磁盘,使用bootx64.efi
相应sbsign
的私钥(DB.key)对 Windows 引导加载程序进行签名,从而有效地用我自己的签名替换了 Microsoft 的签名。
但是当我尝试通过 USB 启动时,出现蓝屏并出现以下错误:
无法验证此文件的数字签名
错误代码 0xc0000428
但它没有说明是哪个文件,所以我认为我必须签署所有 .EFI 二进制文件,然后将它们放在 USB 磁盘上,我就是这么做的,但出现了同样的错误。我还尝试禁用安全启动,看看这是否会改变任何事情,但它仍然给了我同样的错误。
我该如何让它工作?我是否遗漏了其他内容?
答案1
您确实可以编写自定义引导加载程序,由您自定义签名。允许 efi 仅引导该引导加载程序。然后,您的自定义引导加载程序必须验证并加载由微软签名的第二阶段引导加载程序(微软的引导加载程序)