如何将密钥对(公共和私有)添加到保存受信任密钥列表的内核数据库列表

如何将密钥对(公共和私有)添加到保存受信任密钥列表的内核数据库列表

Nvidia我刚刚在 Ubuntu 上安装完驱动程序。 Nvidia 安装程序创建了一个密钥对并用它签署了模块。现在它说我应该将此密钥对添加到内核的可信密钥列表中才能使用模块。我用谷歌搜索但找不到任何解决方案,因为我不是专业的 Linux 用户。

我感谢您的帮助。

(使用lubuntu 16.10)

答案1

在这里我找到了解决方案。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-signing-kernel-modules-for-secure-boot.html

如果您的密钥对已创建,则:

(该指令适用于 RedHat,但在 Lubuntu 上运行良好,并且很可能也适用于 Ubuntu)

机器所有者密钥 (MOK) 工具是 Red Hat Enterprise Linux 7 支持的一项功能,可用于扩充 UEFI 安全启动密钥数据库。当 Red Hat Enterprise Linux 7 在启用了 UEFI 且启用了安全引导的系统上引导时,除了密钥数据库中的密钥之外,MOK 列表中的密钥也会添加到系统密钥环中。 MOK 列表密钥也以与安全启动密钥数据库密钥相同的方式持久且安全地存储,但这是两个独立的设施。 shim.efi、MokManager.efi、grubx64.efi 和 Red Hat Enterprise Linux 7 mokutil 实用程序支持 MOK 工具。

MOK 设施提供的主要功能是能够将公钥添加到 MOK 列表,而无需将密钥链返回到 KEK 数据库中已有的另一个密钥。但是,注册 MOK 密钥需要由实际存在的用户在每个目标系统上的 UEFI 系统控制台进行手动交互。尽管如此,MOK 工具提供了一种极好的方法来测试新生成的密钥对并测试用它们签名的内核模块。

请按照以下步骤将您的公钥添加到 MOK 列表:

  1. 使用 Red Hat Enterprise Linux 7 用户空间实用程序请求将您的公钥添加到 MOK 列表:

    ~]# mokutil --import my_signing_key_pub.der

系统将要求您输入并确认此 MOK 注册请求的密码。

  1. 重新启动机器。

  2. shim.efi 将注意到待处理的 MOK 密钥注册请求,并将启动 MokManager.efi 以允许您从 UEFI 控制台完成注册。您需要输入之前与此请求关联的密码并确认注册。您的公钥将添加到 MOK 列表中,该列表是持久的。

一旦密钥位于 MOK 列表中,当启用 UEFI 安全启动时,它将在本次启动和后续启动中自动传播到系统密钥环。

相关内容