LUKS-Trim
Inhaltsverzeichnis
Problemstellung
LUKS verhindert die Weitergabe von Trim Informationen an die SSD. Die Überlegung dahinter besteht darin, dass ein Angreifer möglichst nicht sehen soll, welche Bereiche eines Massenspeichers genutzt werden. Aus diesem Grund wird bei der folgenden Anleitung die Sicherheits von LUKS beeinträchtigt.
Die für diese Anleitung mind. erforderliche cryptsetup Version 1.4.2 steht zum Zeitpunkt der Erstellung nur in den wenigsten Distributionen zur Verfügung.
Fedora 17
Fedora 17 ist die erste Fedora Version, die über diese Funktion verfügt.
Normalerweise sollte es genügen, in der /etc/crypttab folgendes einzutragen:
luks-<uuid> UUID=<uuid> none discard
Derzeit funktioniert das nicht, da Fedora17 noch eine β-Version ist, könnte das noch ein Bug sein. Das bedarf noch einer Verifizierung
Bis dahin muss man die Datei /usr/lib/dracut/modules.d/90crypt/cryptroot-ask.sh überarbeiten:
--- cryptroot-ask.sh.ORIG 2012-04-05 13:54:38.000000000 +0200 +++ cryptroot-ask.sh 2012-05-19 07:45:10.474058263 +0200 @@ -105,10 +105,10 @@ if [ $ask_passphrase -ne 0 ]; then luks_open="$(command -v cryptsetup) luksOpen" ask_for_password --ply-tries 5 \ - --ply-cmd "$luks_open -T1 $device $luksname" \ + --ply-cmd "$luks_open -T1 $device $luksname --allow-discards" \ --ply-prompt "Password ($device)" \ --tty-tries 1 \ - --tty-cmd "$luks_open -T5 $device $luksname" + --tty-cmd "$luks_open -T5 $device $luksname --allow-discards" unset luks_open fi
Das Patchfile sollte alle notwendigen Änderungen durchführen. Das Orginalfile hat die SHA1 Prüfsumme 12942258d07f5f4a2a31564cdd1f544db9c23944. Vorher bitte dies prüfen.
Nach dem Reboot kann man mit
dmsetup table /dev/mapper/luks-<uuid> --showkeys
den Erfolg prüfen. Da müsste dann so etwas wie
0 123412341 crypt aes-xts-plain64 *** 0 8:3 4096 1 allow_discards
kommen.
Ubuntu 12.04
Noch zu erstellen
Filesystem
Damit überhaupt etwas passiert, muss Discard auch im Filesystem angegeben werden
/dev/mapper/vg_sys-root / ext4 noatime,nodiratime,discard 1 1
Um unnötige Schreiboperationen auf der SSD zu vermeiden sind auch noatime und nodiratime gesetzt.
Warnung
Auch wenn es sich bei diesem Aspekt nur um Security By Obscurity handelt, möchte ich darauf hinweisen, dass die ungenutzten Bereiche der Platte von den genutzten Bereichen damit unterscheidbar werden. Das LUKS Verfahren selbst wird dadurch jedoch nicht kompromittiert.