Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – VI – Key-Slots, PBKDF2- und MK-Iterationen

Im letzten Beitrag meiner Serie zu Voll-Verschlüsselung eines Laptops und angrenzenden Themen

Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – I – Vorüberlegungen
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – II – Vorüberlegungen zur Virtualisierung
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – III – Zugriffs-Layer
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – IV – Disk-Layout
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – V – kryptierte Partitionen und Alignment

hatten wir LVM-Volumes angelegt und mit LUKS verschlüsselt. Dabei tauchte das Thema der Anzahl von PBKDF2-Iterationen unter LUKS in zwei Ausprägungen auf:

  • Anzahl der Iterationen pro Key-Slot. Diese Zahl sollte aus Sicherheitsgründen möglichst hoch sein.
  • Anzahl der Iterationen für den Master-Key-Digest (MK-Digest; hash-basierter Fingerprint). Weniger sicherheitsrelevant.

Kann man diese Iterationen individuell steuern oder im Nachhinein irgendwie ändern? Die Antwort ist: Für die sog. Key Slots schon, für den MK-Digest nicht ohne Neu-Anlage des LUKS-Volumes (mit Datensicherung und erneuter Einspielung) und damit Neu-Verschlüsselung oder Neuanlage des LUKS-Headers zum gleichen Master-Key.

Es gibt inzwischen zwar ein Kommando “cryptsetup-reencrypt”, das einen Lauf zur Recryptierung aller vorhandenen Daten in situ durchführt. Die man-Seite bietet aber auch für “cryptsetup-reencrypt” keinen Parameter zur separaten Festlegung der Iterationszahl für den MK-Digest an. Das Kommando gilt zudem als experimentell. Ich selbst habe es noch nie ausprobiert.

Die Iterationsanzahl des MK-Digest kann man beim Anlegen eines LUKS-Devices (indirekt) festlegen. Änderungen erfordern eine Neuanlage oder einen Re-Encrypt-Prozess. Hält man die Anzahl der Iterationen für den Digest für zu klein, sollte man also am besten gleich zu Anfang gegensteuern. Das ist das erste Thema dieses Beitrags.

Das zweite Thema ist, wie man mit Hilfe einer temporären Umschlüsselung die Iterationsanzahl für einen “Key Slot” ändert. Dabei sehen wir nebenbei auch, wie man einen weiteren “Key Slot” anlegt.

Das dritte Thema ist ein Backup des LUKS-Headers.

Zwischenzeitlich hat mich eine Mail erreicht, in der sich ein Leser vor einer weiteren Durchführung von LUKS-Befehlen eine kurze, prägnante Erläuterung von LUKS-Prinzipien und der sog. Key-Slots wünschte. Die nachfolgenden Schritte erfordern tatsächlich ein klares Verständnis des LUKS-Verfahrens. Ich stelle daher eine knappe Zusammenfassung von LUKS an den Anfang.

Continue reading

Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – V – kryptierte Partitionen und Alignment

Nach den Überlegungen in den letzten Artikeln dieser Serie

Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – I – Vorüberlegungen
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – II – Vorüberlegungen zur Virtualisierung
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – III – Zugriffs-Layer
Laptop – SSD mit dm-crypt/Luks -Verschlüsselung und Opensuse Leap 15 – IV – Disk-Layout

sind wir gut gerüstet, um für Tests zur Voll-Verschlüsselung eines Laptops passende LVM-Volumes anzulegen und mit einem “LUKS on LVM”-Layer zu versehen. (LVM on LUKS wenden wir uns später zu). Ich sage aus guten Gründen “Tests” – nicht finale Installation. Es gibt Einiges, was man falsch machen kann oder was zu unpraktikablen Konsequenzen führt. Im Besonderen, wenn man sich ein wenig abseits der normalen Installationsprozeduren (hier von Opensuse) bewegt.

Ich werde nachfolgend den Umgang mit einer jungfräulichen SSD diskutieren. Arbeitet ihr nicht mit einer leeren SSD/HDD und wollt ihr alte Installationen nicht verlieren, empfehle ich vorherige vollständige Backups – mit zusätzlichem Aufschreiben von UUIDs plus ggf. separatem Backup der Verzeichnisse “/etc/” und “/boot”. Der Verlust vorhandener Daten ist bei Fehlern möglich.

Bevor man eine vorhandene Laptop-SSD mit funktionstüchtigen Installationen komplett durch eine neue SSD ersetzt, liegt es nahe, die Voll-Verschlüsselung zunächst separat zu testen. Dazu nutzt man die neue SSD vorübergehend als externes, bootbares Laufwerk am USB-3-Anschluss eines laufenden Linux-Systems. Im besten Fall kann man die Test-Installation nach einem Einbau in den Laptop und Anschluss an den dortigen SATA-III-Bus direkt weiter nutzen. Dachte ich so …

Dieses Vorgehen führte bei mir aber zu Problemen mit dem Alignment der anzulegenden Partitionen und Volumes. Das war durchaus lehrreich. Ich werde deshalb darauf eingehen, obwohl es unser Kernthema nur am Rande berührt. Ein weiteres wichtiges Thema dieses Artikels sind die Einstellungen zur Verschlüsselung. Dabei ist vor allem die Anzahl der “PBKDF2”-Iterationen interessant.

Hinweis: Diejenigen, die sich mit der Funktionsweise von LUKS noch nicht so gut auskennen, mögen jetzt einen Blick in den Artikel
crypt/Luks – Begriffe, Funktionsweise und die Rolle des Hash-Verfahrens – I
und den Nachfolge-Artikel werfen. Dort sind etliche weiterführende Links angegeben. Hilfreich ist ferner ein Blick in die man-Seiten zum Kommando “cryptsetup“. LVM-Grundkenntnisse setze ich voraus.

Continue reading