#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

fwupd: Firmware aktualisieren mit aktiviertem Secure Boot und eigenen Secure-Boot-Schlüsseln

Aus Sicherheitsgründen ist es ratsam neben dem regelmäßigen Aktualisieren des Betriebssystems und der dazugehörigen Anwendungssoftware auch die (Hardware-)Firmware seines Rechners aktuell zu halten. Unter Linux nutze ich hierfür fwupd mit Gnome Firmware als GUI. Im Normalfall erfordern die Firmware-Updates einen Neustart, bei welchem dann die fwupd-EFI-Datei anstelle des Betriebssystems geladen wird. Wer wie ich UEFI-Secure-Boot mit eigenen Schlüsseln (Keys) verwendet, muss hierzu jedoch sicherstellen, dass diese fwupd-EFI-Datei entsprechend mit dem eigenen Secure-Boot-Key signiert ist. Wie ich das unter Arch Linux bewerkstelligt habe, erfahrt in diesem Beitrag.

Folgende Geräte bzw. Software wurde verwendet:
  • Lenovo ThinkPad X1 Carbon Gen 9 mit Arch Linux
  • sbsign v0.9.5
  • fwupd v2.0.3
  • Gnome Firmware v47.0

Pacman-Hook zum Signieren der fwupd-EFI-Datei

Damit automatisch bei jedem Update von fwupd die dazugehörige EFI-Datei (/usr/lib/fwupd/efi/fwupdx64.efi) mit dem eigenen Secure-Boot-Key (DB-Key) signiert wird, bietet es sich an, einen pacman-Hook zu verwenden. Dazu habe ich folgende Datei unter /etc/pacman.d/hooks/99-secure-boot-fwupd.hook angelegt:

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = fwupd

[Action]
Description = Sign fwupd EFI file.
When = PostTransaction
Exec = /usr/local/bin/secure-boot-update-fwupd
Depends = sbsigntools
Datei: /etc/pacman.d/hooks/99-secure-boot-fwupd.hook

Anschließend ist noch die im Hook genannte Datei anzulegen:

#!/bin/sh
/usr/bin/sbsign --key /etc/secure-boot/keys/db.key --cert /etc/secure-boot/keys/db.crt /usr/lib/fwupd/efi/fwupdx64.efi
Datei: /usr/local/bin/secure-boot-update-fwupd

Sobald via pacman ein fwupd-Update installiert wird, wird nun fwupdx64.efi signiert und als fwupdx64.efi.signed erzeugt.

Firmware aktualisieren

Nachdem ihr nun eine signierte fwupd-EFI-Datei habt, könnt ihr eure Firmware aktualisieren. Ich nutze hiefür Gnome Firmware als GUI. In meinem Fall ist z.B. die UEFI-/BIOS-Firmware nicht mehr aktuell und kann aktualisiert werden.

Gnome Firmware - Firmware - z.B. BIOS - mit fwupd aktualisieren

Im Laufe des Updates wird ein Neustart erforderlich. Die fwupd-EFI-Datei sollte nun problemlos geladen werden. Anschließend wird die Firmware aktualisiert. Sobald das Update fertig ist, wird wieder euer normales Betriebssystem gebootet.

BIOS bzw. Firmware mit fwupd aktualisieren

Fazit

Auch wenn ihr UEFI Secure Boot mit eigenen Schlüsseln verwendet, könnt ihr problemlos fwupd zum Aktualisieren eurer Firmware nutzen. Hierzu ist nur eine überschaubare Konfiguration vorab vorzunehmen.