ubuntuusers.de

ubuntuusers.deWikiLUKS

LUKS

Achtung!

Ohne ein sicheres Kennwort nutzt die stärkste Verschlüsselung nichts! Wie man Passwörter am besten wählt, steht hier: Sicherheits 1x1

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./logo.png Diese Anleitung geht auf die Erstellung und Wartung von verschlüsselten Datenträgern mittels LUKS - Linux Unified Key Setup {en} - ein. Es handelt sich um das Standardverfahren zur Festplattenverschlüsselung unter Linux. Dabei werden alle nötigen Informationen zum Öffnen einer verschlüsselten Partition oder Container-Datei in dieser gespeichert. Das erlaubt es auch, beim Anschließen eines externen Datenträgers mit verschlüsselten Partitionen diese nach Passwortabfrage automatisch einzubinden.

Es wird hier nur auf die Verwendung von LUKS eingegangen. Für eine Schritt-für-Schritt-Anleitung zum Verschlüsseln des Systems bitte die Artikel Daten verschlüsseln und System verschlüsseln hinzuziehen.

Hinweis:

Alle folgenden Befehle benötigen Root-Rechte. Wenn man nicht sudo vor das betreffende Kommando setzen möchte, kann man temporär mit sudo -s eine Root-Shell öffnen. Diese wird nach Abschluss der Arbeiten mit dem Befehl exit wieder geschlossen.

Vorbereitung

Zuerst wird dieses Paket installiert [1]:

  • cryptsetup

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install cryptsetup 

sudo aptitude install cryptsetup 

Anschließend wird das benötigte Kernelmodul mittels des folgenden Befehls [2] geladen:

sudo modprobe dm-crypt 

Damit sollte die Vorbereitung abgeschlossen sein. Zukünftig werden alle benötigen Module automatisch geladen.

Verwendung

Hier wird ein Auszug der wichtigsten LUKS-Funktionen dargestellt. Für weitere Informationen sei auf die entsprechenden Dokumentationen wie u.a. die Manpage von cryptsetup verwiesen.

Erstellen

Achtung!

Sollte nicht das gesamte System verschlüsselt werden, besteht die Gefahr, das persönliche Daten in unverschlüsselten Bereichen gespeichert werden. Um dieses Risiko zu minimieren sollte der Artikel Vorbereitung zur Teilverschlüsselung durchgearbeitet werden. Ohne diese Maßnahmen ist die Verschlüsselung möglicherweise wirkungslos.

Außerdem ist aus Sicherheitsgründen empfehlenswert die Partition ein mal mit Zufallszahlen zu überschreiben, vor allen Dingen, wenn auf dieser vorher unverschlüsselte Daten gespeichert waren [6]. Ansonsten sind unter Umständen viele Dateien nach dem Verschlüsseln noch auslesbar.

Zum Erstellen eines LUKS-Geräts wird eine zu überschreibende Partition erzeugt oder ausgewählt [3]. Daraufhin wird dieser Befehl ausgeführt, wobei GERÄTEDATEI durch den entsprechenden Namen ersetzt werden muss, z.B /dev/sde9:

Achtung!

Alle bisherigen Daten auf dem betreffenden Gerät gehen verloren!

Der Datenträger muss vorher ausgehängt werden da ansonsten die Partition unbrauchbar wird!

  1. Zuerst den Anfang der zu verschlüsselnden Partition mit Zufallsbytes überschreiben:

    sudo dd if=/dev/urandom bs=1M count=8 of=GERÄTEDATEI 
  2. Danach die Partition verschlüsseln:

    sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 GERÄTEDATEI 

    Experten-Info:

    XTS unterstützt Verwaltungsschlüssel von 128 oder 256 Bit. 512 heißt in dem Fall, dass sowohl AES als auch XTS die maximale Schlüssellänge von 256 Bit verwenden.

    Um eine höhere Lese-/Schreibgeschwindigkeit zu erzielen, kann auch stattdessen 256 eingesetzt werden - das entspricht einer 128 Bit Verschlüsselung. Dies ist z.B. für langsamere Systeme empfehlenswert.

    Alternativ ist es möglich, den Verschlüsselungsalgorithmus Twofish zu verwenden. Dazu wird aes-xts-plain durch twofish-xts-plain ersetzt.

  3. Zuweisung der verschlüsselten Partition zu einer Gerätedatei (nach Passworteingabe: Anlegen einer Gerätedatei /dev/mapper/usb-crypt, über die der verschlüsselte Inhalt zugänglich ist):

    sudo cryptsetup luksOpen GERÄTEDATEI usb-crypt  
  4. Formatieren des Laufwerks mit EXT4:

    sudo mkfs.ext4 /dev/mapper/usb-crypt 
  5. Freigabe Gerätedatei:

    sudo cryptsetup -v luksClose /dev/mapper/usb-crypt 

Methode wie oben: Start erfolgt mit Passwortabfrage

Beim Start ohne Passwortabfrage

Es gibt drei mehr oder minder geeignete Varianten zum Öffnen von LUKS-Geräten beim Start ohne extra Passworteingabe.

LVM

Es ist möglich eine große Partition mit LUKS zu verschlüsseln und in dieser ein LVM-Gerät anzulegen. In diesem können beliebig viele logische Partitionen erstellt werden, die alle mittels einer Passworteingabe freigeschaltet werden.

Der Einrichtungsvorgang bei einer Neuinstallation ist im Artikel System verschlüsseln beschrieben.

Schlüsselableitung

Seit Ubuntu 8.04 gibt es das sogenannte Decrypted-Derived-Script, das den Schlüssel aus einem bereits geöffneten LUKS-Gerät berechnen kann. Mit diesem können nach der Freischaltung des Ursprungsgeräts beliebig viele geöffnet werden.

Auf die generelle Verwendung geht der Artikel LUKS/Schlüsselableitung und auf den Einrichtungsvorgang bei einer Neuinstallation System verschlüsseln/Schlüsselableitung ein.

Schlüsseldatei

Des Weiteren ist es möglich, LUKS-Geräte mit einer Schlüsseldatei zu öffnen. Da diese jedoch das Passwort im Klartext enthält, wird von dieser Variante abgeraten.

Bei der Anmeldung

Außerdem ist es möglich mittels eines extra PAM-Plugins ein LUKS-Gerät automatisch beim Login einzuhängen, wenn einer der LUKS-Schlüssel identisch mit dem Anmeldepasswort ist. Die Anleitung dazu würde den Rahmen dieses Artikels sprengen, es ist aber am Beispiel der Home-Partition hier beschrieben.

Nach der Anmeldung

Wie schon oben unter "Öffnen" erwähnt können LUKS-Geräte unter Gnome und KDE eingebunden werden. Das Passwort kann dabei im Falle von GNOME im Schlüsselbund, bei KDE in der KDE Brieftasche hinterlegt werden, so dass LUKS-Geräte ohne extra Abfrage eingehängt werden können.

Schließen

Sobald das enthaltene Dateisystem nicht mehr eingehängt ist oder anderweitig verwendet wird, kann das LUKS-Gerät wie folgt geschlossen werden:

sudo cryptsetup luksClose GERÄTEDATEI 

Passwörter verwalten

LUKS bietet insgesamt acht Speicherplätze (genannt "Slot" 0-7) für änderbare Passwörter, die jeweils den Zugriff auf die Daten erlauben. Die belegten Speicherplätze und Headerinformationen lassen sich mittels dieses Befehl überprüfen:

sudo cryptsetup luksDump GERÄTEDATEI 

Passwort hinzufügen

Zuerst das alte Passwort eingeben, dann das neue.

sudo cryptsetup luksAddKey GERÄTEDATEI 

Passwort löschen

Ein bekanntes Passwort kann mit folgendem Befehl entfernt werden:

sudo cryptsetup luksRemoveKey GERÄTEDATEI 

Will man hingegen einen bestimmten Slot löschen, kann man dies mit folgendem Befehl tun:

sudo cryptsetup luksKillSlot GERÄTEDATEI SPEICHERPLATZ 

Alternativ muss wie folgt ein Slot entfernt werden:

sudo cryptsetup luksDelKey GERÄTEDATEI SPEICHERPLATZ 

Passwort ändern

Zum Ändern eines Passworts wird zuerst das neue Passwort hinzugefügt und anschließend das alte entfernt.

Header sichern

Um Informationen über die Partitionierung innerhalb des Containers und der Keyslots zu sichern, empfiehlt es sich ein Backup vom LUKS-Header (außerhalb des verschlüsselten Containers) anzulegen. Wird dieses Backup entwendet, ist ein Zugriff auf den verschlüsselten Container trotzdem nur mit Schlüsselinformationen möglich.

Achtung!

Ein gesicherter Header hängt von den Passwörtern ab, die gerade zu dem Zeitpunkt der Sicherung aktiv sind. Das erfordert einerseits, dass man zur Nutzung der Sicherung diese noch kennen muss. Andererseits bedeutet es auch, dass bekannt gewordene Passwörter, selbst wenn sie am Gerät geändert wurden, mit der Sicherung noch für den Zugriff auf das Gerät verwendet werden können.

Entsprechend ist es empfehlenswert, die Sicherung des Headers unter Verschluss zu halten und nach jeder Änderung am Gerät unmittelbar zu aktualisieren.

sudo cryptsetup luksHeaderBackup GERÄTEDATEI --header-backup-file BACKUP-DATEI 

Zur Wiederherstellung wird folgender Befehl verwendet:

sudo cryptsetup luksHeaderRestore GERÄTEDATEI --header-backup-file BACKUP-DATEI 

Automatisiertes Verschlüsseln mit Alternate-CD

Es kann auch mit Hilfe der Alternate-CD eine neue Partition im Nachhinein verschlüsselt werden. Siehe dazu Alternate Installation - Datenträger verschlüsseln.

Achtung!

Bei dieser Vorgehensweise sollte man sehr vorsichtig sein, um nicht irrtümlich eine Systempartition zu beschädigen! Eine Datensicherung ist sehr zu empfehlen.

Insbesondere "Änderungen auf die Festplatte schreiben"-Abfragen sind immer sehr genau zu lesen, damit keine unbeabsichtigten Änderungen am System vorgenommen werden!

Hinweis:

Um die Änderungen der Partitionierung übernehmen zu können ohne zu installieren, wählt man am Schluss z.B. "Logical Volume Manager konfigurieren" womit eine Abfrage erzwungen wird, ob man die anstehenden Änderungen übernehmen möchte. Anschließend kann die Installation abgebrochen werden.

Diese Revision wurde am 6. Februar 2014 19:41 von Lsf Lf erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, System, Sicherheit