如何将密钥添加到 secureboot db EFI 签名列表?

如何将密钥添加到 secureboot db EFI 签名列表?

我目前有两台运行 Arch Linux 的机器,具有统一内核映像 (UKI)、全盘加密 (FDE) 和基于安全启动/TPM2 的解锁。我想创建一个可以在这两台机器上使用的便携式 USB 记忆棒安装(带有 UKI/FE/TPM2)。我目前正在努力了解如何设置安全启动 (SB) 密钥。

在两台机器和 USB 记忆棒上,我创建 SB 密钥并签署 UKI

sbctl create-keys -e ./ -d ./
sbctl import-keys --directory ./
cp ./GUID /usr/share/secureboot/
sbctl sign -s ${uki}

这显然是错误的,因为机器不知道 USB 记忆棒上的 SB 密钥。

我一直在努力遵循拱门维基。首先,我将 MachineA 和 USB 记忆棒上的 SB db 密钥转换为 EFI 签名列表

cert-to-efi-sig-list -g "$(< ./SBKeysMachineA/GUID)" ./SBKeysMachineA/db/db.crt ./SBKeysMachineA/db/db.esl
cert-to-efi-sig-list -g "$(< ./SBKeysUSB/GUID)" ./SBKeysUSB/db/db.crt ./SBKeysUSB/db/db.esl

然后,WiKi 听起来就像您签署了 EFI 签名列表并附加 USB 密钥,但我迷路了

sign-efi-sig-list -g "$(< ./SBKeysMachineA/GUID)" -k ./SBKeysMachineA/KEK/KEK.key -c ./SBKeysMachineA/KEK/KEK.pem db ./SBKeysMachineA/db/db.esl ./SBKeysMachineA/db/db.auth
sign-efi-sig-list -a -g "$(< ./SBKeysUSB/GUID)" -k ./SBKeysUSB/KEK/KEK.key -c ./SBKeysMachineA/KEK/KEK.pem db ./SBKeysUSB/db/db.esl ./SBKeysUSB/db/db.auth

似乎我将 USB db EFI 签名列表附加到其自身,这似乎是错误的。

最后,我在两台机器上注册了 SB 密钥

sbctl enroll-keys -m

这对于 EFI 签名列表仍然有效吗?如果没有,我应该如何注册密钥?

相关内容