-
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