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.
Inhalt
- Einführung
- TrueCrypt installieren
- TrueCrypt verwenden
- Eine praktische Anwendung: Verschlüsselung von /home
- Zusammenfassung / Informationen / Fehler melden
- Dankesworte
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:
- Verschlüsselte Daten können nicht von Zufallswerten unterschieden werden
- Durch sogenannte Hidden-Volumes (dazu später mehr) können Daten wirksam versteckt werden und andere Daten glaubwürdig als geheime Daten vorgetäuscht werden.
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.# 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.
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
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)
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
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.# ./build.sh
Configure kernel source according to the currently running kernel? [Y/n]: Y
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 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 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.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.- Datei-basierende Volumes
- Partitions- / Festplatten-basierende Volumes
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.Volume type:
1) Normal
2) Hidden
Select [1]: 1
1) FAT
2) None
Select [1]: 1
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1
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
Re-enter password:
TrueCrypt will now collect random data.
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.
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).
$ truecrypt -M "rw,sync,utf8,uid=$UID,umask=0007" /home/user/volume.tc /home/user/tcmnt
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.
/dev/mapper/truecrypt0 /home/user/volume.tc
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.
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).
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.
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.1) Normal
2) Hidden
Select [1]: 2
1) FAT
2) None
Select [1]: 1
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1
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
Re-enter password:
Enter keyfile path [none]:
TrueCrypt will now collect random data.
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.
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.
Enter password for '/home/user/volume.tc':
Enter hidden volume password:
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.
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.
Enter password for '/home/user/volume.tc':
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.
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.
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.
/dev/mapper/truecrypt0 /home/user/volume.tc
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.
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./dev/hda5 23G 14G 7,2G 66% /home
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.
Ä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.Volume type:
1) Normal
2) Hidden
Select [1]: 1
1) FAT
2) None
Select [1]: 1
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1
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
Re-enter 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%
Done: 23034.23 MB Speed: 5.81 MB/s Left: 0:00:00
Volume created.
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.1) Normal
2) Hidden
Select [1]: 2
1) FAT
2) None
Select [1]: 1
1) RIPEMD-160
2) SHA-1
3) Whirlpool
Select [1]: 1
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
Re-enter 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%
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.
Enter password for '/dev/hda5':
Enter hidden volume password:
Sollten Sie mit dem Beschreiben fertig sein, so können Sie das Volume mit dem Aufruf von TrueCrypt mit dem Parameter -d wieder umounten.
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 -l
/dev/hda5 /dev/mapper/truecrypt0
# mkfs.ext2 -v /dev/mapper/truecrypt0
[...]
# truecrypt -d
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.# tar -xvjf tcbootscreen.tar.bz2
# chmod ugo+x /usr/tcbootscreen/*
# chmod ugo-x /usr/tcbootscreen/tcscreen.tmp
# chmod ugo-x /usr/tcbootscreen/main.log
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.
+------------------------------------------------------------------------------+ | | | [Decrypt partition /home - encrypted by TrueCrypt] | | | +------------------------------------------------------------------------------+ | | | ________ | | / \__________________________ | | | _ ======================= \ | | | (_) ____ __ __ __ __\ | | | / \_/ \__/ \__/ \_/ | | \________/ | | | | | | | | Password # | | | | | | | | | +------------------------------------------------------------------------------+ | Status # Waiting for password... (Try 1 of 3) | +------------------------------------------------------------------------------+ (C) by MasterGnome
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.
# update-rc.d tcbootscreen defaults
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):
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.- Danke an...
- Sebastian, für den Hinweis dass das Paket build-essential installiert werden muss.
- Constantin Hagemeier, für das Korrigieren von einigen Grammatik- sowie Rechtschreibfehlern.
- Friedrich Hönig, für das melden eines Bugs im Bootscript.