Aus LinuxUser 02/2003

Informationssicherheit unter Linux

Paranoia für Anfänger

Da kann die Firewall noch so gut eingerichtet sein: Sobald ein Angreifer direkten Zugriff auf den eigenen Computer hat, liegen (spätestens nach dem Ausbau der Festplatte) alle Daten offen. Schützen kann man sich nur mit Verschlüsselungs-Software, die wir hier vorstellen wollen.

Verschlüsseln

Gerade wenn es um eine größere Anzahl von Dateien geht, ist es sinnvoll, nicht alle Files mühsam einzeln zu chiffrieren, sondern gleich ein verschlüsseltes Dateisystem anzulegen. Glücklicherweise ist dafür keine eigene Partition nötig, denn über das Loopback-Device können auch normale Dateien als blockorientierte Geräte (wie z. B. Festplattenpartitionen) gemountet und während des „Durchschleifens“ nebenbei noch verschlüsselt werden. Leider unterstützt der Standard-Loop-Treiber wegen der kryptographischen Exportbeschränkungen einiger Länder von Haus aus nur einen XOR-Algorithmus, der mit etwas Glück vor neugierigen Geschwistern schützt, nicht aber vor versierten Angreifern. Deshalb ist es nötig, den Treiber mit Patchesum weitere Chiffren zu erweitern.

Die beste Möglichkeit dazu bot lange Zeit das Projekt International Kernel Patch alias CryptoAPI [1], welches den Kernel um viele Algorithmen erweitert und somit u. a. verschlüsselte Dateisysteme ermöglicht. Allerdings ist die Entwicklung von CryptoAPI seit dem Erscheinen von Linux 2.4 nur sehr schleppend vorangegangen und die Installation vergleichsweise kompliziert. Die durch den Stillstand entstandene Lücke wurde allerdings schnell von Loop-AES [2] geschlossen, das sich – wie der Name schon sagt – auf AES als Chiffre beschränkt. AES (Advanced Encryption Standard) trug ursprünglich den schönen Namen Rinjdael und wurde nach monatelanger Untersuchung vom National Institute of Standards and Technology (NIST) und vielen anderen Kryptoanalytikern zum Nachfolger von DES bestimmt; der Algorithmus ist also relativ vertrauenswürdig.

Bevor Loop-AES installiert werden kann, muss der Kernel-Quellcode unter /usr/src/linux entpackt, konfiguriert und kompiliert werden, da Loop-AES Zugriff auf die ungepatchte Version von loop.c und einige Einstellungen des Kernels braucht. Bei der Konfiguration des Kernels ist zu beachten, dass Module an sich bzw. der Kernel Module Loader aktiviert und der Loopback device support unter Block Devices deaktiviert werden müssen. Nachdem der neue Kernel mitsamt seinen Modulen installiert ist, kann Loop-AES in einem eigenen Verzeichnis entpackt und mit make kompiliert werden. Der bestehende Kernel-Quelltext wird dabei nicht verändert, da Loop-AES nur eine lokale Kopie von loop.c patcht (bzw. auf eine bereits gepatchte Version zurückgreift) und diese dann als Modul installiert. Leider reicht die AES-Unterstützung im Kernel allein nicht aus – auch die Programme mount, losetup und swapon müssen angepasst werden. Letzteres Programm wird allerdings nur benötigt, falls eine verschlüsselte Swap-Partition eingesetzt werden soll. Die Programme sind allesamt Teil von Util-Linux, das sich unter [3] findet. Die heruntergeladene Version des Archivs muss dabei dem Patch von Loop-AES entsprechen, damit das Kompilieren funktioniert. Falls die Patches in einem anderen Verzeichnis liegen, muss der Pfad dementsprechend angepasst werden.

patch -p1 < ../util-linux-2.11y.diff
export CFLAGS=-O2
./configure
make SUBDIRS="lib mount"

Danach befinden sich die benötigten Programme im Unterverzeichnis mount. Es ist davon abzuraten, die Programme tatsächlich unter /bin bzw. /sbin zu installieren, also die ursprünglichen Versionen zu überschreiben, da dadurch Konflikte mit dem Rest des Systems entstehen können. Sicherer ist es, die Programme unter alternativen Namen zu installieren:

install -m 4755 -o root mount /bin/aes-mount
install -m 4755 -o root umount /bin/aes-umount
install -m 755 losetup /sbin/aes-losetup

Diese Vorgehensweise hat auch den Vorteil, dass die Programme nicht bei jedem System-Upgrade überschrieben werden. Einziger Nachteil ist, dass die Test-Routine make tests im Loop-AES Verzeichnis nichts von den alternativen Namen weiß und somit immer eine Fehlermeldung ausgibt.

Jetzt ist es endlich soweit, und das verschlüsselte Dateisystem kann angelegt werden. Dazu erstellt man zuerst eine neue Datei, die später das verschlüsselte Dateisystem enthalten soll. Alternativ kann auch eine Festplattenpartition benutzt werden; dann entfällt der folgende Schritt. Da sich die Datei nicht nachträglich vergrößern lässt, darf sie ruhig etwas umfangreicher ausfallen:

dd if=/dev/urandom of=./geheim bs=1024k count=20

Mit diesem Befehl werden Zufallsdaten aus /dev/urandom in die Datei ./geheim geleitet, wobei sich die Größe aus dem Produkt von bs und count ergibt – in unserem Beispiel sind das 20 MB. /dev/urandom nutzt genau wie /dev/random diverse systeminterne Ereignisse, um Zufallsdaten zu generieren. Während /dev/random aber blockiert, sobald nicht mehr genug Ausgangsdaten vorhanden sind, wird die Ausgabe von /dev/urandom über einen Pseudozufahlszahlengenerator (PRNG) weiter gefüttert, was für unsere Zwecke mehr als ausreicht. Im nächsten Schritt wird das Loopback-Device /dev/loop1 eingerichtet. Falls eine Partition verschlüsselt werden soll, muss statt der Datei das entsprechende Device (z. B. /dev/hdb7) angegeben werden. Dabei gehen natürlich alle auf dieser Partition gespeicherten Daten verloren.

aes-losetup -e AES128 -T /dev/loop1 ./geheim

losetup sollte jetzt nach einem Passwort aus mindestens 20 Zeichen fragen. Benutzt man statt AES128 die Variante mit 192- oder 256-Bit-Schlüsseln, steigt die Mindestlänge der Passphrase auf 32 bzw. 43 Zeichen. Sobald das Passwort akzeptiert wurde, kann auf dem eingerichteten Device ein Dateisystem erstellt und das Gerät danach wieder abgemeldet werden:

mkfs -t ext2 /dev/loop1
aes-losetup -d /dev/loop1

Andere Dateisysteme sind natürlich auch möglich, aber ext2 ist in diesem Kontext die beste Wahl. Zum Schluss muss noch ein Eintrag in die Datei /etc/fstab hinzugefügt werden, um in Zukunft das Mounten zu erleichtern – der angegebene Mountpointist natürlich frei wählbar:

/verzeichnis/geheim /mountpoint ext2 defaults,noauto,loop=/dev/loop1,encryption=AES128 0 0

Mit dem entsprechenden Passwort sollten Sie auf das Dateisystem jetzt via aes-mount /mountpoint zugreifen können.

Vernichten

Bevor jetzt aber alle geheimen Daten auf das verschlüsselte Dateisystem verschoben werden, sollte man sich Gedanken darüber machen, wie man die unverschlüsselten Dateien wirkungsvoll vernichtet. Es reicht nämlich bei weitem nicht aus, sie zu löschen, da eine gelöschte Datei nur zum Überschreiben freigegeben ist. Auch wenn sie nicht mehr im Dateisystem angezeigt wird, befinden sich die Daten noch auf der Festplatte und lassen sich mit geringem Aufwand wiederherstellen. Etwas schwieriger wird es, wenn die Daten überschrieben wurden, doch mit Hilfe von hochauflösenden Mikroskopen lassen sich selbst noch nach mehrmaligem Überschreiben Daten extrahieren, da die Genauigkeit der Leseköpfe nur bis zu einem gewissen Grad reicht und so an den Rändern der magnetisch kodierten Bits Spuren ihrer Vorgänger zurückbleiben. Deshalb ist es nötig, die ursprünglichen Daten wiederholt mit zufälligem Rauschen und speziell auf die verschiedenen Datenkodierungsverfahren zugeschnittenen Mustern zu überschreiben, bevor sie wirklich unwiederbringlich gelöscht sind.

Für diesen Zweck sind besonders Wipe [4] und Secure Delete [5] zu empfehlen, wobei sich dieser Artikel auf die Wipe-Version von Berke Durak und nicht auf das gleichnamige Programm von Tom Vier [6] bezieht.

srm, Secure Deletes Pendant zu rm, überschreibt jede Datei standardmäßig 38 mal, während Wipe sich mit 34 Durchläufen begnügt; ob die vier Extradurchläufe einen großen Unterschied machen, ist zu bezweifeln. Beide Programme ändern weiterhin den Namen der Datei, um auch den Dateinamen zu vernichten, und sind in der Lage, Verzeichnisse rekursiv abzuarbeiten. Es ist auch jeweils ein schneller (aber unsicherer) Modus vorhanden, der bei Wipe mit dem Parameter -q und bei srm mit -f aktiviert wird.

LinuxUser 02/2003 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: