Die Daten Ihrer Kunden sichern

Verschlüsselungsverfahren unter Open Suse und Ubuntu

24.12.2009 von David Wolski
Unternehmens-Daten auf Notebooks und externen Medien brauchen besonderen Schutz. Wir zeigen, welche Werkzeuge Linux-Distributionen wie Ubuntu und Open Suse, um sensible Daten zu verschlüsseln.

Anfang 2009 haben die Verkaufszahlen mobiler Computer erstmals Desktop-Computer überholt. Leider floriert auch das Geschäft der Langfinger, die es nicht nur auf edle Hardware, sondern auch auf Geschäftsgeheimnisse, Passwörter, Bank- und Kreditkartendaten abgesehen haben. Für Privatpersonen ist der Hardware-Verlust teuer und der Datendiebstahl ärgerlich. Für Geschäftsleute und Unternehmen kann sich Letzteres als Super-Gau erweisen, wenn die gestohlenen, sensiblen Daten nicht gegen unbefugte Zugriffe gesichert sind.

Solche Horrorszenarien lassen sich vermeiden: Mit Verschlüsselung verwandeln Sie einen Datenträger oder eine Datei in einen Tresor, in dem sensible Daten physikalisch verschlüsselt liegen. Erst die Eingabe des richtigen Passworts öffnet den Safe. Aktuelle Linux-Distributionen bieten Tools, mit denen die Verschlüsslung sensibler Daten nicht mehr nur eine Sache von Administratoren oder paranoiden Computerfreaks ist.

Open Suse 11.1 und Ubuntu/Kubuntu 8.10 (die aktuelle Version ist seit dem 29. Oktober 2009 9.10) bieten dazu jeweils zwei Werkzeuge: Die Verschlüsselung mit Hilfe von Container-Dateien und die Verschlüsselung einer ganzen Partition.

Verschlüsselungsmethoden im Vergleich

Seit der Kernel-Version 2.6.19 unterstützt Linux das Dateisystem ecryptfs, das ein verschlüsseltes Dateisystem in einem Container bietet. ecryptfs ist ein gestapeltes Dateisystem, das auf einem bereits Vorhandenen aufsetzt. Es liegt als gewöhnliche Datei auf der Festplatte, lässt sich aber mit einem speziellen Mount-Befehl als Laufwerk einhängen. Nach der Eingabe des richtigen Schlüssels steht der Inhalt der verschlüsselten Container-Datei wie auf einer normalen Festplattenpartition zur Verfügung und taucht als externes Laufwerk im Verzeichnisbaum des Linux-Systems auf.

Der Vorteil der Container-Verschlüsselung mit ecryptfs ist die einfache Handhabung. Mehrere Container verschiedener Benutzer können im gleichen Verzeichnis liegen, ohne sich zu stören, und die Container lassen sich wie gewöhnliche Dateien verschieben, kopieren und auf anderen Linux-PCs mit ecryptfs und dem richtigen Passwort öffnen. root-Privilegien braucht man dazu nicht.

Eine weitere Methode basiert auf dem Modul dm-crypt des Linux-Kernels ab Version 2.4.6. Es schiebt sich zwischen Kernel und Dateisystem und kümmert sich bei Lese- und Schreibvorgängen um die Ver- und Entschlüsselung von Rohdaten, die ganz unabhängig vom Dateisystem chiffriert auf der Festplatte liegen. Dieses Verfahren eignet sich für ganze Partitionen und externe Datenträger. Beim Einhängen verschlüsselter Partitionen ist die Eingabe des richtigen Passworts nötig, sonst bleibt die Partition unlesbar. Open Suse nutzt dmcrypt auch für seine Container, die als Loop-Dateien angelegt werden.

Verschlüsselte Container mit Ubuntu

Ubuntu unterstützt sichere Container seit Version 8.04. Um ecryptfs auf der Kommandozeile einzurichten, öffnen Sie ein Terminal- Fenster (über „Anwendungen, Zubehör“) und installieren mit dem Befehl „sudo apt-get install ecryptfs-utils“ die Verschlüsselungs-Tools. Rufen Sie dann das Installationsscript „ecryptfs-setup-private“ auf.

Verschlüsselte Container mit Ubuntu

Danach tippen Sie zunächst Ihr Benutzerpasswort ein und vergeben danach ein Mount-Passwort, das Sie zur Überprüfung noch einmal wiederholen müssen. Das Mount-Passwort wird zum Ver- und Entschlüsseln des Verzeichnisses benötigt. Für den Fall, dass der zwischengespeicherte Schlüssel verloren gehen sollte, müssen Sie sich das Passwort unbedingt merken oder es an einem sicheren Ort aufbewahren.

Melden Sie sich jetzt vom Desktop ab, und loggen Sie sich erneut ein. Im Home-Verzeichnis finden Sie nun das Verzeichnis „Private“, das nach dem Anmelden bereits entschlüsselt ist. Dateien, die Sie darin speichern, landen eigentlich verschlüsselt im versteckten Ordner /home/ <Benutzer>/.Private. Dieser Ordner wird nach dem Mounten unverschlüsselt in den Ordern „Private“ in Ihrem Home-Verzeichnis abgebildet.

Beim Abmelden vom Desktop wird der Container automatisch abgesperrt. Um das manuell bei laufender Sitzung zu erledigen, benutzen Sie den Konsolenbefehl „umount. ecryptfs_private“. Mit „mount.ecryptfs_private“ machen Sie die Dateien im Privatverzeichnis wieder zugänglich. Eine Passworteingabe ist nicht nötig, da das zuvor eingetippte von einem pam-Modul zwischengespeichert wird. Das zwischengespeicherte Passwort geht übrigens verloren, wenn Sie oder ein anderer Benutzer mit root-Rechten das Log-in-Passwort ändern. In diesem Fall müssen Sie vor dem Mounten das bei der Einrichtung ausgewählte Mount-Passwort mit dem Befehl „ecryptfs-add-passphrase“ neu eingeben.

Verschlüsselte Container mit Open Suse

Open Suse bietet zwei verschiedene Arten von Containern an: eine Loopback-Datei, die wie eine Partition ins System eingehängt wird, und die Möglichkeit, das Home-Verzeichnis von Benutzern zu verschlüsseln, was ebenfalls in einer Loopback-Datei als Container resultiert. Beides erledigen Sie unter Open Suse 11 und 11.1 komfortabel als root mit Yast: Um eine Container-Datei anzulegen, öffnen Sie in Yast „System, Partitionierer“ und legen dort mit „Crypt-Datei, Crypt-Datei hinzufügen“ einen Container in der gewünschten Größe an. Geben Sie im Feld „Pfadnamen der Loop-Datei“ den gewünschten Speicherort an, etwa /safe, und klicken Sie unten auf die Option „Erstelle Loop-Datei“. Anschließend formatieren Sie den Container mit dem gewünschten Dateisystem und weisen ihm wie einer richtigen Partition einen Einhängepunkt zu, etwa /mnt/safe. Schließlich müssen Sie noch ein Passwort vergeben, das Sie jedes Mal zum Einhängen beim Booten eintippen müssen.

Home-Verzeichnis verschlüsseln

Auch das Verschlüsseln eines Benutzerverzeichnisses erledigen Sie mit Yast als root unter „Sicherheit und Benutzer, Benutzer- und Gruppenverwaltung“. Wenn Sie dort einen Benutzer bearbeiten, finden Sie bei „Details“ die Option „Verschlüsseltes Home- Verzeichnis verwenden“. Diese Verschlüsselung nutzt dm-crypt mit LUKS statt ecryptfs sowie ein Image, das über den Device-Mapper gemountet wird. Falls Sie die Option aktivieren, müssen Sie noch die gewünschte Größe des Containers für das verschlüsselte Home-Verzeichnis angeben und mit „OK“ bestätigen. Alles Weitere richtet Open Suse automatisch ein: Unter /home liegt nun eine Image-Datei <Benutzer>.img und die zugehörige Schlüsseldatei <Benutzer>.key. Nach erfolgreicher Anmeldung des entsprechenden Benutzers hängt Open Suse das Image automatisch als dessen Home-Verzeichnis ein.

Beachten Sie, dass Sie bei falscher Eingabe des Passworts auf der Konsole landen. Nach dem Log-in müssen Sie dann erneut das Passwort zum Entschlüsseln eingeben, das diesem Benutzerkonto bei der ersten Verschlüsselung des Home-Verzeichnisses zugeordnet war. Auf diese Weise verhindert Open Suse, dass sich ein anderer Benutzer mit root-Rechten Zugang zum verschlüsselten Ordner verschafft.

Verschlüsselte Partitionen mit Open Suse

Open Suse unterstützt verschlüsselte Partitionen seit Version 10.1, und seit 10.3 lässt sich ein verschlüsseltes Dateisystem komfortabel mit Yast einrichten. Gehen Sie dort auf „System, Partitionierer“, wählen Sie die gewünschte Festplatte aus, auf der die neue Partition liegen soll, und klicken Sie auf „Hinzufügen“. Den Typ können Sie als „Primäre Partition“ angeben. Nach der Auswahl der Größe fragt Sie Yast, wie Sie die Partition formatieren möchten. Hier klicken Sie „Dateisystem verschlüsseln“ an und bestimmen den Einhängepunkt. Falls auch normale Benutzer die Partition ein- und aushängen können sollen, lässt sich das hier in den fstab-Optionen festlegen.

Alles Weitere funktioniert analog zur Einrichtung einer Crypt-Datei in Yast, inklusive Passworteingabe und der späteren Passwortabfrage während des Systemstarts. Die zwingende Passworteingabe beim Start macht diese Lösung sehr sicher. Wird ein falsches Passwort beim Start eingegeben, kann es vorkommen, dass die grafische Anmeldung anschließend nicht funktioniert und Sie sich auf der Konsole einloggen und die grafische Oberfläche mit „startx“ manuell starten müssen.

Verschlüsselte Partitionen mit Ubuntu

An die nachträgliche Verschlüsselung von Partitionen unter Ubuntu sollten sich nur fortgeschrittene Anwender wagen. Sie benötigen eine leere Partition auf der Festplatte oder auf einem Wechselmedium, die Sie mit Gparted (Gnome) beziehungsweise Qtparted (KDE) einrichten können. Merken Sie sich den Gerätenamen der gewünschten Partition, Sie werden ihn gleich brauchen. Installieren Sie im Terminal mit „sudo apt get-install cryptsetup“ das Verschlüsselungs-Tool für dm-crypt, und achten Sie darauf, dass die Partition nicht gemountet ist.

Achtung: Alle darauf enthaltenen Daten gehen verloren! Laden Sie das Kryptografie-Kernelmodul mit dem Konsolenbefehl: sudo modprobe dm-crypt Bereiten Sie die ausgewählte Partition für das verschlüsselte Dateisystem mit diesem Befehl vor: sudo cryptsetup luksFormat /dev/<Gerätename> Der <Gerätename> entspricht der Partitionskennung, also beispielsweise „sdb1“.

Verschlüsselte Partitionen mit Luks

Sie müssen die Aktion bestätigen und anschließend das Verschlüsselungspasswort zwei Mal eintippen. Danach öffnen Sie die Partition mit dem Device-Mapper: sudo cryptsetup luksOpen /dev/<Gerätename> safe . Damit Sie Daten in der verschlüsselten Partition speichern können, müssen Sie dort ein Dateisystem wie Ext3 anlegen: sudo mkfs.ext3 /dev/mapper/safe .

Den Devicemapper schließen Sie mit sudo cryptsetup luksClose safe wieder. Um ein so verschlüsseltes Laufwerk zu mounten, öffnen Sie es erst mit „sudo cryptsetup luksOpen /dev/<Gerätename> safe“, geben das Passwort ein und hängen es dann mit dem Kommando „sudo mount /dev/mapper/safe <Mount-Punkt>“ an der gewünschten Stelle ins Dateisystem ein.

Tipp: Verschlüsseln mit Truecrypt

Ein plattformübergreifendes, schnelles und sicheres Verschlüsselungs-Tool ist Truecrypt . Mit Truecrypt lassen sich Partitionen, USB-Sticks und externe Festplatten verschlüsseln. Auch verschlüsselte Container-Dateien können Sie damit anlegen.

Den Geschwindigkeitsvorteil gewinnt das Programm dadurch, dass der verwendete Verschlüsselungsalgorithmus AES in Assembler und nicht in C/C++ implementiert ist. Version 6 auch Multi-Threading, um Ver- und Entschlüsselung auf mehrere Prozessorkerne zu verteilen. Die aktuelle, mehrsprachige Version für Linux, Mac OS X, Windows können Sie hier herunterladen.

Der Artikel stammt aus dem PC-WELT Linux-Sonderheft 2/2009. (bw)