LUKS-Trim

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

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.

Benutzer:Christian