Die Preise für mobile Speichergeräte purzeln ja in der letzten Zeit ins Bodenlose. Grund genug, mir einen Stick mit ca. 16 GB Speichervolumen zuzulegen. Im Tempel des Geizes bekommt man den mit versprochener Linux-Unterstützung für nicht mal 20 €. Alles in allem nicht schlecht und auch ein Linux-Iso kann so komplett gespeichert werden. Je größer der Stick ist, desto mehr Daten, auch privater Natur, lassen sich darauf speichern. Da der Stick allerdings ziemlich klein und die Gefahr, ihn zu verlieren ziemlich groß ist, sollen diese Daten vor den Blicken neugieriger Finder sicher verborgen werden. Das Werkzeug meiner Wahl ist da TrueCrypt. Das [[Open Source]]-Tool ist unter Windows und auch unter Linux verbreitet.
Für mich ergibt sich folgende Aufgabenstellung:
Laut den gängigen Anleitungen im Netz und der Fachpresse sollte das keine allzu große Hürde sein.
Um Punkt 1 zu erfüllen, muss der Stick also in einem nativen Windows-Format formatiert werden. Das schränkt die Auswahl derzeit auf FAT und NTFS ein. Alle Linux-Dateisysteme fallen auf Grund fehlender Windows-Unterstützung aus. Obwohl es auch für Windows Ext-Treiber gibt, sehe ich in diesen eher Fluch denn Segen ( » nicht nativ auf Windows vorhanden, keinerlei Rücksichtnahme auf die Linux-Dateirechte). Um der Forderung des zweitens Punktes zu entsprechen, fällt ebenfalls FAT aus dem dem Raster. Das ist zwar auf den Wechselmedien ein weit verbreitetes Dateisystem, doch leider lassen sich dort keine Dateien speichern, die größer als vier GB sind.
Um TrueCrypt auch auf Rechnern ohne eigene TrueCrypt-Installationen nutzen zu können, benötigt man statisch kompilierte Binaries, die direkt vom Stick aus gestartet werden können. Logischerweise darf der Teil, auf dem sie gespeichert sind, nicht verschlüsselt sein. Also benötigt man zwei Partitionen auf dem Stick. Alternativ kann man auch eine Partition erstellen, die einen verschlüsselten Container enthält. Der Container selber befindet sich auf dem unverschlüsselten Laufwerk und nimmt dort den größten Teil ein.
Soweit zu den Vorbedingungen, nun geht es ans Eingemachte.
Ich entschließe mich für die erste Variante der Sticknutzung und will meinen Stick partitionieren. Dies hat den Vorteil, dass ich die Datei, die als Container dient, nicht aus Versehen löschen kann. Also starte ich GParted — ein Tool zum Erstellen und Bearbeiten von Partitionen. Es verweigert mir allerdings die Dienste. Zunächst nehme ich an, dass es an den fehlenden NTFS-Tools liegt. Doch auch nach deren Installationen:
sudo apt-get install ntfsprogs
stellt sich keinerlei Besserung ein. GParted weigert sich standhaft, mir auf dem Stick zwei Partitionen einzurichten. Einmal meckert es herum, dass es keine zwei primären Partitionen auf einem Stick einrichten kann, einmal passt es ihm nicht, dass ich eine primäre und darin zwei logische Laufwerke einrichten möchte.
So greife ich also wieder auf das bewährte [[fdisk]] im [[Terminal]] zurück. Damit lösche ich die bestehende Partionstabelle und erstelle zwei NTFS-Partitionen. Anschließend verpasse ich den neuen Partitionen noch das richtige Dateisystem:
sudo mkntfs –f –L name_der_partition /dev/sdc1
Dabei steht sdc für den USB-Stick und die Zahl 1 für dessen erste Partition. Für die zweite muss der Schritt entsprechend angepasst wiederholt werden. Somit ist für den Augenblick der USB-Stick vorbereitetet.
Im folgenden Schritt muss ich TrueCrypt installieren. Das dazu notwendige Paket lade ich mir von der Projektseite. Dort wähle ich Ubuntu x86 für mein 32-Bit Ubuntu aus und lade mir das gepackte File herunter. Zum Entpacken gebe ich den folgenden Befehl ein:
tar xvfz truecrypt-6.1a-ubuntu-x86.tar.gz
Dadurch erhalte ich eine ausführbare Datei:
./truecrypt-6.1a-setup-ubuntu-x86
Anschließend öffnet sich eine Message-Box und interviewt mich zum weiteren Vorgehen. Mir bietet sich die Wahl zwischen dem sofortigen Installieren oder der Erzeugung eines DEB-Pakets. Da ich mir vom letzteren eine bessere Integration, sprich Entfernen und nochmaliges Installieren, verspreche, wähle ich die Erzeugung des Pakets. Dieses [[dpkg|installiere]] ich dann folgendermaßen:
sudo dpkg –i /tmp/truecrypt_6.1a-0_i386.deb
Der Installer erstellt das Paket im Verzeichnis /tmp. Dort würde es automatisch beim nächsten Systemstart gelöscht werden.
Nach der Installation starte ich TrueCrypt über Anwendungen » Sonstige » Truecrypt. Alternativ kann das Programm auch per truecrypt im Terminal aufgerufen werden. Ich habe diese Anleitung (Seite wurde zwischenzeitlich offline genommen, so dass ich diese Anleitung demnächst selber in Netz bringen werde, 19. Mai 2009) als Inspiration genutzt. Dort wird der Weg beschrieben, wie man unter Windows einen TrueCrypt-Container auf einen USB-Stick bekommt. Das Verschlüsseln einer Partition läuft aber ähnlich ab. Daher erspare ich es mir, weiter in die Einzelheiten einzusteigen. Viel besser kann man es kaum beschreiben.
Auch auf der TrueCrypt-Seite erhält man ein vollständiges Tutorial, allerdings in englischer Sprache verfasst. Das Interface selber ist ebenfalls recht intuitiv zu bedienen.
Kommen wir also zu den Problemen
.
Bei der Erstellung der verschlüsselten Partition kommt irgendwann die Frage auf, ob auch Dateien größer als vier GB gespeichert werden sollen. Gemäß meinen Vorüberlegungen sage ich artig Ja und bekomme im folgenden Fenster nur noch ext2 und ext3 als einsetzbare Dateiformate angeboten. Ich beginne, Schlimmes zu ahnen. Diese Ahnung bestätige ich mir, in dem ich einen Schritt zurück gehe. Ich erzähle TrueCrypt, dass ich keine Dateien, die größer als vier GB sind, speichern möchte. Klicke ich mich jetzt wieder einen Schritt weiter, bekomme ich auch FAT in der Auswahlliste angeboten. Super — TrueCrypt unter Ubuntu kann kein NTFS!
Einigermaßen gefrustet starte ich Windows XP. Das sollte schließlich NTFS können. Dem folgen Ernüchterung #2 und #3. Zum einen kann Windows keine zwei Partitionen auf einem USB-Stick erkennen, ebensowenig wie einen USB-Stick überhaupt partitionieren . Da scheint es für Windows einen gewaltigen Unterschied, zwischen einer USB-Festplatte und einem USB-Stick zu geben. Ich bin hellauf begeistert
. Aber mehr noch — Windows ist überhaupt nicht dazu in der Lage, überhaupt einen USB-Stick mit NTFS zu formatieren. Zumindest schließe ich das aus dem Verhalten der Datenträgerverwaltung, die mir nur FAT anbietet
.
Immerhin lerne ich so auch TrueCrypt unter Windows kennen, dass doch einiges an Funktionen mehr bietet, als seine Version für Linux. Allerdings bringt mich das nicht viel näher an mein Ziel
.
Meinen ursprünglichen Plan werfe ich als über den Haufen. Die Sache mit der Partitionierung scheitert an Windows Unvermögen, die Partitionen zu erkennen. Um die Aufgabe zu bewältigen, bleibt mir nur ein Vorgehen:
Bei Punkt 3 müssen allerdings einige MB frei bleiben, um die TrueCrypt-Binarys dort ablegen zu können. Mit denen soll der Stick dann auch auf Rechnern ohne TrueCrypt-Installation nutzbar gemacht werden.
Dafür bietet TrueCrypt unter Windows den Punkt: Tools » Traveller Disk Setup… . Damit werden auf dem nicht verschlüsselten Teil des Sticks alle notwendigen Daten gespeichert, um ihn unter Windows nutzbar zu machen. Soll das Ganze auch unter Linux funktionieren, benötigt man vorkompilierte Binaries. Diese kann man entweder selber erstellen. Wenn man davon keine Ahnung hat, so wie ich
, kann man sich die auch von der aktuellen LinuxUser (2.2009) besorgen.
Ist der Stick erstellt, so sollte man dringend die Funktion Backup Volume Header… unter Tools nutzen. Der Header ist ein relativ schnell zerstörbarer Teil des verschlüsselten Laufwerks, ohne den sich aber der Inhalt nicht mehr entschlüsseln lässt. Daher sollte man den Header unbedingt nach der Erstellung der Verschlüsselung sichern. Dazu eignet sich unter Ubuntu (ab Version 8.10) z.B. das .Private–Verzeichnis im Benutzerverzeichnis.
Fazit
Nach allem, was ich in den letzten Tagen gesehen habe, funktioniert TrueCrypt wirklich recht einfach. Dabei bietet das Open Source-Tool unter Windows einen viel größeren Funktionsumfang. Dagegen bietet Linux flexiblere Werkzeuge, etwa um USB-Sticks auf ihren Einsatz vorzubereiten.
Sollte man spezielle Wünsche, siehe oben, haben, kann es aber auch leicht etwas komplizierter werden. Prinzipiell müsste Windows (XP) nur mal lernen, vernünftig mit den immer größer werdenden USB-Sticks umzugehen. Andersherum müsste TrueCrypt nur an die eigene Funktionsvielfalt unter Windows anknüpfen oder wenigsten den Umgang mit NTFS unter Linux lernen. Ich bin gespannt, wer dabei schneller ist
. Vielleicht ist Vista da auch mal seinem Ahn in etwas voraus.
Apropos Linux: Unter OpenSUSE 11.1 war es mir in verschiedenen Versuchen absolut unmöglich, den erstellen NTFS-Container zu öffnen. OpenSUSE stürzte reproduzierbar direkt nach der Passwort-Eingabe ab. Einige Recherche im Netz ergab, dass die verwendete Version des ntfs-3g–Treibers nicht vernünftig mit TrueCrypt arbeitet. Allerdings brachten auch Versuche mit anderen, aktuelleren Versionen keinen Erfolg.
Sollte man allerdings etwas flexibler in seinen Ansprüchen sein, bieten sich folgende Lösungen zum flexibleren Einsatz an:
Dabei gehen die Einsatzmöglichkeiten von TrueCrypt weit über das hier angesprochene hinaus. So lassen sich auch Systemplatten verschlüsseln (etwa beim Einsatz von Notebooks). Der Schutz durch die Passphrase kann durch Keyfiles ersetzt oder ergänzt werden. Weiterhin lassen sich die verschlüsselten Daten auch komplett in einem versteckten, verschlüsselten Container-File verbergen.
Mit TrueCrypt wird das Verschlüsseln von Datenträgern ähnlich einfach, wie der Einsatz von [[OTR]] oder [[GnuPG]] beim Chatten bzw. im Mail-Verkehr. Umso unverständlicher, dass immer wieder Nachrichten durch die Medien geistern, die verlauten, dass hochsensible und geheime Daten auf verlorengegangenen Datenträger ihren Weg in die Öffentlichkeit fanden…
Hallo,
sehr schönes Tutorial, hab ich mit viel Interesse gelesen.
Mich hat allerdings Deine Äußerung, das Windows XP keine USB Sticks mit NTFS formatieren will, etwas stutzig gemacht. Es geht schon, mit nem kleinen Trick:
http://www.winsupportforum.de/forum/hardware-allgemein/1478-usb-stick-ntfs-formatieren.html
Kurz, den Datenträger nicht für “schnelles Entfernen” optimieren, sondern für “Leistung optimieren”.
Grüße
norwied