在 Ubuntu 20.04 软件更新期间,我收到通知“安全启动链式加载引导程序(Microsoft 签名的二进制文件)”即将安装/更新。我不想允许在启动期间执行任何 Microsoft 签名的二进制文件,有没有办法将其删除?以便将来不再收到此类更新建议。
我拥有的唯一 Microsoft 产品是 Teams,我希望它尽可能地具有沙盒功能。
答案1
您可以使用“方法 2 - 在 shim-signed 中禁用安全启动”https://wiki.ubuntu.com/UEFI/SecureBoot/DKMS
您需要安装mokutil
。如果您尝试此操作,请发布反馈。
或者“方法 3 - 从 BIOS 禁用安全启动”。
请注意,这shim-signed
不是“不受欢迎的”,请参阅这了解其起源。如果您要使用安全启动,您最好进行shim-signed
更新。
答案2
~ 总结:~
虽然我总体上对这种观点表示同情,但我确信你在这里采取了错误的方法。事实上,它会让你离最终目标更远。
如果您在安全的情况下使用该链式加载程序,那么您的环境已经尽可能地“无 MS 签名”。您有一个伪造的 MS 签名,该签名适用于它在启动期间递归加载的所有内容。换句话说,所有内容。
另一个(临时)解决方案:关闭 SecureBoot。这样,这个引导加载程序或任何其他 MS 签名的二进制文件都不会被禁用。仅当它仍然是您机器上的 BIOS 设置时才有效。许多较新的 PC 和笔记本电脑都配备了“仅 SecureBoot”BIOS 系统,而没有旧选项。
~ 解释:两件事.. ~
事情 1:
首先,在 Linux 环境中,“Microsoft 签名”并不一定意味着它真的由 Microsoft 签名。它只是意味着有人让它看起来像是。我们这样做是为了在启动过程中运行的软件,以便它在启用 SecureBoot (SB) 的环境中不受限制地运行。
SecureBoot 的真正作用就是这样。它不保护任何东西。它只是切断在启动期间运行与 MS 数字签名无关的代码的进程的权限(例如互联网访问)。
不幸的是,启动时运行的软件是计算机上对系统最为关键的软件。首先,大多数固件都是在那时加载的。这提供了对物理资源的访问,等等。
因此,如果您启用了 SecureBoot 并且有互联网,则您很可能正在运行签名的软件。据我所知,Ubuntu 尚未迈出这一步并开始伪造内核模块。或者他们已经这样做了?
第 2 件事:
绕过 SB 的“启动期间仅签名代码”规则的一种方法是链式加载您的软件。使用链式加载器,信任将回到链中的第一个环节。对您来说,这就是引导加载器。
另外,这意味着如果您删除它,SecureBoot 将无法工作。
事实上,这是错误的。如果你删除它,安全启动将要工作,而且在我看来,情况更糟。这一点很重要,因为它是这个答案的核心。
人们不禁注意到了这里的讽刺意味。这个答案可以用以下陈述来概括:
~ 外卖 ~
在你的问题中,你明确指出
我不想允许任何 Microsoft 签名的二进制文件在启动期间执行......
如果这是您的最终目标,并且您正在运行启用 SecureBoot 的环境,则 SecureBoot 链式加载引导程序(Canonical 签名??)是 唯一能让你不用把系统上的每个启动时程序都换成 Microsoft 替代品的东西。