Leider ist das Konzept von Verified-/Trusted-Boot unter Linux, im Gegensatz zu z.B. Android, Chromium OS, MacOS und Windows, immer noch nicht wirklich präsent (siehe bspw. The Strange State of Authenticated Boot and Disk Encryption on Generic Linux Distributions). Während sich Secure-Boot auch im Linux-Umfeld einigermaßen etabliert hat, tut sich im Bereich Measured-Boot noch nicht allzu viel. Eine Möglichkeit den gemessenen Bootvorgang manuell auf Vertrauenswürdigkeit hin zu überprüfen, ist die Verwendung von tpm2-totp. Wie genau das funktioniert, erläutere ich in folgendem Beitrag.
Arch Linux: Bootvorgang mittels TPM2 & TOTP messen und Vertrauenswürdigkeit überprüfen (Measured-Boot)
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.
Arch Linux: Installation mit LVM, LUKS, AppArmor, systemd-boot und UEFI Secure Boot mit eigenen Keys
Vor Kurzem habe ich mein Notebook erfolgreich von Xubuntu auf Arch Linux umgestellt. Wie bei meiner bisherigen Xubuntu-Installation sollte Arch Linux natürlich mit Festplatten-Vollverschlüsselung (mittels LVM on LUKS) sowie aktiviertem AppArmor installiert werden. Außerdem wollte ich als zusätzliche Sicherheitsebene, Arch Linux mit aktiviertem UEFI Secure Boot in Verbindung mit eigenen Secure Boot Keys einrichten. In diesem Zusammenhang sollte zudem systemd-boot anstatt GRUB als Bootloader zum Einsatz kommen. Wie ich das Ganze umgesetzt habe, könnt ihr in diesem Beitrag lesen.
Arch Linux: Screenlocker XSecureLock einrichten
Auch wenn Xorg (X11) und Screenlocker in Sachen Sicherheit bekannterweise nicht wirklich zu überzeugen wissen, verwende ich natürlich trotzdem einen Screenlocker. Unter Arch Linux setze ich hier in Verbindung mit Xfce den Screenlocker XSecureLock ein.
Prinzipiell muss man nichts weiter machen, als das entsprechende Paket zu installieren und in seiner verwendeten Desktop-Umgebung ein entsprechendes Tastenkürzel zum Aufruf von XSecureLock einzurichten. Bei Bedarf lässt sich XSecureLock in Verbindung mit xss-lock auch so konfigurieren, dass der Bildschirm automatisch nach einer bestimmten Zeit abgedunkelt und gesperrt wird. Was ihr dazu machen müsst, erfahrt ihr in diesem Beitrag.
Arch Linux: libvirt mit AppArmor-Unterstützung installieren
Unter Xubuntu bin ich es gewöhnt, dass das libvirt-Paket direkt mit AppArmor-Unterstützung ausgeliefert und installiert wird. Leider ist das bei Arch Linux nicht der Fall. Da ich auf dieses zusätzliche "Sicherheitsnetz" bei der Ausführung meiner QEMU/ KVM-VMs nicht verzichten möchte, verwende ich nicht das von Arch Linux ausgelieferte libvirt-Paket, sondern kompiliere es mit AppArmor-Unterstützung selbst und installiere es dann manuell mit pacman.
Wie das Ganze genau funktioniert, beschreibe ich in diesem Beitrag.