Verschlüsselung der Swap-Partition unter openSuse 10.2

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.