Primero que nada: generar clave propia
openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
-subj "/ CN = Kernel Key" -outform DER -out kernel.der \
-keyout kernel.key
Intente compilar el kernel de Linux con CONFIG_EFI_STUB e incrustar initramfs en él como se describe aquí: https://prosauce.org/blog/2015/10/31/booting-linux-securely , para firmar los módulos puede usar el siguiente script:
/ usr / src / linux-headers - $ (uname -r) / scripts / sign-file sha256 kernel.key kernel.der module.ko
Luego cree un archivo con cmdline del kernel para su computadora portátil \ estación de trabajo, y cree una imagen y cópiela en el directorio de arranque efi de esta manera:
# objcopy \
--add-section .osrel = / etc / os-release --change-section-vma .osrel = 0x20000 \
--add-section .cmdline = / tmp / cmdline --change-section-vma .cmdline = 0x30000 \
--add-section .linux = / boot / vmlinuz --change-section-vma .linux = 0x2000000 \
--add-section .initrd = / boot / initrd.img --change-section-vma .initrd = 0x3000000 \
/usr/lib/systemd/boot/efi/linuxx64.efi.stub linux.efi
# mkdir -p / boot / efi / EFI / BOOT
# sbsign --key /root/keys/ISK.key --cert /root/keys/ISK.pem --output /boot/efi/EFI/BOOT/BOOTX64.EFI linux.efi / boot / efi / EFI / BOOT /BOOTX64.EFI
Para instalar su propia clave en el firmware de MB, puede hacer cmds como este:
openssl x509 -inform der -in kernel.der -outform pem -out kernel.pem
cert-to-efi-sig-list -g "$ (uuidgen)" kernel.pem kernel.esl
sign-efi-sig-list -k KEK.key -c KEK.pem kernel kernel.esl kernel.auth