Kryptographische Dateisysteme
Achim D. Brucker
brucker@freiburg.linux.de
21. April 2000
Inhalt
- Inhalt
- Einführung
- Verschiedenen Implementierungen
- Laufzeitverhalten
- Erkentnisse
- Referenzen
- Über dieses Dokument ...
Zusammenfassung:
Sollen private Daten (sicher) vor fremden Zugriffen geschützt werden, reichen
die Zugriffsrechte des Dateisystems meist nicht mehr aus - hier bietet sich
der Einsatz (starker) Kryptographie an. In diesem Artikel werden Methoden
vorgestellt, die ein möglichst komfortables Arbeiten mit verschlüsselten Daten
ermöglichen sollen. Da sich die Arbeitsweise für den Anwender nicht von dem
Arbeteiten mit unverschlüsselten Programmen unterscheiden soll, werden diese
Verfahren als kryptographische Dateisysteme bezeichnet.
Einführung
Kryptographische Dateisysteme stellen eine Schnittstelle zwischen dem Anwender und dem ,,normalen`` Dateisystem dar. Sie ermöglichen es, auf einfache Weise, Daten verschlüsselt zu sichern.
Gründe für kryptographischen Dateisystemen
- Diebstahlschutz (,,offline``)
- Schutz der Daten vor Eindringlingen mit root-Rechten
- ,,Erweiterte`` Zugriffsrechte
- verschlüsselter Netzwerkverkehr
Verschiedenen Implementierungen
- Verschlüsselung einzelner Dateien, z.B. mit crypt oder
- gnupg.
- Verschlüsselung mit Hilfe des Loopback-Devices.
- Verschlüsselung mit Hilfe eines Daemon, ähnlich wie nfs, z.B. cfs oder tcfs.
- Verschlüsselung durch File-System-Treiber, z.B. StegFS.
Lösungen
- The Kernel Loopback Block device
- ppdd - Pratical Privacy Driver
- CFS
- TCFS
- StegFS
Loopback Block device
- Benutzt die Kernel-Crypto-API
- Modifiziertes losetup notwendig.
- Kann durch den ,,Encrypted Home Directory``-Patch zum verschlüsseln des ganzen Home-Verzeichnis verwendet werden.
- Verschiedene Kryptoalgorithmen stehen zur Auswahl.
- Eignet sich zum verschlüsseln von ,,Partitionen`` um Zugriffe bei Diebstahl und Booten von ,,Bootmedium`` zu verhindern.
dd if=/dev/zero of=/etc/cryptfile bs=1k count=1000Einrichten des loop-Devices:
losetup -e idea /dev/loop0 /etc/cryptfileDatei-System anlegen:
mkfs -t ext2 /dev/loop0 100000Abmelden des loop-Devices:
umount /dev/loop0 losetup -d /dev/loop0Arbeiten mit den verschlüsselten Daten:
losetup -e serpent /dev/idea /etc/cryptfile mount -t ext2 /dev/loop0 /mnt/cryptAbmelden des Verzeichnisses:
umount /dev/loop0 losetup -d /dev/loop0
Im Verzeichnis /mnt/crypt
kann mit den üblichen Befehlen zur
Dateiverwaltung gearbeitet werden.
CFS
- Erste freie Implementierung von Matt Blaze (AT&T Research).
- Benutzt einen ,,modifizieten`` nfs-Daemon.
- Auch root kann nicht ohne grossen Aufwand die entschlüsselten Daten (Arbeitsverzeichnis) lesen.
- Läuft vollständig im User-Space, dadurch langsam und portabel
- Für viele Unixe verfügbar.
- Prinzipiell erfolgt das Entschlüsseln auf dem Server, aber ,,cfs over nfs`` möglich.
crypted_data
soll die verschlüsselten Daten enthalten.
Der Schlüssel muss mindestens 16 Zeichen lang sein:
cmkdir crypted_data Key:Das Verzeichnis enthält nun einige interne Dateien:
fujikawa$ ls -la crypted_data drwxr-xr-x 2 brucker users 1024 Apr 21 12:52 ./ drwxr-xr-x 3 brucker users 1024 Apr 21 12:51 ../ -rw-r--r-- 1 brucker users 8 Apr 21 12:51 ... -rw-r--r-- 1 brucker users 1 Apr 21 12:51 ..c -rw-r--r-- 1 brucker users 32 Apr 21 12:51 ..k -rw-r--r-- 1 brucker users 7 Apr 21 12:51 ..sUm mit den verschlüsselten Daten Arbeiten zu können, muss das Verzeichnis angemeldet werden:
cattach crypted_data bruckerAnschliesend kann im Verzeichnis
/crypt/brucker
mit den Daten
gearbeitet werden. Dateien in diesem Verzeichnis können nicht von anderen Benutzern
(auch nicht root) gelesen werden.
Abgemeldet wird das Verzeichnis mit:
cdettach brucker
TCFS
TCFS ist eine ,,Weiterentwicklung`` von CFS der Universität Salerno.
- Bessere Integration von Verschlüsselung und Dateisystem (kernel modul)
- Nur unter Linux und BSD lauffähig.
- Ziel scheint das Ersetzen von nfs zu sein.
- Entschlüsseln findet auf dem Client statt.
Laufzeitverhalten
- Laufzeit: Bei reinen Softwarelösungen werden Zugriffe etwa um den Faktor 1#1 bis 2#2 langsamer.
- Platzbedarf Bei kryptographischen Dateisystemen ist zur Datensicherung kein zusätzlicher Speicherplatz notwendig. Je nach System wird aber zu Laufzeit der doppelte Festplattenplatz benötigt, um die Arbeitskopie bereit zu halten.
- Steganographie: Verfahren die zusätzlich zur Verschlüsselung versuchen die Daten zu verstecken, benötigen um ein Vielfaches mehr Speicherplatz und Laufzeit.
Erkentnisse
Kryptographische Dateisysteme ermöglichen es auf einfache Art und Weise mit
verschlüsselten Daten zu arbeiten. Sie können aber kein umfassenders
Sicherheitskonzept ersetzen.
- Tempräre Dateien und Sicherheitskopien die von Andwendungen im
/tmp
-Verzeichnis angelegt werden. - Sicherheitskopien, prinzipiell sind verschlüsselte Backups notwendig.
- Netzwerkverbindungen
- Arbeitskopie der Daten ist eventuell nur durch Dateirechte geschützt.
Referenzen
- International Kernel Patches
http://www.kerneli.org - The Kernel Loopback Block device
http://www.kerneli.org/loopback-encrypted-filesystem.html - Encrypted Home Directorys Patch http://members.home.net/id-est/ehd.html
- Encrypted CDROM patch
http://members.home.net/id-est/ecd.html - ppdd - Pratical Privacy Driver
http://linux01.gwdg.de/~alatham/ppdd.html
ftp://ftp.gwdg.de/pub/linux/misc/ppdd/ - CFS - Cryptographic File System
ftp://ftp.funet.fi/pub/crypt/utilities/file/ - TCFS - Transparent Cryptographic File System
http://tcfs.dia.unisa.it/ - StegFS - A Steganographic File System for Linux http://ban.joh.cam.ac.uk/~adm36/StegFS/
- Filesystems HOWTO ftp://ftp.penguin.cz/pub/users/mhi/Filesystems-HOWTO/