安全启动和 mok 密码

安全启动和 mok 密码

我遇到了 VernonB 在这篇文章中描述的同样问题Linux 中的 MOK 到底有什么用? 我还禁用了安全启动。但我想知道如果我再次重新安装 Ubuntu 和 Nvidia 驱动程序,以后这个 mok 密码是否会出现问题?

答案1

禁用安全启动是一项固件设置(“BIOS 设置”,尽管所有具有安全启动的系统都具有 UEFI 而不是旧版 BIOS)。

因此,除非您重置固件设置(旧名称:“CMOS 重置”),或者执行系统固件更新(“BIOS 更新”)并且更新会为您重置固件设置,否则安全启动应保持禁用状态,除非您再次启用它。

重新安装操作系统或 Nvidia 驱动程序应该不会对安全启动状态产生任何影响。


“MOK密码”似乎经常被误解。

如果系统启用了安全启动,Ubuntu 会自动创建和注册用于安全启动的机器所有者密钥 (MOK)。注册过程可以在任何操作系统运行时启动,但不能完成,因为注册过程必须确定注册MOK的命令实际上来自用户,而不是来自任何冒充用户的程序。

因此,当Ubuntu创建MOK时,它要求您设置一个一次性密码来完成MOK注册过程。下次启动时,安全启动将首先验证shimx64.efi安全启动加载程序上的 Microsoft 签名,然后shimx64.efi检测 MOK 注册过程是否已启动。它将中断启动过程,并向您显示蓝色的 MOK Manager 屏幕。如果您选择完成 MOK 注册过程,它将要求您输入重新启动前设置的密码,以确认 1.) 您是启动该过程的用户,2.) 您确实想要完成 MOK 注册过程。

此后,不再需要“MOK 密码”:它的工作已完成。如果由于任何原因重置系统固件设置而导致 MOK 丢失,则您需要从头开始重新执行 MOK 注册过程。


实际的 MOK 将位于/var/lib/shim-signed/mok/创建后的目录中。它是一个由两部分组成的加密密钥:公共部分,也称为证书,将在MOK.der文件中。这是注册到系统固件中的部分。您可以使用任何可以处理 DER 格式的 X.509 证书的命令以人类可读的形式查看它,例如:

sudo openssl x509 -inform DER -in /var/lib/shim-signed/mok/MOK.der -noout -text

私人部分将是仅有的在该MOK.priv文件中,只有 root 可读。如果启用了安全启动,则其他内核和模块管理工具将根据需要自动使用此文件dkms来对 Nvidia 驱动程序模块进行签名,作为其安装过程的一部分。

相关内容