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

Schlagwort: systemd

systemd-ukify: Unified Kernel Image (UKI) für UEFI Secure Boot mit YubiKey signieren

In einem älteren Beitrag hatte ich bereits beschrieben, wie ich mittels systemd-ukify sogenannte Unified Kernel Images (UKIs) zum Booten meines Arch-Linux-Systems erstelle. Die so generierten UKIs wurden dabei mit meinem eigenen UEFI-Secure-Boot-Schlüssel signiert. Dabei befand sich der private Secure-Boot-Schlüssel jedoch auf meinem System selbst, wobei dieser aber natürlich nur für den Root-Benutzer lesbar ist.

Eine andere Möglichkeit ist es, den privaten Secure-Boot-Schlüssel (konkret geht es um den Signature Database Key) auf einem Hardware-Security-Token, wie z.B. einem YubiKey, zu speichern. Der Vorteil besteht darin, dass der private Schlüssel sich nicht direkt auf dem eigentlichen System befindet und ein Zugriff auf den privaten Schlüssel erschwert wird bzw. ein Auslesen generell beim YubiKey nicht möglich ist. Die Kommunikation zwischen systemd-ukify (intern eigentlich sbsign) und YubiKey findet über die PKCS#11-Schnittstelle statt.

Weiterlesen

Arch Linux & Secure Boot: Unified Kernel Image (UKI) mit systemd-ukify erstellen & signieren

Bis vor Kurzem hatte ich zum Generieren von Unified Kernel Images (UKIs) mein selbstentwickeltes Tool secbootctl verwendet. Da ich derzeit nicht die Muße habe, es weiterzuentwickeln und es durch eine der letzten systemd-Änderungen sowie nicht mehr korrekt funktioniert hat, habe ich mein System nun auf systemd-ukify umgestellt. Als Bestandteil von systemd ist somit sichergestellt, dass die generierten UKIs zukünftig immer der initial vom systemd-Projekt initierten UAPI: Bootloader Specification entsprechen (also hoffe ich zumindest :)).

In Verbindung mit pacman, dem Paketmanager von Arch Linux, wird bei jedem Kernel-, initramfs- und CPU-Microcode-Update ein UKI erstellt und mit meinem eigenen UEFI-Secure-Boot-Schlüssel signiert. Wie das genau funktioniert, erfahrt ihr in diesem Beitrag.

Weiterlesen

Linux: LUKS-Container mit FIDO2 entsperren

Standardmäßig lassen sich LUKS-Volumes, wie z.B. LUKS-Container, mit einer Passphrase entsperren bzw. entschlüsseln. Seit einiger Zeit bietet systemd mit systemd-cryptenroll aber auch die Möglichkeit, LUKS-Container mit einem FIDO2-Gerät, welches die HMAC Secret Extension unterstützt, zu entsperren. Wie sich das z.B. mit einem Hardware-Security-Token wie einem YubiKey umsetzen lässt, zeige ich in folgendem Beitrag.

Weiterlesen

Arch Linux: LUKS-Volume mit TPM2 inkl. PIN entschlüsseln

Mit systemd-cryptenroll bietet systemd eine einfache Möglichkeit, PKCS#11-, FIDO2- und/oder TPM2-Token-/Geräte zum Entschlüsseln von LUKS2-Volumes einzurichten. Mit der neuesten Version von systemd v251 lässt sich für die Verwendung eines TPM2-Chips auch noch eine zusätzliche PIN festlegen. Dadurch muss zum Entschlüsseln des LUKS-Volume nicht nur der TPM-Speicher (PCR-Status) korrekt sein, sondern es muss auch die korrekte PIN eingegeben werden.

Für mein Notebook mit Arch Linux verwende ich die TPM2+PIN-Lösung nun zum Entschlüsseln meines mit LUKS vollverschlüsselten Systems (Root-LVM-Partition). Was ich dafür tun musste, erfahrt ihr in diesem Beitrag.

Weiterlesen