Daten wie zum Beispiel Passwoerter, die zuvor von einer entschluesselten Festplatte gelesen wurden, koennen trotz anschliessender Verschluesselung innerhalb der Swap-Partition unverschluesselt im Klartext ausgelagert werden. Das gilt auch fuer Daten, die manuell eingegeben wurden. Eine Auslagerung kann auch stattfinden, obwohl der zur Verfuegung stehende RAM-Speicher nicht ausgeschoepft wurde. Daher hat ein Angreifer ueber eine nicht verschluesselte Swap-Partition die Moeglichkeit, Inhalte, die durch den Arbeitsspeicher ausgelagert wurden auszulesen. Das folgende Shell Script (boot.swap) erzeugt bei jedem Start zunaechst ein loopback device und ein AES-Schluessel. Anschliessend wird eine verschluesselte Swap-Partition (AES256 verschluesselt) innerhalb der loopback device erstellt. Beim Ausschalten des Rechners wird der loopback device entfernt. Die ausgelagerten Daten sind nicht mehr wiederherstellbar, da der zufaellig erzeugte Schluessel verloren geht. Beim naechste Start wird ein neuer Schluessel, loopback device und swap-Partion erstellt usw. Fuer die Nutzung des Shell Scripts muessen Kernel-Module geladen werden.
Yast -> Editor fuer /etc/sysconfig-Dateien -> System -> Kernel -> MODULES_LOADED_ON_BOOT aes sha256 sha1 cryptoloop
Liste der verfuegbaren Kernelmodule
modprobe -l
Haendig koennen Module mit dem folgenden Befehlt eingetragen werden:
modprobe aes sha256 sha1 cryptoloop
Die geladenen Module kann man sich mit dem folgenden Befehl anzeigen lassen
cat /proc/crypto
Belegte loopback devices kann man sich mit dem folgenden Befehlt anzeigen lassen
cat /proc/partitions
Vor dem Einsatz des Shell Scripts muss die Swap-Partition aus /etc/fstab entfernt werden.
Das Script muss an die mit einem Fragezeigen markierten Stellen angepasst werden
....
/bin/dd if=/dev/urandom bs=1b count=999 | /sbin/losetup -e aes256 -p 0 /dev/loop? /dev/hdj? &> /dev/null
/sbin/mkswap /dev/loop? &> /dev/null
swapon /dev/loop? &> /dev/null
...
/sbin/losetup -d /dev/loop? &> /dev/null
mkswap /dev/hdj? & > /dev/null
...
Das Script ueberschreibt /etc/init.d/boot.swap