VOICE-Homepage: http://de.os2voice.org | Mai 2004 Inhaltsverzeichnis < Vorherige Seite | Nächste Seite > Artikelverzeichnis editor@os2voice.org

## AEFS - ein verschlüsselndes Dateisystem für OS/2 und eComStation

Von Robert Henschel © Mai 2004

### Einführung

Es gibt viele Möglichkeiten persönliche Daten unter OS/2 zu schützen. Bei vielen Programmen kann man Dateien mit einem Passwortschutz versehen, dazu gehören zum Beispiel Lotus Word Pro oder auch OpenOffice.org. Man gibt beim Speichern von Dokumenten einfach ein Passwort ein, und dann kann man das Dokument nur noch öffnen wenn man das Passwort kennt. (Natürlich kann man sich auch mit Crack-Programmen Zugriff zu den Daten verschaffen. Diese Tools sind vielleicht nicht für OS/2 verfügbar, aber das hindert niemanden daran sie gegen "OS/2-Dokumente" einzusetzen!)
Handelt es sich nicht um Dokumente, so kann man die Dateien auch mit "ZIP" schützen. Man packt alle zu schützenden Dateien in ein ZIP-Archiv und versieht dieses dann mit einem Passwort. Unter OS/2 kann man dafür zum Beispiel PKZIP verwenden. (Gerade bei ZIP-Archiven sei hier noch einmal darauf hingewiesen das es fertige Passwort-Cracker für ZIP-Archive gibt!)

Beide Verfahren haben aber auch Nachteile. Entweder muss man darauf vertrauen, dass die Hersteller von Bürosoftware keine Fehler gemacht haben und das Daten in Passwort-geschützten Dokumenten auch sicher sind. Oder man muss vor jeder Bearbeitung die Daten aus einem Archiv entpacken und später wieder verpacken. (Und natürlich die Kopie, die man für das Bearbeiten erstellt hat, wieder löschen!)
Eine elegantere Lösung bieten verschlüsselnde Dateisysteme. Beispiele für verschlüsselnde Dateisysteme sind zum Beispiel das hier behandelte AEFS oder auch das Cipher Plug-in für NetDrive. Verschlüsselnde Dateisysteme verschlüsseln transparent alle Daten die auf einem bestimmten Laufwerk gespeichert werden. Sie sind unabhängig von den Programmen die man zum Bearbeiten der Daten verwendet.

### Beschreibung von AEFS

AEFS ist ein installierbares Dateisystem für OS/2 und eComStation. Es verhält sich ähnlich wie HPFS oder JFS (nur das die Laufwerke nicht formatiert werden müssen). AEFS-Laufwerke können von jedem Programm genutzt werden das auf Dateien zugreifen kann. Um dies zu ermöglichen, stellt AEFS einen neuen Laufwerksbuchstaben zur Verfügung. Alle Dateien die auf diesem Laufwerk abgelegt werden, werden automatisch und ohne Benutzereingriff verschlüsselt.
Um dafür keine neue Partition anlegen zu müssen, verbindet AEFS dieses neue Laufwerk mit einem beliebigen Verzeichnis auf einem beliebigen, bereits vorhandenen Laufwerk. Dabei spielt es keine Rolle mit welchem Dateisystem dieses Laufwerk formatiert ist! Das ganze wird deutlicher wenn man sich den Abschnitt "AEFS im Einsatz" durchliest.
Zur Verschlüsselung werden bekannte und geprüfte Algorithmen eingesetzt (Rijndael und Twofish). In der aktuellen Version kann der Schlüssel bis zu 256 Bit lang sein. Es sei an dieser Stelle darauf hingewiesen das 256 Bit Schlüssellänge nicht als "extrem" sicher einzustufen ist!

### Installation

AEFS ist für OS/2 und Unix-artige Betriebssystem verfügbar. Aus diesem Grund wird für OS/2 die EMX-Laufzeitbibliothek in der Version 0.9d fix 4 benötigt.
Das Archiv enthält sowohl den Quellcode als auch eine vorcompilierte Version. Für Endanwender sind nur das Unterverzeichnis `\bin` und die Datei `readme.txt` bzw. `readme.inf` interessant. Nach dem Entpacken des Archivs müssen zwei Zeilen in die `CONFIG.SYS` eingefügt werden:

>     IFS=[bin-Verzeichnis]\stubfsd.ifs AEFS
>     RUN=[bin-Verzeichnis]\aefsdmn.exe

Wobei `[bin-Verzeichnis]` für das Unterverzeichnis `\bin` des Installationsverzeichnisses von AEFS steht.
Um später besser mit den Dienstprogrammen arbeiten zu können sollte das `[bin-Verzeichnis]` in den `PATH` der `CONFIG.SYS` aufgenommen werden. Dies ist nicht zwangsläufig nötig, macht das Leben aber einfacher!
Um die Änderungen zu aktivieren ist ein Neustart nötig.

### AEFS im Einsatz

Um mit AEFS arbeiten zu können muss man sich zuerst ein Verzeichnis überlegen, das die verschlüsselten Daten aufnimmt. In diesem Fall ist das `D:\Crypto`. Dieses Verzeichnis kann sich auf jedem beliebigen Dateisystem, ja sogar auf einem Netzlaufwerk befinden! Es darf noch nicht vorhanden sein!
Als zweites braucht man einen freien Laufwerksbuchstaben. In diesem Fall "`x`".

Jetzt kann das AEFS-Dateisystem erzeugt werden. Dazu folgendes eingeben:

>     mkaefs d:\crypto

An dieser Stelle muss das Passwort eingegeben werden mit welchem die Daten später verschlüsselt werden.

Um das neu erzeugte Dateisystem nutzen zu können muss es einem Laufwerksbuchstaben zugewiesen werden. Dazu folgendes eingeben:

>     mntaefs.exe x: d:\crypto

Beim Anhängen des Dateisystems wird das Passwort abgefragt. Nach erfolgreicher Prüfung ist das neue Laufwerk "`x`" für alle Programme zugänglich.

Soll das Dateisystem wieder abgehängt werden, dann kann dies mit folgendem Befehl geschehen:

>     umntaefs.exe x:

Die Daten liegen jetzt sicher in `D:\Crypto`.
Sollen Backups der verschlüsselten Daten angelegt werden, so kann man das Verzeichniss `D:\Crypto` komplett auf CD-ROM brennen oder mit ZIP packen. Außerdem kann man natürlich auch die Originaldaten direkt von Laufwerk "`x`" sichern. Genau wie andere wichtige Daten sollten auch die verschlüsselte Daten, die auf einem AEFS-Laufwerk liegen, von Zeit zu Zeit gesichert werden!

### Mozilla - ein Anwendungsbeispiel

Das Benutzerprofil von Mozilla kann ganz einfach auf einem AEFS-Laufwerk abgelegt werden. Zuerst startet man den Profilmanager von Mozilla und erzeugt ein neues Profil.

Abb.1: Neues Profil erstellen

Den Profilpfad passt man an, so dass er auf das Wurzelverzeichnis von Laufwerk "x" zeigt.

Abb.2: Profilpfad anpassen

Laufwerk "x" ist in diesem Fall ein AEFS-Laufwerk. Es wurde vorher mit den AEFS-Dienstprogrammen erstellt.
Das Profilverzeichnis muss nur lesbar sein während Mozilla läuft. Also ist es sinnvoll das Laufwerk direkt vor dem Start von Mozilla anzuhängen und gleich danach wieder zu entfernen. Natürlich kann man das manuell erledigen, aber einfacher geht es mit einer kleinen CMD-Datei.

>     @echo off

>     mntaefs.exe x: d:\crypto
>     IF ERRORLEVEL 1 goto FAILED

>     Mozilla.exe
>     umntaefs.exe x:
>     GOTO END

>     :FAILED
>     @echo Wrong Password ?!
>     PAUSE

>     :END

Diese CMD-Datei speichert man in das Programmverzeichnis von Mozilla. (Eine Referenz kann man natürlich gerne auf der Arbeitsoberfläche ablegen.)
Beim Starten der CMD-Datei wird man automatisch nach dem Passwort für das AEFS-Laufwerk gefragt.

Abb.3: Passwort eingeben

Gibt man das korrekte Passwort ein, so startet Mozilla. Bei falscher Eingabe wird eine Meldung angezeigt und nach einem Tastendruck wird die CMD-Datei beendet.

Abb.4: Falsches Passwort

Wird Mozilla beendet so wird das AEFS-Dateisystem wieder abgehängt und das Profilverzeichnis ist nicht mehr lesbar.
Das Profilverzeichnis liegt also auf Laufwerk "x" und enthält die Einstellungen für Mozilla.

Abb.5: Mozilla-Profil - Klartext

Die Daten werden aber auf der Festplatte im Verzeichnis `d:\crypto` abgelegt und sind verschlüsselt.

Abb.6: Mozilla-Profil - verschlüsselt

### Dateisystem-Dienstprogramme

Alle Dienstprogramme verstehen als Parameter `--help`. Damit kann man sich eine Hilfe für jedes Programm anzeigen lassen. Außerdem findet man weitere Informationen in der `ReadME` zu AEFS.

`mkaefs`

  erzeugt ein neues, leeres AEFS-Dateisystem. Man kann den Pfad und den verwendeten Verschlüsselungsalgorithmus angeben (der Algorithmus ist optional).
  Beispiel: `mkaefs d:\crypto`

`aefsck`

  überprüft ein AEFS-Dateisystem auf Fehler und behebt sie wenn möglich. (Kann man mit chkdsk vergleichen.) Es wird dringend geraten vor der Anwendung von aefsck ein Backup des verschlüsselten Verzeichnisses anzulegen!
  Beispiel: `aefsck d:\crypto`

`mntaefs`

  hängt ein AEFS-Dateisystem an einen Laufwerksbuchstaben an. Es besteht auch die Möglichkeit das Dateisystem schreibgeschützt anzuhängen!
  Beispiel: `mntaefs x: d:\crypto`

`umntaefs`

  hängt ein AEFS Dateisystem vom Laufwerksbuchstaben ab.
  Beispiel: `umntaefs x:`

`aefsdump`

  entschlüsselt eine bestimmte Datei eines AEFS-Dateisystems.
  Dieses Dienstprogramm sollte nur von erfahrenen Benutzern angewendet werden!

`aefsdmn und aefsparm`

  `aefsdmn` wird in der `CONFIG.SYS` gestartet und die Parameter werden in der `ReadME` genauer erläutert. `aefsparm` kann verwendet werden um die Optionen von aefsdmn zur Laufzeit zu ändern.

### Probleme und Einschränkungen

- Es ist nicht möglich ein AEFS-Dateisystem in einem AEFS-Dateisystem zu erzeugen.

- Die maximale Schlüssellänge beträgt 256 Bit.

- Alle AEFS-Dateisysteme sollten vor einem Systemabschluss abgemeldet werden. Es besteht ein Problem mit Daten, die noch im Cache von AEFS liegen und bei einem Shutdown auf das darunter liegende Dateisystem geschrieben werden müssen. Das kommt zwar selten vor, es ist aber besser mit Hilfe eines Shutdown-Dienstprogramms alle AEFS-Dateisysteme vor dem Systemabschluss automatisch abzumelden.

- Die Verschlüsselung der Daten auf einem AEFS-Dateisystem erfolgt pro Datei. Damit ist für einen Angreifer unter Umständen bereits an der Dateigröße zu erkennen um welche Daten es sich handelt und er muss nur noch die Verschlüsselung dieser einen Datei brechen.

- Bei Änderungen an den verschlüsselten Dateien werden die Zeitstempel der Dateien neu gesetzt. Damit ist es für einen Angreifer möglich zu erkennen, welche Dateien in letzter Zeit verändert wurden. (Gleiches gilt auch für verschlüsselte Sektoren in den Dateien!)

- Teile der unverschlüsselten Daten könnten in die `SWAPPER.DAT` ausgelagert werden! Da die Hilfsprogramme von AEFS normale OS/2-Programme sind, könnten ihre Datenbereiche bei knappem Speicher ausgelagert werden.

- Programme, die auf einem AEFS-Dateisystem arbeiten, könnten Daten im `TEMP`-Verzeichnis zwischenspeichern. Diese Daten sind natürlich auch nach dem Abmelden des AEFS-Dateisystems noch zugreifbar!

- AEFS-Dateisysteme mit der WPS zu bearbeiten erzeugt Handles in der `OS2.INI`!

### AEFS selber compilieren

In der `ReadME` zu AEFS steht genau was man zum Selber-Compilieren braucht. Die passenden MAKEFILEs werden auch mitgeliefert. Neben einigen Kleinigkeiten braucht man vor allem:

- Microsoft C 6.00 (kostenlos über das OS/2 DDK)

- FSD Helper Library (ebenfalls kostenlos)

- GCC (da GNU, natürlich auch kostenlos)

- um den NFS-Teil zu compilieren braucht man "rpcgen"

  - kann z.B. von FreeBSD für OS/2 compiliert werden

Die MAKEFILEs basieren auf dem Unix-Standard. Um sie nicht neu schreiben zu müssen, ist eine komplette Unix-Umgebung auf OS/2 nötig. (Also SH, BINUTILS, GNUUTILS, GNUMAKE, AUTOCONF usw.)

Daten und Quellen: EMX Runtime 0.9d Fix 4: http://hobbes.nmsu.edu/pub/os2/dev/emx/v0.9d/emxrt.zip Homepage von Eelco Dolstra (Autor von AEFS): http://www.cs.uu.nl/~eelco/aefs/ AEFS Version 2.1: http://www.cs.uu.nl/~eelco/aefs/aefs021.zip AEFS ältere Version 2.0: ftp://ftp.leo.org/pub/comp/os/os2/leo/drivers/ifs/aefs02.zip OS/2 e-Zine Artikel zu IFS unter OS/2 (englisch): http://www.os2ezine.com/20020416/page_5.html Tolle Webseite zu IFS unter OS/2 (deutsch): http://www.abyte.de/os/os2ifs.htm PKZIP-Homepage: http://www.pkware.com/ NetDrive und Cipher Plug-In: http://www.blueprintsoftwareworks.com/netdrive/

Robert Henschel ist Organisator der OS/2 User Group Dresden und studiert Informatik an der TU-Dresden.

Artikelverzeichnis
editor@os2voice.org
< Vorherige Seite | Inhaltsverzeichnis | Nächste Seite >
VOICE-Homepage: http://de.os2voice.org