# 对未签名镜像进行哈希处理并更新 dB 以进行镜像身份验证

UEFI 安全启动允许镜像身份验证。此身份验证是通过存储在签名数据库 (dB) 中的镜像的哈希来实现的，即使镜像未签名或镜像中的证书不存在于 dB 中也是如此。

此过程保留用于无法从其供应商提供的状态签名或更改的内容。如果镜像哈希在数据库拒绝 (dBX) 列表中可用，则可以删除对签名二进制文件的信任，而无需撤销相应的证书或密钥。例如，在处理易受近期漏洞利用的早期签名 boot loader 时，这很有用。。

应用签名并为同一二进制文件创建 dB 哈希是多余的。如果镜像合成不需要任何更改，这意味着不会在镜像中添加或修改新密钥和证书，并且现有镜像不需要 UEFI 安全启动身份验证，请按照以下步骤操作。

您可以计算镜像的哈希值并生成允许的签名 dB 文件。

## 为未签名镜像生成 db.auth 文件

1. 生成所有要验证的镜像的哈希值，并将哈希值转换为 `.esl` 文件：

hash-to-efi-sig-list <list of efis to be hashed>  <output file name with .esl extension>
        Copy to clipboard
2. 使用 dB 密钥签署 `.esl` 哈希文件：

sign-efi-sig-list -k < .key file location > -c < .crt file location > <secure variable name> <Above generated .esl file> <o/p .auth file>
        Copy to clipboard
3. 将生成的 `db.auth` 文件复制到 EFI 二进制文件中，并将密钥预配到设备中。

例如，在 Linux 主机上：

1. 将 `efi.bin` 文件挂载至 `<workspace>` 目录，并在 `<workspace>` 目录下创建 `efimountedbin` 文件夹。
2. 在 Linux 计算机上的 `<workspace>` 目录中创建 `testkeys` 文件夹，并将预先存在的密钥复制至其中。
3. 对镜像进行签名：

hash-to-efi-sig-list <workspace>/efimountedbin/EFI/BOOT/bootaa64.efi <workspace>/efimountedbin/EFI/Linux/uki.efi mergedhash.esl
        sign-efi-sig-list -k keys db.key -c db.crt db mergedhash.esl db.auth
        Copy to clipboard
4. 将 `db.auth` 文件复制至 `<workspace>/efimountedbin/loader/keys/qckeys` 处的 `qckeys` 文件夹。
5. 按照 dtb 签名步骤对 dtb 镜像进行签名以生成新的 `efi.bin` 文件。关于更多信息，请参阅[对镜像进行签名并将 (.auth) 密钥/签名文件复制至 EFI 分区](https://docs.qualcomm.com/doc/80-70018-11SC/topic/sign-images-and-copy-auth-key-signed-files-to-efi-partition.html#sign-images-and-copy-auth-key-signed-files-to-efi-partition)。
6. 关于目标上的 Linux 主机：

    1. 擦除任何现有的 UEFI 安全启动密钥，并使用 fastboot 刷写 EFI 二进制文件。
    2. 使用 systemd-boot 配置密钥。关于更多信息，请参阅[从 systemd-boot 菜单启用 UEFI 安全启动](https://docs.qualcomm.com/doc/80-70018-11SC/topic/enable-uefi-secure-boot-from-systemd-boot-menu.html#enable-uefi-secure-boot-from-systemd-boot-menu)。

Note

所有未签名的文件都使用其他密钥进行签名，并使用此方法向 UEFI 进行身份验证。

## 后续步骤

- 有关用于生成密钥和证书请求的配置文件，请参阅[示例 OpenSSL 配置](https://docs.qualcomm.com/doc/80-70018-11SC/topic/appendix-openssl-configuration.html#appendix-openssl-configuration)。
- 有关芯片组功能管理和升级芯片组功能包，请参阅[定制安全服务](https://docs.qualcomm.com/doc/80-70018-11SC/topic/customize.html#customize)。

Last Published: Apr 29, 2025

[Previous Topic
从 systemd-boot 菜单启用 UEFI 安全启动](https://docs.qualcomm.com/bundle/publicresource/80-70018-11SC/topics/enable-uefi-secure-boot-from-systemd-boot-menu.md) [Next Topic
示例 OpenSSL 配置](https://docs.qualcomm.com/bundle/publicresource/80-70018-11SC/topics/appendix-openssl-configuration.md)