【问题标题】:UEFI secure boot issues with hello efihello efi 的 UEFI 安全启动问题
【发布时间】:2018-02-09 08:26:40
【问题描述】:

我创建了一个 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 安全启动 但是在教程中,从来没有得到这些如何生成。 请推荐

【问题讨论】:

    标签: linux uefi gnu-efi


    【解决方案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)
    • 在上述链接中也有描述

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-11
      • 2018-03-08
      • 2018-08-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 2021-04-18
      • 2020-02-06
      相关资源
      最近更新 更多