Crypto ist in! Noch nie war es so einfach, Daten zu ver- und wieder zu entschlüsseln, ohne die verwendeten Techniken richtig zu kennen geschweige denn zu verstehen. Besonders beliebt sind Systeme, bei denen der Prozess des Ver- oder Entschlüsselns transparent, also für den Benutzer unsichtbar abläuft. Ein freies Open-Source-Produkt, um das man bei der näheren Betrachtung transparenter Ver- und Entschlüsselung von Daten und Datenträgern nicht herumkommt, ist Truecrypt.
Vor kurzem in der Version 5.0a erschienen, bietet Truecrypt mittlerweile eine Vielzahl von Features und Funktionen und deckt ein weites Anwendungsfeld ab. Truecrypt ging aus dem Projekt "Encryption for the Masses" (E4M) hervor, dessen Entwicklung im Jahr 2000 mit der Version 2.02a eingestellt wurde. Im Februar 2004 griff das Truecrypt-Projekt das Ziel von E4M wieder auf und veröffentlichte die Version 1.0. Damals kämpfte man noch mit Problemen wie der korrekten Größenanzeige von eingebundenen Datenträgern. Elementare Features wie die so genannten "Hidden Volumes" oder der "Traveler Mode" folgten ebenfalls erst deutlich später. Auch Truecrypt-Versionen für Betriebssysteme und Hardwareplattformen jenseits von Windows und i386 wurden erst nach und nach in späteren Versionen veröffentlicht.
Heute ist Truecrypt in der Version 5.1a als freie Software erhältlich und unterstützt neben Windows 2000, den 32- und 64-Bit Versionen von Windows Vista, Windows XP, Windows Server 2008 und Windows Server 2003 auch Mac OS X 10.4 und 10.5 sowie Linux (Kernel 2.4 und 2.6).
Die Software arbeitet vollkommen transparent. Einmal ins System eingebunden, ist ein verschlüsselter Bereich wie jeder beliebige interne oder externe Datenträger ansprechbar. Die hierbei erzielte Geschwindigkeit der Lese- und Schreibzugriffe hängt stark von den verwendeten Algorithmen ab, die der Benutzer bei der Erstellung verschlüsselter Bereiche selbst wählen kann.
Ein wichtiger Punkt ist die Interoperabilität. In dieser Hinsicht hat Truecrypt Vorbildcharakter. Volumes können auf allen unterstützten Plattformen verwendet werden, unabhängig davon, auf welcher Plattform sie erstellt wurden. Die Voraussetzung dafür ist natürlich, dass das verwendete Dateisystem auch von der jeweiligen Plattform unterstützt wird. Darauf muss allerdings der Anwender achten.
Dem Benutzer wird eine Vielzahl von Anwendungsmöglichkeiten geboten. Wahlweise können komplette Partitionen oder Teilbereiche verschlüsselt oder gar ganze Teilbereiche innerhalb verschlüsselter Sektionen versteckt werden. Darüber hinaus bietet Truecrypt mittlerweile ein ganzes Arsenal an kryptografischen Algorithmen und Hash-Funktionen bis hin zur Möglichkeit, einen verschlüsselten Datenbereich auf einem Rechner zu nutzen, auf dem keine Version von Truecrypt installiert ist. Dies ist der so genannte "Traveler Mode".
Seit Version 5.0 steht den Benutzern sämtlicher unterstützter Betriebssysteme eine intuitiv bedienbare Benutzeroberfläche zur Verfügung, die auch dem ungeübten Kryptografen das unkomplizierte Verschlüsseln ermöglicht. Unter Linux war bis dato nur eine textbasierte Nutzung möglich. Die nun auch hier eingeführte Oberfläche ist noch nicht vollständig implementiert.
Mit dem Versionssprung auf 5.0 hat sich unter Linux einiges getan. War bis dato noch ein eigenes Kernel-Modul für den Betrieb notwendig, läuft Truecrypt nun komplett im User-Space. Für Ubuntu und Open Suse bieten die Entwickler Pakete zum Download an. Sofern kein eigenes Paket angeboten wird, müssen Nutzer anderer Distributionen momentan in den meisten Fällen auf den Sourcecode zurückgreifen und selbst kompilieren.
Truecrypt kennt zwei Arten von verschlüsselten Datenbereichen. Wahlweise kann entweder eine ganze Partition verschlüsselt oder ein so genannter "Container" angelegt werden. Ein Container ist ein verschlüsselter Teilbereich innerhalb eines bereits vorhandenen Dateisystems. Möchte man zum Beispiel einen USB-Stick mit einem verschlüsselten und einem unverschlüsselten Bereich ausstatten, ist dieses Feature sehr nützlich, da Windows (im Gegensatz zu Linux und Mac OS X) auf Wechseldatenspeichern nur eine Partition unterstützt.
Mithilfe der grafischen Oberfläche können mit wenigen Klicks Container erstellt oder ganze Partitionen verschlüsselt werden. Ebenso einfach funktioniert das Einhängen von diesen Datenbereichen ins Dateisystem. Auch eine Konfiguration zum automatischen Mounten (nach Eingabe des Passworts und/oder des entsprechenden "Keyfiles") bereitet keine Probleme.
Darüber hinaus ist es möglich, ganze Systempartitionen zu verschlüsseln. Hierzu wird der Truecrypt-eigene Bootloader installiert, der während des Boot-Vorgangs das entsprechende Passwort zur Entschlüsselung der Systempartition abfragt. Die Verschlüsselung der Systempartition, die momentan nur unter Windows möglich ist, kann im laufendem Betrieb durchgeführt werden. Eine Neuinstallation ist nicht notwendig. Der Verschlüsselungsvorgang kann sogar unterbrochen und zu einem späteren Zeitpunkt fortgesetzt werden.
Zur Verschlüsselung an sich stehen die kryptografischen Algorithmen AES, Serpent und Twofish zur Auswahl, welche auch beliebig kombiniert werden können. Um den Zugriff auf einen verschlüsselten Bereich zu beschränken, gibt es ein weit verbreitetes Mittel - das Passwort. Truecrypt bietet darüber hinaus die Möglichkeit von so genannten "Keyfiles".
Keyfiles stellen eine Option dar, die sowohl exklusiv als auch in Kombination mit einem Passwort verwendet werden kann. Auch eine Verwendung mehrerer Keyfiles ist möglich. So lässt sich die Sicherheit von Wissen (Passwort) und Besitz (Keyfiles auf externem Datenträger) kombinieren und das Sicherheitslevel maximieren. Prinzipiell kann jede beliebige Datei als Keyfile verwendet werden. Bei der Definition des Keyfiles kann auch ein ganzer Ordner angegeben werden. Es werden dann entsprechend alle in diesem Ordner befindlichen Dateien verwendet.
Da Truecrypt (sofern möglich) das erste MByte ausliest und verwendet, sollte beachtet werden, dass sich im Falle einer Veränderung des Dateiinhalts das Volume nicht mehr entschlüsseln lässt. Man sollte sich bewusst sein, dass auch bei der Kombination von Keyfiles und Passwort der Verlust bereits einer der Komponenten dazu führt, dass die Daten nicht mehr wiedergewonnen werden können. Das nachträgliche Entfernen von Keyfiles und eine damit verbundene Neu-Verschlüsselung ist zwar möglich, selbstverständlich wird für diesen Vorgang jedoch erneut einmalig das entsprechende Keyfile benötigt.
Truecrypt bringt auch eigene Tools zur Erstellung von entsprechenden Dateien mit. Die vermutlich einfachste Variante zur Erstellung ist jedoch das Füllen einer Datei mit Zufallswerten (unter Linux zum Beispiel mittels /dev/urandom). Die Entwickler geben an, dass ein Keyfile stets mindestens 30 Byte groß sein sollte, um Brute-Force-Attacken zu erschweren.
Ein spezielles Sicherheitsmerkmal, das bei Truecrypt Einzug erhielt, ist das Prinzip der "glaubhaften Bestreitbarkeit" (Plausible Deniability). Die Umsetzung dieses Konzepts beruht auf der Tatsache, dass die Existenz von verschlüsselten Daten und speziell eines Truecrypt-Volumes gar nicht oder nur schwer nachweisbar ist.
Es wird davon ausgegangen, dass ein verschlüsselter Bereich zwar eigentlich nicht von einem Speicherbereich mit zufälligen Bitmustern unterschieden werden kann, dass man im Falle einer entsprechenden Vermutung aber unter Umständen zur Herausgabe eines Passwortes gezwungen wird. In Großbritannien existiert zum Beispiel seit 2007 ein entsprechendes Gesetz, auf dessen Grundlage die Nichtherausgabe eines Passworts mit einer Freiheitsstrafe von bis zu fünf Jahren bestraft werden kann. Um solche (oder ähnliche) Situationen ausschließen zu können, implementiert Truecrypt die so genannten Hidden Volumes.
Genau betrachtet sind die Hidden Volumes nichts weiter als ein versteckter Container innerhalb des freien Bereichs eines normalen verschlüsselten Volumes. Wird nun das äußere Volume gemountet, so bleibt das innere, versteckte Volume (welches im übrigen mit einem separaten Passwort gesichert werden muss) unsichtbar, und dessen Existenz lässt sich als "impossible to prove" (nicht nachweisbar) beschreiben. Dies rührt daher, dass auch freier Bereich in einem Truecrypt-Volume immer mit Zufallswerten aufgefüllt ist und darüber hinaus die Informationen über das Dateisystem des äußeren Volumes bei der Erstellung des versteckten Bereichs nicht verändert werden.
Im äußeren Bereich können nun vermeintlich geheime Daten abgelegt werden, wohingegen die wirklich privaten Daten im Hidden Volume versteckt sind. Im Fall des Falles kann somit das Passwort für den äußeren Container herausgegeben werden, und die wirklich privaten Daten bleiben unentdeckt. Im praktischen Gebrauch wird übrigens in Abhängigkeit vom eingegebenen Passwort entweder der äußere oder der versteckte innere Bereich gemountet. Auch um sicherzustellen, dass beim Beschreiben des Standard-Volume nicht aus Versehen Teile des versteckten Bereichs überschrieben werden (wie gesagt: Das äußere Volume weiß nichts von der Existenz des Hidden Volumes), gibt es ein Flag, das beim Mounten gesetzt werden kann und in dessen Folge beide Passwörter abgefragt werden, um bei anschließenden Operationen immer zu verifizieren, dass nicht versehentlich in den versteckten Bereich geschrieben wird.
Unter Windows ist ein Feature verfügbar, das es ermöglicht, Truecrypt-Volumes auch auf Systemen einzubinden, auf denen zuvor kein Truecrypt installiert wurde. Für den Traveler Mode sind Administratorrechte auf dem Zielsystem notwendig. Der Traveler Mode kann auf zwei Arten verwendet werden.
Die einfachste Variante ist es, das entsprechende Truecrypt Binary (truecrypt.exe) auf einen unverschlüsselten Teil des Datenträgers (zum Beispiel einen USB-Stick) zu kopieren und dieses dann auf dem System, in das das verschlüsselte Volume eingebunden werden soll, aufzurufen. Eine weitere Möglichkeit bietet der Assistent zur Erstellung eines Datenträgers im Traveler Mode. Der Assistent erstellt zusätzlich zum Binary und einigen Systemdateien eine autorun.inf, die alle erforderlichen Truecrypt-Parameter bei einem Autostart setzt, sodass vom Benutzer nur noch ein Passwort abgefragt wird und der Datenträger anschließend im System eingebunden ist und verwendet werden kann.
Ein schon zu Beginn genanntes Argument für Truecrypt ist die Interoperabilität. Wie bereits erwähnt, ist Truecrypt für diverse Windows-Versionen, Linux und Mac OS X erhältlich. Seit Version 5.0 steht für alle Plattformen auch die gleiche grafische Benutzeroberfläche zur Verfügung.
In praktischen Tests hat sich gezeigt, dass die Interoperabilität zwischen den Systemen durchaus mit "gut" bewertet werden kann. Es gibt allerdings noch kleine Schönheitsfehler, derer man sich bewusst sein sollte. wenn man die Truecrypt-Plattform übergreifend nutzen möchte. Im Speziellen ist die Abwärtskompatibilität nicht immer gegeben. Hidden Volumes, die beispielsweise mit Truecrypt 5.1a unter Linux erstellt wurden, können unter Umständen auf derselben Plattform mit Release 4.3a nicht gemountet werden, auch wenn kryptografische Algorithmen verwendet wurden, die auch unter 4.3a verfügbar sind. Unter Windows hingegen lässt sich das gleiche Volume problemlos einbinden.
Im Gegenzug erwies sich Truecrypt unter Windows Vista als ein wenig widerspenstig, wenn es darum ging, Hidden Volumes zu erstellen. Entsprechende Bugs scheinen bei den Entwicklern aber bekannt zu sein.
Die Verwendung von Volumes, die unter anderen Betriebssystemen erstellt wurden, funktioniert in der Praxis sehr gut. Es gilt zu beachten, dass das entsprechende Dateisystem vom Betriebssystem unterstützt werden muss, mit dem man das Volume nutzen möchte. Auch wenn Truecrypt von Haus aus nur FAT (und NTFS unter Windows) als Option für die Formatierung anbietet, ist es theoretisch wie praktisch kein Problem, das Volume unformatiert zu lassen und ein anderes Dateisystem zu verwenden. Die entsprechende Formatierung muss dann natürlich manuell auf dem eingebundenen Volume vollzogen werden. Die einzige Einschränkung hierbei ist, dass das äußere Volume eines Hidden Volumes stets mit FAT formatiert werden muss.
Generell empfiehlt es sich, bei der Verwendung auf den unterschiedlichsten Systemen darauf zu achten, jeweils die aktuellste Version von Truecrypt zu verwenden. Tests in der Praxis haben gezeigt, dass bei diesem Szenario die Schnittmenge der plattformübergreifend funktionierenden Funktionen maximal ist.
Bei aller Kryptoeuphorie muss man sich ins Bewusstsein rufen, dass auch der stärksten Datenverschlüsselung umgebungsbedingte Grenzen gesetzt sind. Dessen ist man sich auch bei Truecrypt bewusst und gibt entsprechende Hinweise, die man beim Umgang mit dem System unbedingt beachten sollte. Hierzu ist es wichtig zu wissen, dass mit den gewählten Authentifizierungsdaten wie Passwort und Keyfile lediglich der Truecrypt-Header verschlüsselt wird, in welchem wiederum der Masterkey für die eigentliche Verschlüsselung der Nutzdaten zu finden ist.
Die Umstrukturierung des Dateisystems durch Defragmentierung oder Journaling kann es einem Angreifer unter Umständen ermöglichen, auch nach Erneuerung eines Truecrypt-Headers (zum Beispiel Ändern des Passworts) durch Datenwiederherstellung in den Besitz eines entsprechenden alten Headers zu gelangen. Mithilfe eines kompromittierten Passworts kann der Angreifer nun einen Master-Key extrahieren, mit dessen Hilfe sich die Nutzdaten wieder entschlüsseln lassen. Im Falle von kompromittierten Authentifizierungsdaten ist es also stets ratsam, diese nicht bloß zu ändern, sondern einen komplett neuen Container zu erstellen. Die damit verbundene Neuverschlüsselung der Nutzdaten schützt vor unbefugtem Zugriff durch alte Header.
Darüber hinaus sollte man sich dessen bewusst sein, dass produktiv genutzte Daten unverschlüsselt im Arbeitsspeicher abgelegt sind und zum Beispiel durch unvorhergesehene Dumps zum Vorschein kommen können. Auch Mechanismen wie "Suspend-to-Disk" schreiben eventuell genutzte Daten in unverschlüsselt auf die Platte.
Truecrypt hat sich im Laufe der Jahre zu einem mächtigen und ausgereiften Werkzeug zur Datenverschlüsselung entwickelt. Speziell die Möglichkeit der plattformübergreifenden Nutzung macht es zu einer attraktiven Alternative. Andere etablierte Produkte wie zum Beispiel dm-crypt oder AxCrypt bieten zwar ebenfalls interessante Features, sind aber meist auf die Nutzung unter einem bestimmten Betriebssystem beschränkt.
Die Homepage des Truecrypt-Projekts bietet eine hervorragende Dokumentation, die weit über das Spektrum dieses Artikels hinausgeht. Speziell für Anwender, dies sich für kryptographische Funktionsweisen interessieren, empfiehlt sich ein Blick in die technischen Dokumentation.
Jenseits der vollständigen Implementierung von angesprochenen Funktionen und dem Ausmerzen kleinerer Bugs und Inkompatibilitäten hat man sich für die Zukunft ehrgeizige Ziele gesetzt. So soll neben dem Support für paralleles Rechnen das Konzept der "glaubhaften Bestreitbarkeit" auf verschlüsselte Systempartitionen erweitert werden. Darüber hinaus arbeitet man an der Unterstützung für hardwareseitige Sicherheitsmodule.