Nach einer mehrstündigen Suche im Web, nach Tipps, Anleitungen, etc. Ausschau haltend bin ich letztenendes bei TrueCrypt gelandet. Einer der letzten Suchbegriffkombinationen war »file encryption cross plattform transparent«, damit ist eigentlich ganz gut umrissen, was ich gesucht habe:
Es gab einige kommerzielle Lösungen, jedoch mit nur mäßiger bzw. experimenteller Unterstützung für Linux. Andere kostenfreie Lösungen waren lediglich für Windows-PCs gedacht gewesen.
Die einzige Software, welche sowohl unter Windows als auch unter Linux verfügbar war: TrueCrypt.
TrueCrypt kann auf der Website www.truecrypt.org heruntergeladen werden. Für diese Anleitung habe ich die Version 4.1 verwendet, sowohl unter Windows als auch unter Linux.
Zunächst das Konzept von TrueCrypt bzw. der transparenten Datenverschlüsselung allgemein.
TrueCrypt kann entweder komplette Partitionen verschlüsseln, oder es werden sogenannte »Container« angelegt. Bei einem Container handelt es sich um eine Datei, welche nur von TrueCrypt und mit dem richtigen Passwort geöffnet werden kann. Ich habe die Verwendung von Containern vorgezogen, da ich so die Daten im Verschlüsselten Zustand auf eine CD oder auf eine DVD brennen kann.
Unabhängig davon ob nun eine komplette Partition oder ein Container verschlüsselt worden sind, der Ablauf ist immer identisch: Die Partition/der Container sind mit TrueCrypt zu »mounten«, also in das bestehende Dateisystem einzuhängen. Unter Windows wird der Partition/dem Container ein Laufwerksbuchstabe zugewiesen, unter Linux kann der Container wie gewohnt gemountet werden.
Die Verschlüsselung der Partitionen/Container kann folgenden Algorithmen erfolgen: AES, Blowfish, Twofish, CAST5, Serpent und Triple DES. Auch eine Kaskadierung der genannten Algorithmen ist möglich, die Kaskaden sind jedoch von TrueCrypt vorgegeben.
TrueCrypt bietet mit dem sogenannten »plausible deniability«-Konzept eine weitere Sicherheit. Hierbei wird in eine bestehende Partition/einen bestehenden Container ein weiterer versteckt eingebunden. Wird man nun gezwungen die Verschlüsselung aufzuheben, bekommt der Uneingeweihte nur den Inhalt des ersten Containers zu sehen. Der zweite samt Inhalt bleibt verborgen.
Die wichtigen, vertraulichen Daten sind im scheinbar freien Speicherbereich des entschlüsselten Bereichs gespeichert.
Achtung! Die Daten sind selbstverständlich im gemounteten Zustand »verwundbar«. Sie können mit Viren/Würmern/Trojanern infiziert, ausgelesen oder verändert werden.
Verschlüsselte Bereiche auf einer Festplatte dienen nicht dazu, die Daten vor solchen Angriffen zu schützen. Im Falle eines unberechtigten Zugriffs, beispielsweise durch einen Festplattendiebstahl oder dem Einlegen einer Knoppix-CD um »mal bischen auf die Festplatte zu schauen«, sind die Daten sicher bzw. für den Angreifer unbrauchbar.
Gemountet sind die Daten ebenso unsicher wie der Rest der Maschine. Daher sind andere Sicherheitskonzepte wie Anti-Virus-Software, Firewall, Zugriffsbeschränkungen nicht etwa unerlässlich, sondern trotz Verschlüsselung sinnvoll und notwendig.
Unter Windows ist eine GUI vorhanden, welche Schritt für Schritt durch das Anlegen einer Partition bzw. eines Containers führt. Die englischsprachige Anleitung (als .pdf im Downloadbereich der TrueCrypt-Website zu finden) erklärt dies sehr ausführlich. Um zu zeigen, dass es mit der deutschen Sprachdatei überhaupt kein Problem ist, selbst einen Container anzulegen, hier ein paar Bilder vom Ablauf (einfach auf das Bild klicken um es in Originalgröße angezeigt zu bekommen):
TrueCrypt einfach installieren und dann Starten. Nach dem Doppeklick auf das Icon präsentiert sich das Programm wie auf dem hier abgebildeten Screenshot. Um einen neuen Container anzulegen, einfach auf | klicken.Im folgenden Fenster wird man gefragt ob man ein einfaches Volume oder ein sogenanntes »hidden Volume« entsprechend des bereits erwähnten »plausible deniability«-Konzepts erstellen will. Ich habe mich für ein normales Volume entschieden und demnach mit | bestätigt.
Nun noch den Speicherort des Volumes auswählen. Entweder eine Datei für einen Container oder eine komplette Partition. Für den Container kann eine Datei ausgewählt werden, der Speicherort ist zweitrangig, da Dateien nunmal einfach woandershin kopiert oder verschoben werden können. Wiederum nach der Auswahl mit | bestätigen.Nun wird man nach der Verschlüsselungsart bzw. der Verschlüsselungsstärke (Kaskadierung) gefragt. Den gewünschten Algorithmus bzw. die gewünschte Kombination als Kaskadierung auswählen und mit | bestätigen.
Ein Container muss nicht zwangsläufig eine komplette Partition ausfüllen. Ich habe für diese Anleitung einen kleinen Container mit lediglich 10 MB Größe angelegt. Mehr als groß genug für ein Passwortarchiv und/oder GnuPG-Keyrings. Hat man die gewünschte Größe angegeben geht es mit | weiter.Die obligatorische Frage nach dem Passwort. Bezüglich des Passworts habe ich mich ja schon an dieser Stelle zur Genüge ausgelassen. Nach der Eingabe mit bestätigen. |
Nun wird der Container formatiert. Da ich auch von Linux aus auf den Container zugreifen will, habe ich ihn mit FAT formatiert. Natürlich fehlen in diesem Fall der Datei jegliche linuxspezifischen Zugriffsrechte, jedoch werden in solchen Containern vermutlich nur Nutzdaten und keine Programme und Scripte gesichert. | Bei einem 10 MB Container ist das Formatieren sehr schnell erledigt. Bei größeren Containern oder gar ganzen Partitionen dauert es entsprechend länger. Ein weiterer Vorteil der Container gegenüber einer Partition: Einfach den Container kopieren, schon hat man zwei davon. |
Nach dem Bestätigen der Zusammenfassung mit | kann man wählen, ob man noch einen Container oder eine Partition erstellen möchte, oder aber ob man damit vorerst fertig ist.Nun kann unten der Container ausgewählt und anschließend gemountet werden. Unter Windows wird er als Laufwerk mit entsprechendem Buchstaben eingehängt. |
Unter Windows wird der gemountete Container wie eine Festplatte bzw. Partition angezeigt und eingebunden. Auf dem Screenshot als Laufwerk e:\. | Natürlich auch unter Linux kein Problem: Nur eben nach /mnt/truecrypt gemountet. Mehr dazu im nächsten Abschnitt. |
Man kann mit dem gemounteten Container so arbeiten, als würde es sich um ein Laufwerk handeln. Dies bezeichnet man als »transparent encryption«.
Im Gegensatz zu in manchen Foren vorgeschlagenen Lösungen wie passwortgeschützte .rar- oder .7zip-Archive kann ohne großen Aufwand direkt mit den Daten gearbeitet werden.
Verwendungszwecke gibt es zuhauf. Ich empfehle beispielsweise Passwörter in solche Container abzulegen, eventuell natürlich nochmals durch einen »Passwortsafe« geschützt, beispielsweise Password Safe.
Bei den früheren Versionen (ich hatte mit Version 4.1 für Linux begonnen), handelte es sich lediglich um ein Kommandozeilentool. GUI war noch keine verfügbar. Der Funktionsumfang war leider ebenfalls eingeschränkt, so konnte man mit TrueCrypt unter Linux damals nur komplette Partitionen verschlüsseln, allerdings keine einzelnen Container anlegen.
In der Version 5.0a für Ubuntu war eine GUI dabei, welche dem Funktionsumfang der Variante für Windows nicht nachsteht:
Gemountet werden zumindest bei mir unter Ubuntu die Container nach /media/truecryptn wobei »n« die »Slotnummer« angibt. Die GUI fragt sowohl nach dem Passwort vom Container wie auch nach dem Systempasswort (Root-Passwort) damit das Volume eingebunden werden kann.
Einen bereits existierenden Container von der Kommandozeile oder per Script zu mounten ist dafür sehr simpel:
~$ truecrypt --filesystem vfat --mount-options \
"rw,sync,uid=turanga,umask=0007" \
/home/data/versteck /mnt/truecrypt/
Enter password for '/home/turanga/versteck':
~$ mount
[...]
/dev/mapper/truecrypt0 on /mnt/truecrypt type vfat \
(rw,sync,uid=1000,umask=0007)
Natürlich ist die uid anzupassen, aber das sollte ja selbstverständlich sein. Das »sync« Flag ist optional, allerdings sollte es verwendet werden wenn man Medien benutzt, welche entfernt werden könnten. Beispielsweise USB-Devices, Firewire oder Ähnliches.
Die Entwicklung von TrueCrypt schreitet stetig voran. Ich hatte lange keine vollständige Partition oder gar einen kompletten Datenträger mit TrueCrypt verschlüsselt. Inzwischen ist dies jedoch als Eintrag in meinem Blog nachzulesen: TrueCrypt: Eine komplette Partition bzw. Festplatte verschlüsseln.