Die meisten Computer sind heutzutage mit einem TPM (Trusted Platform Module) ausgestattet. Dabei handelt es sich um einen Sicherheitschip, der zusätzliche Sicherheitsfunktionen auf Hardwareebene bereitstellt. In der Praxis liest man vom TPM häufig im Zusammenhang mit Secure Boot zur Absicherung des Bootvorgangs. Es gibt aber auch noch andere praktische Anwendungsfälle, für die man einen TPM-Chip nutzen kann. Einige Beispiele für den Einsatz unter Linux findet ihr im folgenden Beitrag.
Linux & TPM: Praktische Anwendungsfälle
GPG-Keys mit TPM verschlüsselt speichern
Analog zur Abscherung von SSH-Keys, lassen sich auch GPG-Keys mittels TPM (Trusted Platform Module) verschlüsselt speichern. Wie ihr das unter Linux bewerkstelligt, zeige ich euch in folgendem Beitrag.
LUKS-Festplatten-Vollverschlüsselung per SSH entsperren
Aktuell widme ich mich in meiner Freizeit dem Projekt mein Heimnetzwerk ("Homelab") neu aufzusetzen. Hierbei kommt ein kleiner Mini-PC als "Home"-Server zum Einsatz. Wie bei allen meinen Systemen soll eine Festplatten-Vollverschlüsselung mittels LVM on LUKS zum Einsatz kommen. Zudem möchte ich nicht dass der Server 24/7 läuft, sondern ihn immer nur bei Bedarf per Wake On LAN aufwecken. Konkret möchte ich also z.B. von unterwegs mich mittels VPN mit meinem Heimnetzwerk verbinden, per Wake On LAN den Server starten und dann auf dessen Services zugreifen.
Eine Herausforderung ist die während des Bootvorgangs benötigte Eingabe der Passphrase zum Entsperren des mit LUKS voll-verschlüsselten Systems. Eine Lösung, die ich euch in diesem Beitrag zeigen möchte, ist die Verwendung von Dropbear. Hierbei handelt es sich um einen "kleinen" SSH-Server, der ins initramfs integriert werden kann. Hierdurch lässt sich bereits während des Bootvorgangs eine SSH-Verbindung zum Server aufbauen und so aus der Ferne (Remote) die Passphrase zum Entsperren des Systems eingeben.
Wie ich den Bootvorgang meines Linux-Notebooks absichere - UEFI Secure Boot, Measured Boot (TPM), LUKS
Nebst dem Absichern (Hardening) des Betriebssystems, sollte auch der eigentliche Bootvorgang, dem meist weniger Beachtung bzgl. Sicherheit geschenkt wird, abgesichert werden. Die beste Festplatten-Vollverschlüsselung bringt nicht allzu viel, wenn euer System z.B. mit einem manipulierten Kernel gebootet wird und im Hintergrund bspw. euer Passwort mitgeloggt wird. Aus diesem Grund ist es wichtig bereits beim Bootvorgang sichzustellen, dass nur vertrauenswürdige Firmware/Software geladen und ausgeführt wird.
In diesem Beitrag gebe ich euch einen Überblick darüber, welche Schritte ich umgesetzt habe, um ich mein Notebook mit Arch Linux sicher zu booten.
VeraCrypt: Schlüsseldatei (Keyfile) mit TPM absichern
Vor einiger Zeit hatte ich hier im Blog schon mal beschrieben, wie man VeraCrypt-Volumes mit auf einem YubiKey gespeichterten Schlüsseldatei absichern kann. Das Ganze funktioniert unter Verwendung der PKCS#11-Schnittstelle. Aus Interesse habe ich mal ausprobiert, ob und wie sich das mittels TPM (Trusted Platform Module) umsetzen lässt. Verwendet habe ich hierzu, wie schon beim verschlüsselten Speichern von SSH-Keys per TPM, die Bibliothek tpm2-tools.