Datenverschlüsselung mit Truecrypt

Aus LinuxUser 12/2006

Datenverschlüsselung mit Truecrypt

Innere Werte

Sensible Daten gehören in den Datensafe: Truecrypt verschlüsselt nicht nur ganze Partitionen, sondern verbirgt sogar deren Existenz.

Beinahe schon fahrlässig behandeln viele Anwender sensiblen Daten auf dem Rechner, auch Firmen machen in dieser Hinsicht häufig keine Ausnahme. Getreu der Devise: “Es wird schon nichts passieren” trägt man wichtige Unternehmensinterna auf dem Laptop spazieren. Als aktuelles Beispiel dafür können die bei VW entwendeten Laptops dienen, die Informationen über die Bauweise von gepanzerten Regierungslimousinen enthielten [1].

Dabei gibt es inzwischen ebenso effiziente wie einfach zu bedienende Möglichkeiten, um die Daten auf dem Rechner vor Unbefugten zu schützen. Als wahrer Allrounder entpuppt sich in dieser Hinsicht Truecrypt [2], das nicht nur Partitionen verschlüsselt, sondern auch verschlüsselte “Container” erstellt. Diese bestehen aus einer Datei, die das verschlüsselte Dateisystem enthält und die man wie eine normale Partition in das System einhängt. Als Verschlüsselungsalgorithmus stehen AES, Blowfish, Twofish, Triple-DES, CAST5 und Serpent zur Auswahl, optional auch in Kombination.

Truecrypt wurde ursprünglich für Windows entwickelt, und auch die Linux-Variante basiert auf dieser Implementation. Allerdings fehlen bislang einige Features wie die grafische Oberfläche oder die dynamische Größenanpassung von Containern. Sowohl unter Linux als auch unter Windows erstellte verschlüsselte Container und Partitionen mountet Truecrypt anstandslos auch auf dem jeweils anderen Betriebssystem, sofern dieses das verwendete Dateisystem unterstützt.

Truecrypt einrichten

Die Heft-CD enthält den Quelltext von Truecrypt sowie passende Archive für viele gängige Distributionen. Die RPM-Pakete installieren Sie mit dem Aufruf rpm -ivh truecrypt.rpm, DEB-Archive mit dem Befehl dpkg -i truecrypt.deb.

Da Truecrypt ein Kernelmodul einrichtet, kommt es vor, dass die Installation scheitert, wenn ein modifizierter oder aktualisierter Kernel zum Einsatz kommt. In diesem Fall kompilieren und installieren Sie das Programm aus dem Quelltext. Sie benötigen dafür folgende Programme und Dateien auf Ihrem Rechner: make, gcc, ld, strip sowie die Kernel-Quellen. Zur Installation gehen Sie wie folgt vor:

  • Extrahieren Sie das Quellpaket mit dem Aufruf sudo tar xvfz truecrypt-4.2a-source-code.tar.gz -C /usr/src/.
  • Wechseln Sie in das neue Verzeichnis /usr/src/truecrypt-4.2.a/Linux
  • Starten Sie den Kompiliervorgang mit dem Aufruf sudo ./build.sh.
  • Rufen Sie abschließend die Installationsroutine mit dem Befehl sudo ./install.sh auf.

Unter Umständen müssen Sie die Prozedur nach einem Kernel-Update wiederholen, damit Truecrypt die benötigten Module neu einrichtet.

Objekte erstellen

Wie eingangs beschrieben handelt es sich bei Truecrypt derzeit um ein reines Kommandozeilenprogramm. Die Entwickler sehen jedoch für das nächste Release ein grafisches Frontend vor. Der Aufruf truecrypt ohne weitere Parameter gibt die Hilfeseite des Programms aus. Detailliertere Informationen liefert die Manpage des Programms (man truecrypt).

Zum Erstellen eines verschlüsselten Objektes tippen Sie truecrypt -c Dateiname.Dieser Aufruf startet eine Schritt-für-Schritt-Abfrage (Abbildung 1), die mit der Art des Volumes (Hidden oder Normal) beginnt. “Hidden” bedeutet hier, dass Sie innerhalb eines bestehenden verschlüsselten Objektes ein zweites erstellen, dessen bloße Existenz für Unbefugte später nicht nachweisbar ist.

Abbildung 1: Die sequentielle Abfrage erleichtert das Anlegen von verschlüsselten Containern und Partitionen.

Abbildung 1: Die sequentielle Abfrage erleichtert das Anlegen von verschlüsselten Containern und Partitionen.

Im nächsten Schritt legen Sie das Dateisystem des Objektes fest. Möchten Sie ein anderes als FAT verwenden, wählen Sie hier none und formatieren den Container später wie im Kasten “Virtuelle Laufwerke formatieren” beschrieben per Hand.

TIPP

Befindet sich der Truecrypt-Container auf einem Journaling-Dateisystem wie Ext3 oder ReiserFS, hält das Journal unter Umständen Daten über den Container vor, die es erlauben, diesen – beispielsweise nach einem Passwortwechsel – mit dem alten Passwort zu mounten. Dieses potentielle Sicherheitslücke umgehen Sie, indem Sie den Container auf einem Dateisystem ohne Journal, beispielsweise Ext2, aufbewahren.

Virtuelle Laufwerke formatieren

Truecrypt bietet zum Formatieren lediglich das Dateisystem FAT an. Das erweist sich im täglichen Betrieb jedoch nicht immer als stabil genug; bei Abstürzen während der Arbeit mit Truecrypt etwa gehen oft Zuordnungen verloren. Daher empfiehlt es sich, beim Anlegen eines Objektes als Dateisystem none zu wählen und die Partition im Anschluss wie folgt zu formatieren:

  • Mappen Sie das Laufwerk als Benutzer root mit dem Befehl truecrypt -N NummerContainer (zum Beispiel # truecrypt -N 1 filesafe.tc). Die Nummer hinter -N gibt an, mit welcher Zahl Truecrypt das Device versieht (zum Beispiel truecrypt1).
  • Formatieren Sie danach das Device mit dem Dateisystem Ihrer Wahl. Für Ext3 lautet der Aufruf mkfs.ext3 /dev/mapper/truecryptNummer.
  • Um es zu nutzen, hängen Sie das Device im Anschluss mit dem Befehl mount /dev/mapper/truecryptNummerMountpunkt in Ihr Verzeichnis ein. Dafür stehen Ihnen alle Optionen zur Verfügung, die mount bietet.
  • Da Truecrypt das Mappen und Einhängen in einem Arbeitsgang erledigt, reicht zukünftig der Aufruf truecrypt ObjektMountpunkt.

Danach geben Sie an, wie groß der Container werden soll. Erstellen Sie eine Partition, nutzt Truecrypt diese immer komplett. Anschließend stellen Sie ein, welchen Hashalgorithmus Truecrypt zur Integritätssicherung verwendet. Zur Auswahl stehen RIPMED-160, SHA-1 und Whirlpool.

Im nächsten Schritt legen Sie fest, mit welchem Algorithmus Truecrypt den Inhalt der Objekte verschlüsselt. Die spätere Geschwindigkeit der Schreib- und Lesezugriffe auf diese Laufwerke hängt maßgeblich von der Auswahl des Verschlüsselungsalgorithmus ab.

Die Tabelle “Benchmark” gibt Auskunft über die Geschwindigkeit der verschiedenen Algorithmen. Als Dateisystem diente jeweils Ext3; die Volumes bestanden jeweils aus einem 300 MByte großen Container, in den eine 260 MByte große Datei kopiert wurde. Dabei diente RIPMED-160 als Hashalgorithmus. Besonders, wenn Sie später häufig schreibend auf die Partition zugreifen möchten, sollten Sie darauf zu achten, einen möglichst leistungsfähigen Algorithmus wie Serpent oder Twofish zu verwenden.

Benchmark

Verschlüsselungsalgorithmus Schreiben (MByte/s) Lesen (MByte/s)
Unverschlüsselt 9,2 33,3
Twofish 7,9 26,0
Serpent 7,6 24,8
Blowfish 7,4 22,0
AES 6,8 21,0
Twofish-Serpent 6,8 15,6
Serpent-AES 6,7 14,7
CAST5 6,5 14.9
Serpent-Twofish-AES 5,8 10,9
Triple-DES 5,4 10,8
AES-Twofish 4,7 14,4
AES-Twofish-Serpent 4,6 11,1

In den letzten beiden Abfragen geben Sie optional ein Passwort, einen Schlüssel oder beides an, die Truecrypt einzeln oder in Kombination zum Öffnen der Laufwerke verwendet. Als Schlüssel kann jede auf dem System vorhandene Datei dienen, aus Sicherheitsgründen sollte diese aber mindestens 16 Byte groß sein. Abschließend generiert Truecrypt als internen Schlüssel ein zufälliges Bitmuster aus Mausbewegungen oder einer Tastatureingabe. Danach ist Ihr verschlüsseltes Laufwerk einsatzbereit.

Einen Schwachpunkt der Truecrypt-Container stellt ihr Header dar: Schon eine Störung einzelner Bits darin macht das Mounten des verschlüsselten Volumes unmöglich. Daher empfiehlt es sich, diesen Header mit dem Befehl truecrypt --backup-header SicherungsdateiVolume zu sichern. Der Aufruf truecrypt --restore-header SicherungsdateiVolume stellen die die Kopfdateien im Schadensfall wieder her.

TIPP

Mit dem Aufruf truecrypt -C Container ändern Sie nachträglich die Art der Authentifizierung für einen Container oder ein verschlüsseltes Laufwerk.

Laufwerke einbinden

Das Einhängen eines Laufwerks oder Containers vollzieht sich in zwei Schritten: Zuerst legt Truecrypt ein virtuelles Device namens truecryptZahl im Verzeichnis /dev/mapper an. Danach hängt das Programm das Device an eine beliebige Stelle im Dateisystem ein (Abbildung 2).

Abbildung 2: Vor dem Einhängen in das Dateisystem mappt Truecrypt die Datei oder Partition als physikalisches Gerät (Device).

Abbildung 2: Vor dem Einhängen in das Dateisystem mappt Truecrypt die Datei oder Partition als physikalisches Gerät (Device).

Normalerweise erledigen Sie mit einem Aufruf beides: truecrypt Container/Pfad/zum/Mountpoint mountet das Objekt an der gewünschten Stelle im Dateisystem. Möchten Sie ein Objekt lediglich mappen, ohne es einzuhängen, tippen Sie truecrypt -N ZahlContainer. Das Kommando truecrypt Container mappt die Partition oder den Container mit einer automatisch zugewiesenen, fortlaufenden Devicenummer.

Der Aufruf truecrypt -l zeigt eine Übersicht aller gemappten Container. Um die Zuordnungen aufzuheben, tippen Sie entweder truecrypt -d, um alle gemappten Verbindungen zu lösen, oder truecrypt -d Device, um die Zuweisung eines einzelnen Laufwerks aufzuheben.

Versteckspiel

Als besonderes Feature ermöglicht es Truecrypt, Volumes zu verstecken: Ein Container oder eine Partition enthält am Ende des verschlüsselten Dateisystems ein weiteres, dessen Existenz nicht nachzuweisen ist. Zum Erstellen der versteckten Partition gehen Sie wie folgt vor:

  • Erstellen Sie einen normalen Container.
  • Rufen Sie im Anschluss das erstellte Objekt mit dem Befehl truecrypt -c Container auf, und wählen Sie als Volume-Type Hidden.
  • Der gewählte Zugriffsschutz (Passwort oder Schlüsseldatei) muss sich von dem des äußeren Containers unterscheiden.
  • Die gewählte Größe muss kleiner sein als die des Wirtscontainers.

Als Unterscheidungsmerkmal, welches Volume gemeint ist, dient das Passwort oder das Keyfile. Zum Mounten des Wirtscontainers tippen Sie beispielsweise truecrypt hidden.tc /media/tc -p Passwort1 während Sie das geschützte Volume mit truecrypt hidden.tc /media/tc -p Passwort2 einhängen.

Um das versteckte Volume vor dem Überschreiben zu schützen, empfiehlt es sich, das äußere Volume immer mit der Option -P wie protect zu mounten. In diesem Fall fragt Truecrypt zuerst nach dem Passwort des äußeren, und anschließend nach dem des inneren Volumes.

Tägliche Arbeit

Wer seine verschlüsselten Daten lieber auf einer CD oder DVD aufbewahren möchte, braucht nur den erstellten Container zu brennen und kann diesen direkt von der CD aus mounten. Da Truecrypt jedoch sehr empfindlich auf Bitfehler – speziell im Kopf der Datei – reagiert, reichen wenige Kratzer auf dem Datenträger, um den Container unbrauchbar zu machen.

Ein angenehmer Nebeneffekt der Tatsache, dass Truecrypt ursprünglich für Windows entwickelt wurde, ist die Kompatibilität der verschlüsselten Objekte zwischen beiden Plattformen. Lediglich das verwendete Dateisystem stellt unter Umständen ein Hindernis dar. Möchten Sie Ext2/3 verwenden, dann rüsten Sie Windows mit dem entsprechenden Treiber nach ([3],[4]).

Fazit

Wer nach einer stabilen und durchdachten Lösung zum Verschlüsseln seiner Daten sucht, findet sie in Truecrypt. Zwar lässt sich das Programm derzeit nur auf der Kommandozeile bedienen, doch dieses Manko wollen die Entwickler im nächsten Release beheben. Mit einer maximalen Containergröße von 8,5 Petabyte dürfte auch der aktivste Datensammler einige Zeit mit verschlüsseltem Speicher versorgt sein.

Infos

[1] Laptop-Klau bei VW: http://www.spiegel.de/panorama/justiz/0,1518,441671,00.html

[2] Truecrypt: http://www.truecrypt.org

[3] Ext2IFS: http://fs-driver.org/

[4] Ext2IFS im Einsatz: T. Leichtenstern, “Grenzübertritt”, LinuxUser 10/2006, S. 50, http://www.linux-user.de/ausgabe/2006/10/050-win-ext2/

LinuxUser 12/2006 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben