Paranoides Debian - Verschlüsseln mit TrueCrypt

Lieber Leser, liebe Leserin,

Dieses Howto soll Ihnen den Umgang mit dem Ver- und Entschlüsselungstool TrueCrypt unter GNU/Linux Debian nähr bringen.
Dieses Howto umfasst die Beschreibung der Installation, die grundlegende Bedienung und Funktionsweisen, sowie die Umsetzung eines praxisnahen Beispiels, anhand der Verschlüsselung der eigenen /home-Partition.

Voraussetzungen In diesem Howto wurde das zu diesem Zeitpunkt (August 2006) Testingsystem "Etch" verwendet.

Information

Befehle, welche hier mit # am Zeilenanfang geschrieben sind müssen mit Systemrechten (root) ausgeührt werden. Alle mit $ beginnenden Zeilen können aber auch als normaler User ausgeführt werden.

Kommentare innerhalb der Konsole sind Grün hinterlegt und dürfen nicht getippt werden!

Achtung Dieses Howto wurde nach bestem Wissen und Gewissen verfasst und zwar in der Hoffnung dass es irgendjemanden helfen wird. Ich kann jedoch keinerlei Garantie auf die Richtigkeit und Funktionsfähigkeit der hier erläuterten Schritte geben.

Tippen Sie nicht irgendeinen Befehl ein ohne verstanden zu haben was er macht. Ziehen Sie wenn notwendig auch andere Quellen heran um Ihr Verständnis zu erweitern.

Wenn Sie dies nicht berücksichtigen kann es schwere Folgen für Sie und Ihre Daten haben, da manche Befehle direkt in das Dateisystem eingreifen und in dieser Anleitung zum Teil auch am Dateisystem direkt gearbeitet wird können unsachgemäß angewendete Befehle Ihren kompletten Datenbestand unwiederruflich zerstören.

Lizenzbedingungen Creative Commons License

Inhalt

Einführung

Verschlüsselung wird ein immer wichtigeres Thema. Niemand möchte dass die eigenen privaten Daten in fremde Hände fallen und diese so missbraucht werden können oder die eigene Privatsphäre gestört wird.

Ein wichtiger Faktor bei der Verschlüsselung ist neben sicherlich den Hauptkriterien der Quellenoffenheit, des Verschlüsselungsalgorithmus, der Verschlüsselungsstärke und die für den Nutzer einfache Anwendung auch das als "plausible deniability" bezeichnete Konzept des glaubwürdigen Abstreitens einer Verschlüsselung.

"Plausible deniability" bezeichnet die Überlegung dass glaubwürdig abgestritten werden kann dass es sich bei Daten um verschlüsselte Daten handelt, oder sogar andere Daten als die tatsächlich verschlüsselten und geheimen Daten vorgetäuscht werden können.

Die Open-Source Software TrueCrypt erfüllt all diese Kriterien vollstens. TrueCrypt ist quelloffen und unterstützt insgesamt 11 offene Algorithmen zur Datenverschlüsselung.

Das Konzept des "Plausible deniability" wird durch zwei Dinge unterstützt:

TrueCrypt arbeitet transparent, so dass Sie von dem eigentlichen Ver- und Entschlüsselungsvorgang gar nichts merken und normal arbeiten können. Des Weiteren schreibt TrueCrypt keinerlei entschlüsselte Daten auf die Festplatte, was ein Sicherheitsrisiko darstellen würde, da alle Daten Spuren auf der Festplatte hinterlassen, welche durch forensische Methoden auch nach dem Löschen wiederhergestellt werden können.

Somit stellt TrueCrypt das perfekte Programm zur Verschlüsselung der eigenen Daten dar. Und nun wünsche ich Ihnen viel Spaß und viele Nerven für die nun folgende Installation.

TrueCrypt installieren

Auf der Downloadseite von TrueCrypt kann die aktuelle Version der Software bezogen werden. Wie Sie sicherlich festgestellt haben, stellen die Entwickler leider keine Pakete für Debian bereit woraus die Konsequenz gezogen wird dass die Software selbst zu kompilieren ist.

Kompilieren vorbereiten

Bevor jedoch irgend etwas kompiliert wird müssen noch einige Vorbereitungen getroffen werden. TrueCrypt benötigt die Quellen des von Ihnen verwendeten Kernels (uname -r) um seine Module daraus bauen zu können. Des weiteren werden die Pakete dmsetup und build-essential benötigt. Mit den folgenden Kommandos installieren Sie die benötigten Pakete.
# aptitude install build-essential dmsetup linux-source-2.6.x
Die Kernelsourcen werden nur heruntergeladen und in das Verzeichnis /usr/src als .tar.bz2 abgelegt. Diese müssen entpackt werden und anschließend muss noch ein symbolischer Link auf die Sourcen angelegt werden.
# cd /usr/src
# tar -xvjf linux-source-2.6.x.tar.bz2
# ln -s /usr/src/linux-src-2.6.x /usr/src/linux

Um TrueCrypt nach der Kompilation fehlerfrei nutzen zu können muss es unter den gleichen Bedingungen kompiliert werden, mit welchen der eigene Kernel kompiliert wurde. Sollten Sie Ihren Kernel selbst kompiliert haben so sollte dies generell der Fall sein. Sollten Sie jedoch einen Kernel aus den Debianquellen mittels aptitude installiert haben, so müssen Sie versuchen die bei der Kompilation des Kernels verwendeten Bedingungen herzustellen.

Bei den meißten Systemen reicht es bereits die gleiche Version des Kompilers für das Kompilieren zu verwenden mit welcher auch der Kernel übersetzt wurde. Um dies zu erreichen ermitteln Sie zuerst die für Ihren Kernel verwendete Kompilerversion und richten diese anschließend als Standard ein.

$ cat /proc/version
Linux version 2.6.16-2-686 (Debian 2.6.16-17) (waldi@debian.org) (gcc version 4.0.4 20060630 (prerelease) (Debian 4.0.3-4)) #1 Sat Jul 15 21:59:21 UTC 2006
Der hier verwendete Kompiler ist GCC 4.0; die Unterversion ist uninteressant. Nun muss diese Version auf Ihrem System als Standardkompiler eingerichtet werden. Zu nächst sollten sie prüfen ob Sie die benötigte Version auf Ihrem System installiert haben.
$ dpkg -l | grep gcc-4
ii   gcc-4.0        4.0.3-3 The GNU C compiler
ii   gcc-4.0-base   4.0.3-3 The GNU Compiler Collection (base package)
ii   gcc-4.1        4.1.1-5 The GNU C compiler
ii   gcc-4.1-base   4.1.1-5 The GNU Compiler Collection (base package)
In diesem Fall ist er bereits installiert. Sollte das nicht der Fall sein kann er ganz einfach via aptitude nachinstalliert werden.
# aptitude install gcc-4.0 gcc-4.0-base
Als Standardkompiler fungiert auf Ihrem System das Programm auf welches der symbolische Link /usr/bin/gcc zeigt. Zeigt dieser nicht auf den zum kompilieren benötigten Kompiler, so muss dieser Link gelöscht, und ein neuer Link angelegt werden.
$ ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 16 2006-08-17 08:58 /usr/bin/gcc -> /usr/bin/gcc-4.1
# rm -f /usr/bin/gcc
# ln -s /usr/bin/gcc-4.0 /usr/bin/gcc
Nun sollten die Vorbereitungen für das Kompilieren abgeschlossen sein.

TrueCrypt Quellcode herunterladen und kompilieren

Laden Sie sich die Quellen von TrueCrypt auf der Downloadseite herunter. Speichern Sie das tar.gz in einen beliebigen Ordner (z.B. Ihrem /home-Verzeichnis). Entpacken Sie das Archiv mit dem nachfolgenden Kommando.
$ tar -xvzf truecrypt-x.y-source-code.tar.gz
Sollten Sie einen Kernel >= 2.6.18 verwenden, so müssen Sie noch eine kleine Änderung am TrueCrypt Quellcode vornehmen bevor Sie mit dem Kompilieren beginnen können. Laden Sie zu diesem Zweck diesen Patch herunter und führen Sie nachfolgenden Befehl aus.
$ patch truecrypt-x.y/Linux/Kernel/Dm-target.c Linux_gt_eq_2.6.18.diff
Wechseln Sie nun in dem entpackten Verzeichnis in den Ordner Linux und führen Sie das dort hinterlegte Skript build.sh aus. Sie werden gefragt, ob die Kernelsources (/usr/src/linux) anhand der Konfiguration des momentan laufenden Kernels konfiguriert werden soll. Dies ist positiv (Y) zu beantworten.
$ cd truecrypt-x.y/Linux/
# ./build.sh
Configure kernel source according to the currently running kernel? [Y/n]: Y
Nun heißt es lange warten. Der build dauerte auf meinem verwendeten System (P4 1,6GHz) satte 30 Minuten. Sollten hier Fehler auftreten, meißtens dass ein Programm (z.B. dmsetup) nicht installiert ist, muss dieses mittels aptitude nachinstalliert - und build.sh erneut ausgeführt werden.

Ist build.sh erfolgreich durchlaufen, so müssen Sie nun das im selben Verzeichnis liegende Skript install.sh ausführen. Dabei werden Ihnen einige Fragen gestellt welche Sie wie gezeigt beantworten können / sollten.

# ./install.sh
Install binaries to [/usr/bin]:
Install man page to [/usr/share/man]:
Install user guide and kernel module to [/usr/share/truecrypt]:
Allow non-admin users to run TrueCrypt [y/N]: y
Die Ausführung des Skriptes geht relativ zügig von statten und sollte schnell durchlaufen sein. Auch hier kann es zu Meldungen über fehlende Tools kommen welche dann nachinstalliert und install.sh nochmals ausgeführt werden sollte.

Die Installation ist nun abgeschlossen und Ihnen sollte ein Befehl /usr/bin/truecrypt zur Verfügung stehen.

TrueCrypt verwenden

Bevor Sie mit TrueCrypt loslegen, sollten Sie sich das Programm ersteinmal selbst testen lassen, (dies sollte theoretisch bereits implizit beim Aufruf von install.sh geschehen sein, aber man weiß ja nie) indem Sie TrueCrypt mit dem Parameter --test aufrufen und dessen Rückgabewert prüfen.
$ if truecrypt --test &> /dev/null; then echo "Alles klappt"; else echo "Es gibt ein Fehler"; fi
Sollte "Alles klappt" auf dem Bildschirm erscheinen so scheint alles richtig zu funktionieren, anderenfalls heißt es Fehlersuche.

Volumes

Mit TrueCrypt lassen sich sogenannte Volumes erzeugen. Ein Volume ist nichts weiter als ein von TrueCrypt verschlüsselter Bereich auf Ihrer Festplatte. TrueCrypt bietet zwei Möglichkeiten der Volumeerstellung. Ein Volume auf Basis einer Datei ist nichts weiter als dass Sie auf Ihrem Datenträger eine Datei beliebiger Größe haben, in welcher Ihre verschlüsselten Daten gespeichert werden. Mit TrueCrypt haben Sie dann die Möglichkeit diese Datei zu entschlüsseln und in ein Verzeichnis zu mounten. Danach können Sie mit diesem Verzeichnis arbeiten wie mit jedem anderen Verzeichnis auch, nur mit dem Unterschied dass die in diesem Verzeichnis gespeicherten Daten von TrueCrypt sicher verschlüsselt werden.

Ein Volume auf Basis einer Partition bzw. einer kompletten Festplatte verhält sich von der Verwendung des Volumes ebenso transparent wie es bei einem Volume auf Dateibasis der Fall ist. Der Unterschied zwischen einem Volume auf Dateibasis und einem Volume auf Partitionsbasis ist dass bei einem Volume auf Partitionsbasis die komplette Partition, bzw. die komplette Festplatte verschlüsselt wird.

TrueCrypt-Volume auf Dateibasis

Damit Sie sich ein wenig in das Programm einfinden können wird nachfolgend beschrieben wie sie ein Volume auf Dateibasis mit einer Größe von 10MB anlegen und dieses mounten können.

Der Parameter -c eröffnet einen Benutzerdialog welcher Sie die notwendigen Schritte durchführen lässt.
$ truecrypt -c
Volume type:
 1) Normal
 2) Hidden
Select [1]: 1

Geben Sie hier einen Pfad zu einer nicht existierenden Datei in Ihrem /home-Verzeichnis an.
Enter file or device path for new volume: /home/user/volume.tc
Als Dateisystem wählen Sie der Einfachheit halber ersteinmal FAT.
Filesystem:
 1) FAT
 2) None
Select [1]: 1

Hier müssen Sie die Größe der Datei angeben, die Suffixe K,M und G können verwendet werden.
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 10M

Wählen Sie hier einen Hash-Algorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
Select [1]: 1

Wählen Sie hier einen Verschlüsselungsalgorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Encryption algorithm:
 1) AES
 2) Blowfish
 3) CAST5
 4) Serpent
 5) Triple DES
 6) Twofish
 7) AES-Twofish
 8) AES-Twofish-Serpent
 9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Nun müssen Sie zwei Mal ein Passwort eingeben welches zur Ver- und Entschlüsselung verwendet wird. Die Eingabe ist nicht sichtbar.
Enter password for new volume '/home/user/volume.tc':
Re-enter password:

Hier können Sie sogenannte Keyfiles definieren, dazu jedoch später mehr - der Einfachheit halber erstmal leer lassen.
Enter keyfile path [none]:

TrueCrypt will now collect random data.

Wenn Sie eine Maus an Ihrem PC angeschlossen haben, so können Sie mit Y antworten, anderenfalls müssen Sie Ihre Zufallsdaten mit der Tastatur generieren.
Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%

Done: 9.21 MB Speed: 3.16 MB/s Left: 0:00:00
Volume created.
Anschließend sollte sich in Ihrem /home-Verzeichnis eine Datei mit dem Namen "volume.tc" befinden. Wenn Sie diese mit einem Editor öffnen sehen Sie nur Datenmüll. An dieser Stelle greift bereits Konzept des "plausible deniability", da nicht nachgewiesen werden kann dass es sich bei der Datei volume.tc um verschlüsselte Daten handelt, da es keinen Dateiheader gibt bzw. dieser verschlüsselt wurde - die Datei lässt sich nicht von einer Datei voller Zufallswerten (z.B. erzeugt mit dd if=/dev/urandom of=/home/user/volume.tc) unterscheiden.

Nun wird es Zeit dass Sie Ihr Volume das erste Mal mounten und ein paar Daten verschlüsseln. Zum mounten legen Sie am besten ein Verzeichnis in Ihrem /home-Verzeichnis an, in welches das Volume eingehangen wird (hier /home/user/tcmnt).

$ mkdir /home/user/tcmnt
$ truecrypt -M "rw,sync,utf8,uid=$UID,umask=0007" /home/user/volume.tc /home/user/tcmnt
Hier müssen Sie das Password eingeben, welches Sie bei der Erstellung des Volumes angegeben haben. Die Eingabe ist nicht Sichtbar.
Enter password for '/home/user/volume.tc':
Wie Sie bestimmt gemerkt haben ist der Befehl zum mounten des TrueCrypt-Volumes relativ umfangreich und nicht unbedingt selbstklärend.

Um ein Volume zu mounten reicht es bereits den Befehl "truecrypt /pfad/zum/volume /pfad/zum/mount/verzeichnis" auszuführen -
allerdings gehört das gemountete Verzeichnis dann standardgemäß dem User und der Gruppe root was zur Folge hat das von normalen Benutzern nichts in das Verzeichnis geschrieben werden kann.

Da kommt der Parameter -M (Langform --mount-options) ins Spiel.
Er ist äquivalent zu dem Parameter -o des Befehls mount und kann einige Eigenschaften enthalten welche das mount-Verzeichnis annehmen soll.

In diesen Fall sind die Optionen "rw" fü das Lesen und Schreiben, "sync" für die Synchonisation von Wechseldatenträgern (z.B. USB-Sticks), "utf8" für Unicode unterstützung, "uid=$UID" um dem Verzeichnis den eigenen Usernamen und die eigene Gruppe zuzuordnen ($UID entält die eigene Userid) und "umask=0007" um das Mountverzeichnis für den User und die Gruppe lesbar sowie beschreibbar zu machen gesetzt.

Um zu überprüfen ob das Volume auch anständig gemountet wurde, kann truecrypt mit dem Parameter -l aufgerufen werden. Dieser Aufruf listet alle eingehangenen TrueCrypt-Volumes auf.

$ truecrypt -l
/dev/mapper/truecrypt0 /home/user/volume.tc
Das virtuelle Gerät /dev/mapper/truecrypt0 (=das Volumen /home/user/volume.tc) ist also auf /home/user/tcmnt eingehangen.

Nun können Sie also das Verzeichnis /home/user/tcmnt wie jedes andere Verzeichnis auch verwenden und jegliche Dateioperationen durchführen. Sie können Dateien anlegen, verschieben, kopieren, löschen usw..

Um das TrueCrypt-Volume auszuhängen rufen Sie truecrypt mit dem Parameter -d auf. Der Parameter akzeptiert drei Formen des Aufrufes.
Umountet das Volume welches auf /home/user/tcmnt gemountet ist.
$ truecrypt -d /home/user/tcmnt
Umountet das Volume /home/user/volume.tc .
$ truecrypt -d /home/user/volume.tc
Umountet alle gemounteten TrueCrypt-Volumes.
$ truecrypt -d
Nach dem umounten sind die Daten wieder nur als verschlüsselte Datei sichtbar und diese muss bevor wieder mit den verschlüsselten Daten gearbeitet werden soll gemountet werden.

Information - Nachteile von Containerfiles TrueCrypt-Volumes auf Dateibasis haben gegenüber von Volumes auf Basis ganzer Partitionen oder Festplatten einen entscheidenen Nachteil.

Einige Programme, so wie zum Beispiel der Konqueror Dateibrowser speichern (cachen) einige Daten in nicht verschlüsselten Zustand. So werden z.B. Bilder, welche Sie in Ihrem Volume speichern und anschließend in der Miniaturansicht im Konqueror aufrufen in dem Verzeichnis /home/user/.thumbnails/large gespeichert und können dort unverschlüsselt eingesehen werden.

Ein weiteres Problem stellt auch das verwendete Dateisystem dar. So handelt es sich bei ext3 z.B. um ein sogenanntes Journaling-Dateisystem, bei welchem verschlüsselte Daten unverschlüsselt im Journal gespeichert werden könnten.

Jedoch gibt es ein ähnliches Problem bei allen Dateisystemen: Sobald die Daten einmal unverschlüsselt auf der Platte gespeichert wurden, können diese nach einfachem löschen mit hilfe forensischer Methoden wiederhergestellt werden.

Um diesen Problemen zu entgehen bietet es sich an TrueCrypt auf eine komplette Partition oder eine komplette Festplatte anzuwenden.

TrueCrypt-Volume auf Basis einer Partition / Festplatte

Wie bereits beschrieben unterstützt TrueCrypt nicht nur das Erstellen von Volumes in Dateien (sogenannte Containerfiles) sondern auch das Erstellen eines Volume auf einer kompletten Partition bzw. einer kompletten Festplatte.

Das Erstellen eines Volume auf Partitionsbasis unterscheidet sich nur geringfügig von dem Erstellen eines Volume in einer Datei. Der erste Unterschied besteht darin, dass Sie Volumes auf Partitionsebene ausschließlich mit Systemrechten (root) erstellen können. Die Prozedur ist jedoch die selbe - Sie rufen als root truecrypt mit dem Parameter -c auf und wählen "1" für ein normales Volume. Nun geben Sie jedoch anstelle eines Dateipfads den Pfad zur Gerätedatei der entsprechenden Partition an (z.B. /dev/hda1).

Information Beim Anlegen eines TrueCrypt-Volume auf Basis einer Partition oder einer Festplatte werden alle dort befindlichen Daten überschrieben. Sollten Sie Daten auf dem Datenträger haben die Sie benötigen, so müssen Sie diese zuvor sichern und anschließend auf das Erstellte Volume wieder zurückspielen.

Hidden-Volumes - Ausweitung des "plausible deniability"-Konzepts

Wie bereits beschrieben ist es nicht möglich ein verschlüsseltes TrueCrypt-Volume als ein solches nachzuweisen, da das Volume den TrueCrypt-Header nur in verschlüsselter Form enthält und das von Ihnen gesetzte Passwort benötigt wird um den Header und damit auch das gesamte Volumen zu entschlüsseln.

Jedoch kann sich jemand, der an Ihren geheimen Daten interessiert ist, und weiß dass Sie im Besitz dieser Dateien auf Ihren Rechner sind denken dass es sich bei einer Datei oder gar einer Partition voller Zufallswerte um ein verschlüsseltes Volume handelt.

Da Ihre Daten durch das von Ihnen gewählte Passwort geschützt sind, können diese auch nur von Ihnen wieder entschlüsselt werden.

Es kann jedoch vorkommen, dass Sie zur Herausgabe des Passwortes gezwungen werden, z.B. durch Androhung von Schmerzen oder eines bestehenden Gesetzes welches Sie zur Entschlüsselung Ihrer Daten verpflichtet. Und genau an dieser Stelle setzt das Konzept des Hidden-Volume an.

Was ist ein Hidden-Volume?

Als Hidden-Volume wird ein TrueCrypt-Volume bezeichnet, welches sich in freien Bereichen eines weiteren TrueCrypt-Volumes versteckt. Die nachfolgende Grafik veranschaulicht das Prinzip.

TrueCrypt-Volumes

Auch wenn dies für Sie im ersten Moment etwas verwirrend klingen mag, so ist es doch recht einfach. Sie erstellen ein Volume in einem bereits existierenden Volume. TrueCrypt nutzt dabei den freien Speicherplatz des "äußeren" Volume um dort ein zweites Volume zu erstellen.

Versuchen Sie mit TrueCrypt ein Volume zu mounten, so versucht TrueCrypt zuerst mit Ihrem eingegebenen Passwort den vorderen Header (hier rot dargestellt) zu entschlüsseln. Gelingt dies jedoch nicht vesucht TrueCrypt automatisch mit Ihrem eingegebenen Passwort den hinteren Header (hier orange dargestellt) zu entschlüsseln. Jenachdem welches Passwort Sie eingeben wird also ein anderes Volume gemountet.

Dies eröffnet Ihnen die Möglichkeit Ihre geheimen Daten im versteckten Volume (hier gelb dargestellt) zu verstecken wärend Sie das äußere Volume mit "Alibi-Daten" füllen. Werden Sie nun, wie oben bereits beschrieben gezwungen das Passwort preiszugeben, so geben Sie nur das Passwort des äußeren Volume preis. So bekommt der Angreifer nur Ihre unwichtigen "Alibi-Daten" zu Gesicht, wärend Ihre wirklich geheimen Daten im Hidden-Volume geschützt bleiben. Da nicht nachgewiesen werden kann dass sich innerhalb des äußeren Volume ein weiteres Volume befindet können Sie den Unannehmlichkeiten auf einem diplomatischen Wege entgehen ohne Ihre privaten Daten offen zu legen.

Diese Technik setzt voraus dass Sie für die beiden Volumes verschiedene Passwörter verwenden.

Hidden-Volume erstellen

Das Anlegen eines Hidden-Volume setzt wie oben bereits beschrieben voraus, dass Sie bereits ein normales TrueCrypt-Volume erstellt haben. Dieses äußere Volume muss FAT formatiert sein. Dies hängt mit dem Aufbau des FAT-Dateisystems zusammen. Das Hidden-Volume kann hingegen formatiert werden wie Sie möchten.

Des weiteren muss das Hidden-Volume kleiner sein als das äußere Volume. Die Größe welche Sie für das Hidden-Volume angeben steht Ihnen dann für Ihre geheimen Daten zur Verfügung. Die Größe des äußeren Volume minus die Größe des Hidden-Volume ergibt den Speicherplatz der Ihnen für Ihre "Alibi-Daten" zur Verfügung steht.

Konkretes Beispiel: Das äußere Volume hat eine Größe von 10Mb, das Hidden-Volume hat eine Größe von 8 Mb. Für Ihre geheimen Daten stehen Ihnen dann 8Mb zur Verfügung und für Ihre "Alibi-Daten" (10Mb - 8Mb) insgesamt 2Mb.

Wir benutzen in diesem Beispiel den im Abschnitt "Volumes" erstellten Containerfile "volume.tc" - stellen Sie sicher dass Sie diesen Containerfile wie dort beschrieben FAT formatiert haben.

Ein Hidden-Volume lässt sich mit TrueCrypt sehr einfach erstellen. Wie Sie es bereits aus der Erstellung eines normalen Volume aus dem Abschnitt "Volumes" kennen, müssen Sie auch zur Erstellung eines Hidden-Volume TrueCrypt mit dem Parameter -c starten.

Beim Erstellen eines Hidden-Volume kann es passieren dass Daten des äußeren Volume überschrieben werden. Aus diesem Grund sollten Sie ein Hidden-Volume immer erstellen solange sich noch keine Daten im äußeren Volume befinden, oder Sie sichern vorher die Daten welche sich im äußeren Volume befinden und spielen diese hinterher wieder ein.
$ truecrypt -c
Hier müssen Sie "2" auswählen um ein Hidden-Volume zu erstellen.
Volume type:
 1) Normal
 2) Hidden
Select [1]: 2

Hier müssen Sie den Pfad zu ein bereits existierendes Volume angeben.
Enter volume path: /home/user/volume.tc
Hier können Sie Ihre Formatierung wählen. Für das Hidden-Volume ist es nicht entscheidend welche Formatierung gewählt wird.
Filesystem:
 1) FAT
 2) None
Select [1]: 1

Hier müssen Sie die Größe des Hidden-Volume angeben. Diese muss kleiner sein als die Größe des äußeren Volume.
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 8M

Wählen Sie hier einen Hash-Algorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
Select [1]: 1

Wählen Sie hier einen Verschlüsselungsalgorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Encryption algorithm:
 1) AES
 2) Blowfish
 3) CAST5
 4) Serpent
 5) Triple DES
 6) Twofish
 7) AES-Twofish
 8) AES-Twofish-Serpent
 9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Wählen Sie ein Passwort für das Hidden-Volume. Wichtig: Das Passwort darf nicht gleich mit dem des äußeren Volume sein!
Enter password for new volume '/home/user/volume.tc':
Re-enter password:

Enter keyfile path [none]:

TrueCrypt will now collect random data.

Wenn Sie eine Maus an Ihrem PC angeschlossen haben, so können Sie mit Y antworten, anderenfalls müssen Sie Ihre Zufallsdaten mit der Tastatur generieren.
Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%
Done: 6.97 MB Speed: 3.48 MB/s Left: 0:00:00
Volume created.
Nun sollte das versteckte Volume innerhalb der Datei volume.tc erstellt worden sein.

Sie mounten Ihr Hidden-Volume auf die gleiche Weise wie Sie auch Ihr äußeres Volume im Abschnitt "Volumes" gemountet haben. Wenn Sie beim mounten das Passwort für Ihr äußeres Volume angeben wird Ihr äußeres Volume gemountet - geben Sie beim mounten das Passwort für Ihr Hidden-Volume an, so wird Ihr Hidden-Volume gemountet.

Äußeres Volume sicher beschreiben

Es gibt nun noch ein Problem zu lösen. Wenn Sie Ihr äußeres Volume mounten um es mit Alibi-Daten zu beschreiben, so kann es vorkommen, dass Sie versehentlich Ihr Hidden-Volume überschreiben da TrueCrypt ja nur das äußere, aber nicht das innere Volume gemountet hat und somit nichts über die tatsächliche Größe des äußeres Volume weiß.

Um sowohl das Hidden-Volume als auch das äußere Volume zu mounten und somit ein sicheres Befüllen des äußeren Volume zu garantieren gibt es den Parameter -P (Langform: --protect-hidden). Wenn Sie TrueCrypt zum mounten auffordern und dem Programm diesen Parameter mitgeben, so werden Sie sowohl nach dem Passwort des äußeren- als auch nach dem Password des Hidden-Volume gefragt.

$ truecrypt -P -M "rw,sync,utf8,uid=$UID,umask=0007" /home/user/volume.tc /home/user/tcmnt
Enter password for '/home/user/volume.tc':
Enter hidden volume password:
Mit diesem Befehl mounten Sie Ihr äußeres Volume in das Verzeichnis /home/user/tcmnt und schützen Ihr Hidden-Volume gleichzeitig vor dem Überschreiben.

So können Sie ohne Risiko Ihr äußeres Volume mit Alibi-Daten beschreiben. Sollten Ihre Daten drohen das Hidden-Volume zu überschreiben so entzieht Ihnen TrueCrypt das Recht in das Volume zu schreiben und Ihre Versteckten Daten sind vor dem Überschreiben geschützt.

Keyfiles - mehr Sicherheit

Ein Thema das ich mir für den Schluss der Einführung in TrueCrypt aufgehoben habe sind die Keyfiles. Der Grund dafür ist dass die Einfürung sonst zu sehr aufgebläht worde wäre - das Arbeiten mit einem Passwort ist da einfacher zu erklären.

TrueCrypt benutzt zum Entschlüsseln eines Volume normalerweise ein Passwort welches vom Benutzer abgefragt wird. Allerdings ist es auch möglich ein Volume mit Hilfe von sogenannten Keyfiles (Übersetzt: Schlüsseldateien) zu entschlüsseln.

Als Keyfile kann jede beliebige Datei herhalten, welche Sie in Zukunft nicht vorhaben zu ändern. TrueCypt liest die ersten 1048576 Bytes (das erste Mb) aus einem Keyfile aus und verwendet den Inhalt als Passwort. Diese Tatsache zieht die Konsquenz nach sich, dass Sie den ersten Mb an Daten in Ihrem Keyfile nicht ändern dürfen, da Sie sonst nicht mehr in der Lage sind Ihr Volume zu entschlüsseln.

Die Verwendung eines, oder mehrerer Keyfiles schließt die zusätzliche Verwendung eines Passwortes jedoch nicht aus. Sie können sehrwohl Passwort und Keyfiles zusammen verwenden um ein größt mögliches Sicherheitskonzept aus den beiden Bestandteilen Besitz (Die Keyfiles z.B. auf einen USB-Stick gespeichert) und Wissen (Das Passwort) zu erreichen.

Keyfiles generieren

TrueCrypt bringt von Haus aus einen Generator für Keyfiles mit (truecrypt --keyfile-create DATEINAME). Dieser Generator generiert Keyfiles mit einer Größe von 64 Bytes (512 Bits). Das sollte vollkommen ausreichend sein. Sie können jedoch genauso einen Ordner voller mp3 Dateien oder Open Office Dokumenten als Keyfiles verwenden.

Sollte Ihnen die Größe von 64 Bytes nicht ausreichen, so können Sie sich mit dem nachfolgend gezeigtem Befehl sichere Keyfiles mit einer Größe von 1 Mb erstellen.

Dieser Aufruf erzeugt ein Keyfile mit einer Größe von 1 Mb in der Datei ./key
$ dd if=/dev/urandom of=./key bs=1 count=1048576
Dieser Aufruf erzeugt ein Keyfile mit einer Größe von 1 kb in der Datei ./key
$ dd if=/dev/urandom of=./key bs=1 count=1024
Dieser Aufruf erzeugt 10 Keyfiles mit einer Größe von 1 Mb im Verzeichnis ./
$ for((i=1;$i<=10;i++)); do echo -n "Create keyfile $i (./keyfile_$i) ..."; dd if=/dev/urandom of=./keyfile_$i bs=1 count=1048576 &> /dev/null; echo " Done.";

Keyfiles einem Volume hinzufügen

Wenn Sie Keyfiles verwenden möchten so legen Sie alle Keyfiles in ein Verzeichnis (z.B. /home/user/keys). Bei der Erstellung eines neuen Volume werden Sie nach der Eingabe Ihre Passwortes nach einem Pfad zu einem Keyfile gefragt. Wenn dieser Pfad ein Verzeichnis ist, werden alle darin befindlichen Dateien als Keyfiles verwendet. Altanativ können Sie auch jeden Keyfile einzeln hinzufügen. Möchten Sie nur die Keyfiles zum mounten Ihres TrueCrypt-Volume verwenden, so lassen Sie das Passwort einfach leer.

Mounten mit Keyfiles

Beim mounten eines mit Keyfiles geschützten Volume müssen Sie TrueCrypt zusätzlich zu den übergebenen mount-parametern auch der Parameter -k (Langform: --keyfile) übergeben.

Der nachfolgende Befehl mountet ein Volume mit Keyfiles (diese liegen im Verzeichnis /home/user/keys) und einem Passwort.

$ truecrypt -k /home/user/keys -M "rw,sync,utf8,uid=$UID,umask=0007" /home/user/volume.tc /home/user/tcmnt
Enter password for '/home/user/volume.tc':
Sollten Sie den Parameter -P für das sichere mounten eines Volume bei Vorhandensein eines Hidden-Volume benutzen und sollte das äußere Volume ebenfalls mit Keyfiles geschützt sein so verwenden Sie zusätzlich den Parameter -K (Langform: --keyfile-protected), mit welchem Sie die Keyfiles des Hidden-Volume festlegen können.

Eigenschaften von Volumes ändern

Es wird evtl. vorkommen dass Sie mal Ihr Passwort ändern wollen, oder einem Volume z.B. neue Keyfiles zuordnen möchten.

Indem Sie TrueCrypt mit dem Parameter -C (Langform: --change) aufrufen können Sie das Passwort sowie die Keyfiles mit denen das Volume verschlüsselt wird ändern.

Mit diesem Kommando können Passwort und Keyfiles eines Volume geändert werden.
$ truecrypt -C /home/user/volume.tc
Hier müssen Sie den Pfad zu den Keyfiles angeben, mit welchen das Volume verschlüsselt wurde.
Enter current keyfile path [none]:
Hier müssen Sie das Passwort angeben, mit welchem das Volume verschlüsselt wurde.
Enter current password for '/home/user/volume.tc':

Hier können Sie einen neuen Pfad zu den Keyfiles angeben, mit denen das Volume verschlüsselt werden soll.
Enter new keyfile path [none]: /home/user/keys
Hier können Sie ein neues Passwort angeben, mit dem das Volume verschlüsselt werden soll.
Enter new password for '/home/user/volume.tc':
Re-enter new password:

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%

Password and/or keyfile(s) changed.
Anschließend werden beim mounten des Volume das neue Passwort, sowie die neuen Keyfiles benötigt um das Volume zu entschlüsseln.

Formatieren eines Volume

TrueCrypt bietet Ihnen bei der Erstellung eines neuen Volume die Möglichkeit Ihr Volume zu formatieren. Allerdings stehen nur die Optionen "FAT" und "None" zur verfügung.

Sie können Ihr Volume mit den gängigen Linuxtools z.B. ext2 formatieren. Um das im Abschnitt "Hidden-Volume erstellen" erstellte Hidden-Volume ext2 zu formatieren können Sie wie folgt vorgehen.

Dieses Kommando erstellt für das Volume /home/user/volume.tc eine virtuelle Gerätedatei.
$ truecrypt /home/user/volume.tc
Geben Sie nun das Passwort Ihres Hidden-Volume an.
Enter password for '/home/user/volume.tc':
Mit diesem Kommando können Sie die zum Volume gehörende Gerätedatei ermitteln.
$ truecrypt -l
/dev/mapper/truecrypt0 /home/user/volume.tc
/dev/mapper/truecrypt0 können Sie nun verwenden wie ein eigenes Gerät. Das nachfolgende Kommando formatiert das Volume ext2.
mkfs.ext2 -v /dev/mapper/truecrypt0
Auf diese Weise können Sie Ihre Volumes beliebig formatieren. Die einzige Einschränkung die besteht ist wie bereits beschrieben, dass Sie bei der Verwendung eines Hidden-Volume das äußere Volume ausschließlich FAT (fat 32, fat 16...) formatieren dürfen.

Eine praktische Anwendung: Verschlüsselung von /home

Wenn Sie an diesem Punkt angelangt sind, so sollten sie TrueCrypt bei sich installiert haben und die meißten Dinge die TrueCrypt fähig ist zu vollbringen beherrschen und anwenden können.

Damit Sie nun TrueCrypt auch dafür verwenden können Ihre Daten sicher aufzubewahren, gibt es nun noch eine Anleitung für eine praktische Anwendung mit TrueCrypt.

Ziel ist es die /home-Partition Ihres Debian Systems zu verschlüsseln - dies beinhaltet das Anlegen eines Volume und eines Hidden-Volume. Um das Ganze auch für Sie komfortabel zu gestalten soll beim booten kurz bevor der Displaymanager (XDM, KDM, GDM, etc.) startet, eine Passwortabfrage auf dem Bilschirm erscheinen. Wenn das Passwort richtig ist wird /home entschlüsselt und der bootvorgang fortgesetzt. Andererseits soll der PC wieder herunter gefahren, oder eine andere von Ihnen festgelegte Aktion ausgeführt werden.

Um das Howto nicht unnötig in die Länge zu ziehen können Sie sich hier eine kleine Zusammenstellung von Bash-skripten herunterladen, welche ich für diesen Zweck bereits entwickelt habe. Die Sammlung enthält lediglich die Skripte, welche später beim booten einen Loginbildschirm erzeugen und entsprechend einiger Bedingungen bestimmte Befehle ausführen.

Information Die nachfolgende Anleitung setzt voraus dass sie /home auf eine extra Partition oder Festplatte ausgelagert haben.

Daten von /home sichern

Bevor Sie anfangen mit TueCrypt Volumes auf Ihrer /home-Partition zu erstellen sollten Sie zu erst alle auf /home befindlichen Daten sichern, da diese überschrieben werden.

Zum sichern kopieren Sie die Daten zum Beispiel auf einen externen Datenträger oder eine andere Partition.

Volumes auf /home erstellen

Nachdem Sie die Daten gesichert haben können nun mittels TrueCrypt die Volumes erstellt werden. Es wird sowohl ein normales- als auch ein Hidden-Volume erstellt um Ihrer Privatsphäre optimalen Schutz zu bieten.

Vorbereitung der Volumeerstellung

Bevor Sie die Volumes erstellen können müssen Sie zu erst den Namen der Partition ermitteln, also die zu der Partition gehörige Gerätedatei. Diese kann mit den folgenden Befehl ermittelt werden.
$ df -h | grep home
/dev/hda5 23G 14G 7,2G 66% /home
Die hier dick markierten Informationen sollten Sie sich notieren. Die Partition liegt in diesem Fall auf /dev/hda5 und hat eine Größe von 23 Gigabyte.

Wenn Sie diese Informationen haben müssen Sie /home umounten um mit TrueCrypt darauf zugreifen zu können. Um die Partition zu umounten müssen Sie alle Prozesse die darauf zugreifen beenden (unter anderem auch xorg). Dann können Sie die Partition als root umounten. Um hzu ermitteln welche Prozesse auf /home zugreifen steht Ihnen beispielsweise der Befehl "lsof | grep /home" zur Verfügung.

Prozesse ermitteln welche auf /home zugreifen, - diese können z.B. mittels kill einzeln beendet werden.
# lsof | grep /home
/home umounten
# umount /home
Anschließend können Sie auch noch einmal mittels df -h überprüfen ob /home auch tatsächlich geunmountet wurde.

Äußeres Volume erstellen

Nun müssen Sie das äußere Volume erstellen. Dies geschieht wie bereits beschrieben indem Sie TrueCrypt mit dem Parameter -c aufrufen.
# truecrypt -c
Volume type:
 1) Normal
 2) Hidden
Select [1]: 1

Geben Sie hier den Pfad zur Gerätedatei Ihrer /home-Partition an.
Enter file or device path for new volume: /dev/hda5
Als Dateisystem wählen Sie FAT um später ein Hidden-Volume erstellen zu können.
Filesystem:
 1) FAT
 2) None
Select [1]: 1

Wählen Sie hier einen Hash-Algorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
Select [1]: 1

Wählen Sie hier einen Verschlüsselungsalgorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Encryption algorithm:
 1) AES
 2) Blowfish
 3) CAST5
 4) Serpent
 5) Triple DES
 6) Twofish
 7) AES-Twofish
 8) AES-Twofish-Serpent
 9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Nun müssen Sie zwei Mal ein Passwort eingeben welches zur Ver- und Entschlüsselung des äußeren Volume verwendet wird. Die Eingabe ist nicht sichtbar.
Enter password for new volume '/dev/hda5':
Re-enter password:

Hier können Sie dem Volume zusätzlich Keyfiles zuordnen. Bedenken Sie dass Sie dem Hidden-Volumen später die gleichen Keyfiles zuordnen sollten.
Enter keyfile path [none]:

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%

Done: 23034.23 MB Speed: 5.81 MB/s Left: 0:00:00
Volume created.
Nun haben Sie auf /dev/hda5 ein TrueCrypt-Volume erstellt.

Hidden-Volume erstellen

Nun müssen Sie in das soeben erstellte Volume ein Hidden-Volume erstellen, um Ihre Daten besser zu schützen. Dazu rufen Sie ebenfalls wie bereits beschrieben TrueCrypt mit dem Parameter -c auf.
# truecrypt -c
Hier müssen Sie "2" auswählen um ein Hidden-Volume zu erstellen.
Volume type:
 1) Normal
 2) Hidden
Select [1]: 2

Hier müssen Sie den Pfad zu Ihrer Gerätedatei angeben, auf welcher Sie soeben das Standardvolume erstellt haben.
Enter volume path: /dev/hda5
Hier können Sie Ihre Formatierung wählen. Für das Hidden-Volume ist es nicht entscheidend welche Formatierung gewählt wird.
Filesystem:
 1) FAT
 2) None
Select [1]: 1

Hier müssen Sie die Größe des Hidden-Volume angeben. Diese muss kleiner sein als die Größe des äußeren Volume.
Enter volume size (bytes - size/sizeK/sizeM/sizeG): 22G

Wählen Sie hier einen Hash-Algorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
Select [1]: 1

Wählen Sie hier einen Verschlüsselungsalgorithmus aus. Sollten Sie sich nicht sicher sein welchen Sie verwenden sollten, so verwenden Sie den Standard.
Encryption algorithm:
 1) AES
 2) Blowfish
 3) CAST5
 4) Serpent
 5) Triple DES
 6) Twofish
 7) AES-Twofish
 8) AES-Twofish-Serpent
 9) Serpent-AES
10) Serpent-Twofish-AES
11) Twofish-Serpent
Select [1]: 1

Wählen Sie ein Passwort für das Hidden-Volume. Wichtig: Das Passwort darf nicht gleich mit dem des äußeren Volume sein!
Enter password for new volume '/dev/hda5':
Re-enter password:

Sollten Sie für das äußere Volume Keyfiles definiert haben, so sollten Sie die gleichen Keyfiles auch für das Hidden-Volume verwenden
Enter keyfile path [none]:

TrueCrypt will now collect random data.

Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: Y

Please move the mouse randomly until the required amount of data is captured...
Mouse data captured: 100%

Done: 22000.97 MB Speed: 5.88 MB/s Left: 0:00:00
Volume created.

Äußeres Volume mit Alibi-Daten versehen

Nun sollten Sie das äußere Volume mit Ihren Alibi-Daten füllen. Hier sollten Sie nur Daten ablegen die unwichtig sind und nicht geschützt werden brauchen. Sie dienen nur dem Schutz der wirklich wichtigen Daten!

Um das äußere Volume zu mounten und gleichzeitig das innere zu schützen müssen Sie wie bereits beschrieben mit dem Parameter -P (Langform: --protect-hidden) arbeiten. Sollten Sie Keyfiles verwendet haben so müssen Sie den Parameter -k für die Keyfiles des äußeren Volumen - und den Parameter -K fü die Keyfiles des Hidden-Volume verwenden.

# truecrypt -P /dev/hda5 /home
Enter password for '/dev/hda5':
Enter hidden volume password:
Nun können Sie /home mit Ihren Alibi-Daten vollschreiben ohne das Risiko einzugehen dass das Hidden-Volume überschrieben wird.

Sollten Sie mit dem Beschreiben fertig sein, so können Sie das Volume mit dem Aufruf von TrueCrypt mit dem Parameter -d wieder umounten.

# truecrypt -d /dev/hda5

Hidden-Volume mit den gesicherten Daten bespielen

Nun können Sie Ihr Hidden-Volume mit Ihren gesicherten Daten bespielen. Sollten Sie Ihr Hidden-Volume formatieren wollen (z.B. ext2) so können Sie dies wie folgt durchführen.
# truecrypt /dev/hda5
Hier das Passwort des Hidden-Volume angeben.
Enter password for '/dev/hda5':

# truecrypt -l
/dev/hda5 /dev/mapper/truecrypt0

# mkfs.ext2 -v /dev/mapper/truecrypt0
[...]

# truecrypt -d
Anschließend ist das TrueCrypt-Volume ext2 formatiert und kann wie folgt gemountet werden.
# truecrypt /dev/hda5 /home
Hier das Passwort des Hidden-Volume angeben.
Enter password for '/dev/hda5':

Nun können Sie Ihre gesicherten Daten wieder nach /home zurück spielen. Achten Sie auch darauf dass die Userverzeichnisse wieder den richtigen Benutzern und Gruppen zugeordnet werden und die richtigen Rechte gesetzt bekommen.

Entschlüsselungsskripts

Wie bereits beschrieben ist das Ziel beim Booten einen Eingabebildschirm zu erhalten wo Sie Ihr Passwort zur Entschlüsselung von /home eingeben und die Partition entschlüsselt wird bevor der Bootvorgang fortgesetzt wird.

Zu diesem Zweck habe ich bereits eine Zusammenstellung von Bash-skripten geschrieben, welche genau diese Aufgabe erledigen.

Entschlüsselungsskripts installieren und konfigurieren

Laden Sie sich das Archiv herunter und entpacken Sie es nach /usr/tcbootscreen.
# cd /usr
# tar -xvjf tcbootscreen.tar.bz2
Das Archiv müsste insgesamt 8 Dateien enthalten. Sie sollten folgendes auf die Skripte anwenden.
# chown root:root /usr/tcbootscreen/*
# chmod ugo+x /usr/tcbootscreen/*
# chmod ugo-x /usr/tcbootscreen/tcscreen.tmp
# chmod ugo-x /usr/tcbootscreen/main.log
Die Aufgaben der verschiedenen Dateien sind schnell erklärt. Das Skript tcbootscreen wird in den Bootprozess eingebunden und sorgt dafür dass Ihnen ein Loginbildschirm vor die Nase gehalten wird wo Sie Ihr Passwort zur Entschüsselung eingeben können. Das Skript enthält einige Konfigurationen die Sie anpassen sollten.

Die eigentliche Entschlüsselung wird von dem Skript decrypt vergenommen und muss von Ihnen ebenfalls angepasst werden.

Das Skript pre_decrypt wird einmalig vor dem Entschlüsselungsvorgang (also vor Aufruf des Skriptes decrypt) ausgeführt und ist vor allem dafür gedacht um z.B. einen USB Stick zu mounten auf welchem sich Keyfiles befinden könnten.

Das Skript post_decrypt wird einmalig nach dem Verschlüsselungsvorgang ausgeführt und ist z.B. dafür gedacht einen evtl. gemounteten USB Stick wieder zu umounten.

Das Skript decrypt_success wird ausgeführt wenn die Entschlüsselung erfolgreich war.

Das Skript decrypt_fail wird ausgeführt wenn die Entschlüsselung fehlschlägt oder das Skript mit STRG+C versucht wird abzubrechen.

Die Datei tcscreen.tmp enthält das Aussehen des Loginbildschrimes welcher später beim Booten angezeigt wird.

Die Datei main.log wird als Logfile zum loggen der Vorgänge beim Entschüsseln verwendet.

Die wichtigsten Konfigurationen müssen in den Dateien decrypt und tcbootscreen vorgenommen werden.

In dem Skript decrypt finden Sie zwei Variablen mit den Namen "device" und "mountpoint". In die Variable "device" müssen Sie den Namen der Gerätedatei Ihrer /home-Partition (hier /dev/hda5) eintragen. Die Variable "mountpoint" enthält hingegen das Verzeichnis, in welches das Device eingehangen werden soll, was in diesem Fall /home ist. Sollten Sie Keyfiles verwenden, so müssen Sie den TrueCrypt-Befehl in der If-Abfrage entsprechend um den Parameter -k erweitern. Sie sollten den Datenträger auf welchem sich die Keyfiles befinden vorher in dem Skript pre_decrypt mit einem mount-Befehl einhängen. Um das Gerät nach dem Entschlüsseln wieder zu umounten können Sie in dem Skript post_decrypt einen entsprechenden umount-Befehl hinterlegen.

In dem Skript tcbootscreen können Sie ebenfalls einige Konfigurationen vornehmen. Die Variable "tcs_script_dir" enthält den Pfad zu den Skripten (hier /usr/tcbootscreen/) - achten Sie bitte auf die Endung mit einem /. Die Variable "tcs_logfile" enthält den Pfad zur Logdatei in welcher die Vorgänge gespeichert werden. "tcs_pw_tries" enthält die Anzahl der möglichen falschen Passworteingaben, bis die Entschlüsselung als fehlgeschlagen gilt. Die restlichen Variablen dienen lediglich der Cursor-positionierung - so geben die Variablen "tcs_pw_row" und "tcs_pw_col" die Startposition des Passwortfeldes an. "tcs_status_row" und "tcs_status_col" geben die Position des Cursors um eine Statusmeldung zu schreiben an. "tcs_outer_row" und "tcs_outer_col" beschreiben die Position des Cursors nach dem Loginscreen.

Sollten Sie alle Skripts konfiguriert haben, so können Sie es testen. Umounten Sie dazu erst alle TrueCrypt-Volumes indem sie TrueCrypt mit dem Parameter -d aufrufen. Anschließend können Sie das Skript tcbootscreen zum testen aufrufen.

# ./tcbootscreen
+------------------------------------------------------------------------------+
|                                                                              |
|             [Decrypt partition /home - encrypted by TrueCrypt]               |
|                                                                              |
+------------------------------------------------------------------------------+
|                                                                              |
|                  ________                                                    |
|                 /        \__________________________                         |
|                |   _       =======================  \                        |
|                |  (_)      ____   __    __    __   __\                       |
|                |          /    \_/  \__/  \__/  \_/                          |
|                 \________/                                                   |
|                                                                              |
|                                                                              |
|                                                                              |
|                Password #                                                    |
|                                                                              |
|                                                                              |
|                                                                              |
|                                                                              |
+------------------------------------------------------------------------------+
|  Status # Waiting for password... (Try 1 of 3)                               |
+------------------------------------------------------------------------------+
(C) by MasterGnome

				
Nun sollte dieser Login auftauchen. Geben Sie Ihr Passwort für Ihr Hidden-Volume an und bestätigen Sie mit der Eingabetaste. Die Statuszeile zeigt Ihnen die aktuell durchgeführten Vorgänge an.

Sollten Sie Keyfiles auf einem Wechseldatenträger hinterlegt haben, welche zur Entschlüsselung des Volume benötigt werden so müssen Sie dieses vor dem Skriptaufruf einlegen / einstecken, so dass der von Ihnen in dem Skript pre_decrypt hinterlegte mount-Befehl seine Aufgabe verrichten kann.

Wenn Sie das Skript erneut ausführen, so werden alle gemounteten TrueCrypt-Volumes ausgehängt. Da dieses Skript sowohl beim Start des Systems als auch beim herunterfahren ausgeführt wird, werden beim herunterfahren alle gemounteten TrueCrypt-Volumes ausgehängt.

Sollte die Entschlüsselung nicht funktionieren, so sollten Sie noch einmal die Konfigurationen der Skripte durchgehen und gegebenenfalls ausbessern.

Entschlüsselungsskript in den Bootprozess einbinden

Wenn Sie sich wirklich sicher sind dass Ihre Konfiguration sauber läuft und es zu keinen Fehlern kommt, so können Sie das Skript in den Bootprozess einbinden. Debian bietet seinen Entwicklern dazu den Befehl update-rc.d , mit dem dies einfach vollbracht werden kann.

Verschieben Sie das Skript tcbootscreen nach /etc/init.d/ und fügen Sie dieses anschließend dem Bootprozess hinzu.

# mv /usr/tcbootscreen/tcbootscreen /etc/init.d/tcbootscreen
# update-rc.d tcbootscreen defaults
Bevor Sie Ihren PC jedoch neu starten müssen Sie jedoch noch den Eintrag zur /home Partition in der Datei /etc/fstabs auskommentieren oder löschen, da das mounten jetzt von dem tcbootscreen-Skript übernommen wird und dieser Eintrag nur zu Fehlern führen würde.

Achtung Bevor Sie Ihren PC neu starten um zu Testen ob alles funktioniert sollten Sie das Skript tcbootscreen noch einmal manuell ausführen um das Volume zu mounten, da Ihnen ein Reboot sonst nicht gelingt.

Der Grund dafür ist, dass das Skript zu erst prüft ob bereits TrueCrypt-Volumes gemountet sind oder nicht. Sind welche gemountet, so umountet er alle Volumes. Sind keine Volumes gemountet, so startet die Prozedur um das von Ihnen angegebene zu mounten. Da dazu ein Passwort abgefragt wird, hängt sich der Reboot Prozess auf und Sie müssten Ihren PC radikal mit dem Ausknopf neu starten.

Nun sollte bei jedem Boot die Abfrage nach einem Passwort zur Entschlüsselung des TrueCrypt-Volume erscheinen. Wenn Sie Ihr Passwort für das Hidden-Volume angeben, so werden Ihre wichtigen Daten entschlüsselt und gemountet. Wenn Sie Ihr Passwort für das äußere Volume angeben, so werden Ihre Alibi-Daten Entschlüsselt und gemountet. Zusätzlich können Sie noch Keyfiles benutzen und diese auf einen USB Stick auslagern. Auf diese Weise kann Ihr Volume nur von jemanden gemountet werden, wenn er in Besitz des Sticks und des Passwortes ist.

Zusammenfassung / Informationen / Fehler melden

Das war es nun, das Howto für die Verwendung von TrueCrypt unter Debian. Ich hoffe dass ich einen möglichst großen Teil zu Ihrem Verständnis und der Sicherheit Ihrer Daten beigetragen habe. Wenn dem so ist, oder eben auch nicht würde ich mich über eine kleine E-Mail von Ihnen mit einem kurzen oder langen Feedback zu diesem Howto freuen.

Wenn Ihnen Fehler, z.B. inhaltlicher Art oder seien es auch nur Rechtschreibfehler auffallen, so bitte ich Sie diese mit einer kurzen E-Mail an mich zu melden, so dass ich das Howto auch weiterhin verbessern kann.

Sie erreichen mich unter folgender E-Mail Adresse (Zum Schutz gegen Spambots nur als Grafik): E-Mail

Sollten Sie Ihre E-Mail verschlüsseln wollen, so können Sie meinen GPG Schlüssel verwenden.

Bei Problemen mit der Umsetzung dieses Howtos bin ich der falsche Ansprechpartner. Ich habe nachfolgend eine Liste mit Seiten zusammengestellt auf denen Sie sich zum Thema weiter informieren können und gegebenfalls Fragen und Probleme ansprechen können.

Mit freundlichen Debian-Grüßen:

MasterGnome

Dankesworte

Nachfolgend habe ich noch einige Personen aufgelistet, welche zu diesem Howto durch das Melden von Fehlern oder in anderer Weise beigetragen haben.