小编Dim*_*nNe的帖子

为什么 shim/mokmanager 允许规避 SecureBoot 的_所有_保护?以及如何修复它?

这是我所做的:

  1. 生成我自己的 SSL 密钥 (db, KEK, PK) x (cer, key)
  2. 从内核、GRUB、shim(以及 中的所有其他 EFI 二进制文件/boot)中删除了现有签名,并使用我自己的证书 (db) 对它们进行签名。
  3. 重新启动并在 UEFI 中注册我的证书(将其移至用户模式)。

到目前为止,一切都很好。我希望从现在开始,对手只有两种方法来更改我的引导加载程序(GRUB):

  • 转到 UEFI 并禁用 SecureBoot(=> 需要密码)
  • 泄露我的私有 KEK 密钥(或 PK),它授权对 db(或 KEK)EFI 变量进行更改,这将允许添加另一个证书,该证书可以签署另一个引导加载程序。

现实中发生的情况是,shim 确实检测到 GRUB 已被破坏/修改,它显示了以下内容:

ERROR
Verification failed: (0x1A) Security Violation
<OK>
Run Code Online (Sandbox Code Playgroud)

然后,当我按下 时<OK>,它很高兴地让我添加另一个键(!)

Press any key to perform MOK management

Enroll key from disk
Run Code Online (Sandbox Code Playgroud)

显然,它破坏了整个“信任链”——它使之前的所有步骤变得毫无用处,从某种意义上说,它是一个后门(我知道它试图提供帮助,可能太有帮助了......)。

问题

  1. 我对吗?也许我错过了什么或误解了什么?我的印象是,只有密钥的所有者才能更换引导加载程序/EFI/内核(否则,EvilMaid 攻击成为可能,窃取 LUKS 密码变得很容易,等等......)
  2. 有解决方法吗?我可以mmx64.efi完全删除MokManager()吗?是否有可能消除这种行为,使其“不那么有帮助”?

聚苯乙烯

以防万一您想知道,那grub.cfg / initrd... - 我正在使用 GRUB 的独立版本来检查它加载的所有内容的 …

security boot grub2 uefi secure-boot

4
推荐指数
1
解决办法
2869
查看次数

标签 统计

boot ×1

grub2 ×1

secure-boot ×1

security ×1

uefi ×1