Home / LinuxUser / 2003 / 02 / Informationssicherheit unter Linux

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Paranoia für Anfänger

Informationssicherheit unter Linux

01.02.2003 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.

Der größte Unterschied zwischen den beiden Lösungen sind die Programme, die Secure Delete neben srm mitbringt. So lässt sich mit sfill der gesamte freie Platz einer Partition sicher leeren, und swap löscht auch den Swap-Inhalt, der sonst leicht aus dem Hauptspeicher ausgelagerte Informationen preisgeben könnte. Für extrem paranoide Nutzer bietet smem zusätzlich die Möglichkeit, den Hauptspeicher selbst zu überschreiben.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

504 Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...