IMMD Hauptseite Zurück Nach oben Weiter Hilfe BS - 12. März 1999
Kryptologisches


Vorgehensweise

Wenn man unser Loopback-Kryptfilesystem benutzen will, muss man sich zunächst mit dem nachher beschrieben setkey-Tool anmelden. Das fragt dann den Schlüssel ab, den man bei dieser Session benutzen will. Man kann nur solche Dateien sinnvoll lesen (lesen kann man sie alle bei entsprechenden Rechten), die mit dem gleichen Schlüssel verschlüsselt worden sind.
Nach der Session sollte man sich mit dem selben Tool wieder abmelden.

Algorithmus

Zum Verschlüsseln benutzen wir DES, ein symmetrisches Verschlüsselungs- verfahren. DES stellt verschiedene Verschlüsselungsroutinen zu Verfügung. Wir benutzen eine Routine, die Puffer der Grösse 8 Bytes verschlüsselt, d.h. wir müssen die Daten häppchenweise verschlüsseln, was wiederum bedeutet, dass man jeden 8 Byteblock getrennt vom anderen entschlüsseln und lesen kann.

Schlüsselverwaltung

Wie erwähnt, muss sich ein Benutzer, um das Filesystem sinnvoll nutzen zu können, vorher mit setkey einchecken. Dann wird der Schlüssel abgefragt. Das Filesystem generiert aus dem 8-Byte Schlüssel einen sogenannten Kontext, mit dem DES ver- und entschlüsselt. Dieser wird dann mit der UID des Benutzers in eine Liste eingetragen. Wenn eine Operation auf einer Datei ausgeführt werden soll, wird naturgemäss die Datei erst geoffnet. Dort wird dann gefragt, ob der Benutzer sich schon in Eingechekt hat. Wenn nicht, darf er keine Dateioperationen ausführen. Wenn doch, dann wird in der Liste der entsprechende Kontext herausgesucht und damit dann die zu bearbeitende Datei ent- bzw. verschlüsselt. Hat man die Datei nicht selber mit dem aktuellen Kontext angelegt ... .

Dateien

Die vom Filesystem erzeugten Datein haben folgendes Format:
- 32 Byte Header, davon
     8 Byte Titel
     4 Byte Länge der verschlüsselten Daten
     20 Byte Dummy
- Verschlüsselte Daten
- Nullen

Files ohne Header werden als nicht verschlüselt betrachtet und können normal bearbeitet werden.
Da DES nur auf 8 Byte-Blöcken arbeiten kann, die Länge von Dateien aber im allgemeinen keine durch 8 teilbare Zahl ist, muss die Datei am Ende mit Nullen aufgefüllt werden.
Aus dem Grund muss das FS sich auch die Länge der Datei merken, da sie durch die Krypt-FS-Writeoperation verfälscht wird (auf eine durch 8 teilbare Zahl vergrössert).

Das Setkey-Tool

Mithilfe des Setkey-Tools kann man sich in das FS ein- und auch wieder auschecken.
Syntax zum einchecken: setkey -p Pfad des Mountpunkts -i
Syntax zum auschecken: setkey -p Pfad des Mountpunkts -d

Beim einchecken wird noch ein 8-Stelliger Schlüssel abgefragt. Anschliessend werden die Infiormationen mit ioctl in den Kern geschickt, wo dieser dann die Userliste entsprechend dem Befehl bearbeitet.

Sicherheitsprobleme

Da das FS bei einem momentan angemeldeten User nur noch seine UID abprüft (und keinen Schlüssel), kann man seine Dateien ohne Kenntnis seines Schlüssels lesen, wenn man seine UID annehmen kann.
(z.B. root mit su user).

Zurück zum Inhaltsangabe

Unser Server | Brief an Webmaster | Navigationshinweise | Suche