Unter Linux gibt es standartmäßig keine transparente Dateiverschlüsselung. Es gibt zwar das Kommando crypt, welches man zur Dateiverschlüsselung verwenden kann, dessen Nutzung ist allerdings ziehmlich umständlich. TCFS könnte eine Lösung für dieses Problem sein.
Die Verschlüsselung der Dateien erfolgt mittels DES. Seit TCFS 2.0.1 wird auch IDEA und RC5 unterstützt, wobei zur Übersetzungszeit der Verschlüsselungsalgorithmus ausgewählt sein muß (in Zukunft ist das für die Laufzeit geplant). Für die Schlüsselgenerierung wird der MD5 Algorithmus verwendet. Der Schlüssel selbst wird mit dem Login password verschlüsselt in einer Datei gespeichert. Deshalb muß auch das passwd Kommando modifiziert werden. Die Datei /etc/tcfspasswd enthält Informationen über die TCFS User (z.B. Loginname, verschlüsselter Key).
Server
Von Serverseite hat man keinen Zugang zum Schlüssel. Damit macht
ein Lesen der Daten keinen Sinn. Ein löschen der Dateien ist natürlich
möglich. Für spätere TCFS Versionen ist ein Mechanismus
geplant, um modifizierte Dateien zu erkennen.
Client
Schwachpunkt auf Client-Seite ist Root. Er kann z.B. Veränderungen
an Kernel oder TCFS vornehmen oder die Eingaben des Nutzers überwachen.
Außerdem kann Root von /dev/kmem Daten lesen... .
Zeit zum Schreiben:
| Dateisystem | 10Kb | 100Kb | 1Mb | 10Mb |
| NFS | 0.5 | 0.14 | 1.74 | 12.58 |
| TCFS ohne DES | 0.5 | 0.19 | 1.69 | 17.74 |
| TCFS mit DES | 0.6 | 0.46 | 3.77 | 40.08 |
| Filesystem | 10Kb | 100Kb | 1Mb | 10Mb |
| NFS | 0.09 | 0.16 | 1.14 | 10.97 |
| TCFS ohne DES | 0.10 | 0.16 | 1.30 | 12.25 |
| TCFS mit DES | 0.11 | 0.31 | 2.71 | 26.40 |
| DES engine | 0.3 | 0.25 | 2.38 | 23.82 |
TCFS Voraussetzungen
2. Modifizieren der Kernelquellen
patch < /usr/src/linux/fs/tcfs/patches/tcfs.diff
3. Installation der Utilities
diese befinden sich unter
/usr/src/linux/fs/tcfs/contrib und müssen ins Verzeichnis bin kopiert
werden.
Ein Makefile ist auch vorhanden.
make install für automatische Installation.
make uninstall für das Entfernen der TCFS Utilities und die
Wiederherstellung des ursprünglichen Zustandes
4. Neuübersetzung des Kernels
Dabei wird das Chiffreverfahren
ausgewählt (z.Z. DES, IDEA oder RC5).
5. Um das TCFS Modul mit dem Kernel zu verbinden muß das
Kommando insmod tcfs aufgerufen werden.
Installation von TCFS auf dem Server
1. Kopieren von xattrd(*) aus dem Verzeichnis /usr/src/linux/fs/tcfs/contrib/binaries
nach /usr/sbin
2. Ausführen von xattrd and eintrag in die rc Dateien.
Mounten eines TCFS Filesystemes auf einem Client
Angenommen der Server exportiert das Verzeichnis /exports und
der Client möchte server:/exports an /mnt/server mounten:
mount
-t tcfs server:/exports /mnt/server
Verwendung eines gemounteten TCFS Filesystems auf Client-Seite
1. Der Nutzer muß sich davon überzeugen, daß
das Verzeichnis /mnt/server wie oben beschrieben gemountet ist (wenn nicht
r Systemverwalter konsultieren).
2. Schlüsselgenerierung mittels tcfsgenkey(*) (jeder
TCFS-Nutzer muß dieses Kommando nur einmal ausführen).
3. Ausführen des Kommandos tcfslogin(*) um den Key
in das TCFS Kernelmodul zu bringen (nur einmal für jede Sitzung notwendig)
4. Wechseln ins Verzeichnis /mnt/secure um hier zu arbeiten (selbstverständlich
benötigt man dort ein eigenes Verzeichnis z.B. /mnt/secure/userlogin)
5. Mit den Kommandos lsattr(*) und chattr(*) kann
man sich die Sicherheitsflags anzeigen lassen und diese ändern.
(*) siehe Manual für mehr Informationen.