如何使用自定义签名的 shim 进行安全启动 (Fedora)?

如何使用自定义签名的 shim 进行安全启动 (Fedora)?

我不确定是否有这方面的指南,但我想知道实现以下目标所涉及的详细步骤(也许是分步指南?):

  1. 使用自定义 CA 私钥重新签名 shim,但仍让 shim 使用 Fedora 启动 CA 公钥来验证安全启动的内核组件。
  2. 将固件中存储的 Microsoft 密钥替换为相应的自定义 CA 公钥(其私钥用于对 shim 进行签名)。

我想要实现的主要目标是替换固件中存储的内置微软CA证书,以禁止执行微软签名的操作系统引导加载程序,并仍然使用UEFI的安全引导功能来引导F19。一般概述似乎概述于这个链接,但我找不到任何详细的指南来执行此操作。

答案1

我认为您可以遵循以下流程:

  1. 为您的系统生成密钥。对我来说一个已知的好的过程是
  2. 现在您可以使用此签名来签署您的 shim.efi。如给定链接中所述,使用 pesign 进行签名
  3. 现在它应该可以工作了,如果不能,那么您可能还必须使用新签名来签署其他二进制文件。

但我担心从 shim.efi 中删除 MS 证书可能会损坏。您可能有兴趣阅读链接了解更多详情。

我总结了以下几点供大家参考:

要点#1

我们的许多用户希望构建自己的内核。有些人甚至想构建自己的发行版。签署我们的引导加载程序和内核是一个障碍。我们将提供用于签署二进制文件的所有工具,但由于显而易见的原因,我们无法分发密钥。这里有三种方法。第一个是用户生成自己的密钥并将其注册到系统固件中。我们将信任使用固件中存在的密钥签名的任何内容。第二种是使用安装的自己的密钥重建 shim 加载程序,然后支付 99 美元并与 Microsoft 签署。这意味着他们可以将副本提供给其他任何人,并让他们无需任何操作即可安装它。第三种方法是完全禁用安全启动,此时机器应该恢复授予与当前相同的自由集。

第2点:

自定义模式下的系统应该允许您删除所有现有密钥并用您自己的密钥替换它们。之后,只需重新签名 Fedora 引导加载程序(就像我说的,我们将为此提供工具和文档),您将拥有一台可以引导 Fedora 但拒绝引导任何 Microsoft 代码的计算机。对于台式机来说,这可能会有点尴尬,因为您可能必须处理显卡和网卡上的 Microsoft 签名 UEFI 驱动程序,但这也是可以解决的。我正在寻找实现一个工具的方法,以允许您自动将已安装的驱动程序列入白名单。除非存在固件后门,否则可以配置安全启动,以便您的计算机仅运行您信任的软件。自由意味着可以运行您想运行的软件,但也意味着可以选择您不想运行的软件。

相关内容