Festplatte Verschlüsseln (Fortgeschrittene)
Der folgende Artikel, ist in Zusammenarbeit mit GeNTooFReak entstanden.
Im folgenden Artikel möchte ich noch mal auf die Verschlüsselung von Festplatten eingehen, hier besonders auf Themen für Fortgeschriettene, wie z.B. verschiedene Ciphersuiten, verschiedene Passphrases und Backup von Luks Header Daten.
Ciphersuiten
Im Anfängerartikel haben with den Cipher aes-xts-plain64 verwendet, was AES-256Bit ist, in Verwendung mit
- XEX-based tweaked-codebook mode with ciphertext stealing (XTS)
- Plain64 => 4. Generation Mechanismus der den 64 Bit Index Sektor direkt durch den Verkettungsalgorithmus jagt
Jedoch kennt cryptseup noch einige andere Ciphersuiten, die man durch den Befehl
cryptsetup benchmark
sich anzeigen lassen kann, und gleichzeitig ablesen kann, welcher Algorithmus am schnellsten auf dem jeweiligen PC ist. Auf Grundlage der unterschiedelichen CPU's die es aktuell auf dem Markt gibt, die unterschiedliche Standards unterstützen, fallen die Ergebnisse bei jedem PC anders aus. Bei mir bekomme ich folgendes Ergebnis:
root@DebLin:/home/malte# cryptsetup benchmark
# Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen.
PBKDF2-sha1 1236528 iterations per second for 256-bit key
PBKDF2-sha256 1409376 iterations per second for 256-bit key
PBKDF2-sha512 1114320 iterations per second for 256-bit key
PBKDF2-ripemd160 919803 iterations per second for 256-bit key
PBKDF2-whirlpool 619725 iterations per second for 256-bit key
argon2i 4 iterations, 1003288 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id 4 iterations, 992248 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 914,7 MiB/s 2718,1 MiB/s
serpent-cbc 128b 75,6 MiB/s 570,1 MiB/s
twofish-cbc 128b 168,0 MiB/s 289,0 MiB/s
aes-cbc 256b 699,2 MiB/s 2243,0 MiB/s
serpent-cbc 256b 78,6 MiB/s 572,5 MiB/s
twofish-cbc 256b 168,9 MiB/s 296,2 MiB/s
aes-xts 256b 1536,2 MiB/s 1520,9 MiB/s
serpent-xts 256b 534,2 MiB/s 552,9 MiB/s
twofish-xts 256b 299,5 MiB/s 303,1 MiB/s
aes-xts 512b 1369,9 MiB/s 1378,5 MiB/s
serpent-xts 512b 557,8 MiB/s 546,9 MiB/s
twofish-xts 512b 297,1 MiB/s 303,8 MiB/s
Wie man erkennt, ist bei mir im 512Bits Bereich aes-xts das schnellste Ergebnis. Bei GeNtooFReaK ist es zum Beispiel serpent-xts. Hier muss man für sich persönlich die Schnittmenge zwischen Schnelligkeit, Sicherheit und Wunschalgorithmus treffen.
Passphrases
cryptsetup unterstützt mehrere Passwörter für ein Volumen/Container.
KeySlots
cryptsetup verwaltet die Passwörter in KeySlots, bedeutet beim Aufrufen des folgenden Befehls:
cryptsetup luksDump /dev/sdb1
Sollte bei einem Passwort, nur ein Key Slot belegt sein:
Key Slot 0: ENABLED
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED
Passwort ändern
Natürlich kann man auch das aktuelle Passwort ändern. Um das aktuelle Passwort zu ändern, gibt man einfach folgenden Befehlt ein:
cryptsetup luksChangeKey /dev/sdb1
/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort eines Slots ändern.
Passwort hinzufügen
Um ein weiteres Passwort zum öffnen des Containers/Volumens hinzuzufügen, benötigen wir folgenden Befehl:
cryptsetup luksAddKey /dev/sdb1
/dev/sdb1 ist natürlich der entsprechende Container. Durch das angeben des Slots --key-slot 2, kann man gezielt das Passwort zu einem bestimmten Slot hinzufügen.
Passwort löschen
Um ein Passwort zu löschen, müssen wir einen entsprechnenden KeySlot angeben:
cryptsetup luksKillSlot /dev/sdb1 2
/dev/sdb1/ ist natürlich der entsprechende Container.
Backup Header
Luks bietet die Möglichkeit, die Header Informationen vom Container/Volume zu sichern. So können selbst bei beschädigeten Header Informationen (Jemand steckt unbedacht die Festplatte an einen Windows Pc und klickt auf reparieren) wiederhergestellt werden.
Backup
Um ein Backup durchzuführen benötigen wir folgenden Befehl:
cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup
Restore
Um die Informationen wiederherzustellen, benötigen wir folgenden Befehl:
cryptsetup luksHeaderRestore /dev/sdb1 --header-backup-file /home/malte/sdb1-header.backup
---
Ich hoffe die folgenden Informationen helfen euch, noch ein bisschen besser Luks und die Verschlüsselung von Festplatten zu verstehen.