0

我创建了一个 efi 并使用文档用 pesign 签名 -

UEFI 安全启动:

https://en.altlinux.org/UEFI_SecureBoot_mini-HOWTO

https://en.opensuse.org/openSUSE:UEFI_Secure_boot_using_qemu-kvm

https://en.opensuse.org/openSUSE:UEFI_Image_File_Sign_Tools

https://wiki.ubuntu.com/SecurityTeam/SecureBoot

http://tomsblog.gschwinds.net/2014/08/uefi-secure-boot-hands-on-experience/

并启动:

sudo qemu-system-x86_64 -L . -pflash /usr/share/qemu/OVMF.fd -hda fat:uefi_disk

uefi 磁盘包含签名的 efi 文件

但是为了安全启动我需要有

DB
DBX
KEK
PK

这样我就可以注册 OVMF 安全启动 但是在教程中,从来没有得到这些如何生成。请建议

4

1 回答 1

-1

除了为安全启动生成密钥外,还需要对密钥进行签名。此处详细定义了生成密钥、签名并将其存储到密钥库的过程https://www.rodsbooks.com/efi-bootloaders/secureboot.html

安全密钥可以分为私有和公共两种方式,安全启动遵循信任根链,用于密钥添加 PK=>KEK=>DB。DB 中的任何更改都需要使用 KEK 私钥进行签名,KEK 中的更改需要使用 PK 私钥进行签名,而 PK 中的更改需要使用之前的 PK 公钥的私钥进行签名。

  • 生成 PK 对并用私钥签署 PK 公钥。PK 是自签名密钥。
  • 生成 KEK 对并使用 PK 私钥签署 KEK 公钥
  • 使用 KEK 私钥生成数据库密钥对并签署数据库公钥
  • 生成 DBX 密钥对并使用 KEK 私钥签署 DBX 密钥对

注意:要从 BIOS 替换以前的 PK,您需要一个由平台所有者签名的空密钥。大多数 BIOS 允许在不验证的情况下更改密钥,但理想情况下不应允许。安全启动的全部目的是可以追踪到信任根并进行验证。

除了生成全新的密钥集外,您还可以使用机器所有者的密钥 MOK 来注册具有安全启动的新密钥。

  • 生成密钥对
  • 使用私钥签署您的实用程序(使用 sbsign)
  • 将公钥添加到 MOK 实用程序(使用 mokutility)
  • 也在上面提到的链接中描述
于 2020-01-14T12:15:04.147 回答