LUKS & eToken

Im Rahmen eines POC hat die LSE auf einem Debian System den Betrieb einer LUKS-basierten Festplattenverschlüsselung mit eToken realisert.

Vorteile der Tokenanbindung

Dabei machen wir uns zunutze, dass LUKS (Linux Unified Key Setup) die einzelnen Partitionen oder Slots nicht nur mit einer Passphrase schützen kann, sondern dazu auch ein Schlüssel aus einer externen Datei verwendet werden kann. Auf diese Weise läßt sich der eToken nutzen, ohne Änderungen am Code von LUKS vornehmen zu müssen.
Der auf dem Token abgelegte Schlüssel ist dabei mit der Token-PIN geschützt. Gemäß der Smartcard Spezifikation kann auf den Schlüssel ohne Eingabe der PIN nicht zugegriffen werden - ein unschützbarer Vorteil gegenüber einer passwortgeschützen Datei auf einem USB-Stick. Anders als bei der passwortgeschützen Datei auf einem USB-Stick sind auch Brute-Force-Attacke auf die Smartcard/Token-PIN zum Scheitern verurteilt, da die Smartcard nach mehrmaliger Falscheingabe der PIN gesperrt wird.

Funktionsweise

Soll eine solcherart verschlüsselte und geschützt Partition eingebunden werden, ist es erforderlich den eToken in den USB Port zu stecken und die PIN einzugeben. Nur dann wird der Schlüssel vom eToken temporär in den Arebitsspeicher kopiert und via
cryptsetup luksOpen --file <keyfile>
die Partition aufgeschlossen. Direkt im Anschluss wird die lokale Kopie des Schlüssels zerstört. Somit ist sichergestellt, dass diese Partition nur eingebunden und gelesen werden kann, wenn der Anwender in Besitz des eToken ist und die zugehörige PIN kennt.

Schutz der verschlüsselten root-Partition durch eToken (Pre-Boot Authentication)

Aktuelle Linux-Distributionen bieten an, das root-Filesystem mit LUKS zu verschlüsseln. Bei der Erstellung der initial ramdisk (initrd) ist durch die variable Nutzung von hooks und Skripten größtmögliche Flexibilität gewahrt.
Dadurch ist es möglich, die SafeNet eToken-Treiber automatisch beim Erstellen einer neuen initrd zu integrieren.

In der Folge liest nach Eingabe der eToken PIN ein cryptkeyscript eine Passphrase, die einem LUKS-slot entspricht, aus dem eToken aus. So kann bei Bedarf erreicht werden, dass das Booten des Systems nur noch mit dem richtigen SafeNet eToken möglich ist. Ein Management-Skript ermöglicht es zudem, einem System weitere eToken zum Booten zuzufügen, so dass auch Administratorenzugriffe möglich sind.

Durch die Nutzung der üblichen Schnittstellen beim Erstellen der ramdisk sind auch bei einem Update der Linux-Distribution wenig Probleme zu erwarten.

Bewertung

Gerade bei der Festplattenverschlüsselung ist die Sicherheit der Schlüssel eine Kernfrage. Das Auslesen des Schlüssels aus dem Token stellt bei der Nutzung von LUKS eine potentielle Sicherheitslücke dar. Wünschenswert wäre ein Verfahren, das sich der assymetrischen Verschlüsselung des Encryption-Keys bedient, so dass der private Schlüssel den eToken nicht mehr verlassen muss. Unter LUKS wären hierzu allerdings erhebliche Code-Erweiterungen notwendig.

Wir bleiben in dieser Frage weiter für Sie am Ball.