Verschlüsseln mit Veracrypt

Aus LinuxUser 03/2016

Verschlüsseln mit Veracrypt

© Oleg Romanciuk, 123RF

Schlüsselfrage

Der Truecrypt-Nachfolger Veracrypt empfiehlt sich mit seiner handlichen grafischen Oberfläche nicht nur Einsteigern: Mit den “Hidden Volumes” bietet er daneben auch ein einzigartiges Profi-Feature.

Als die Truecrypt-Entwickler mit einer ominösen Sicherheitswarnung [1] vom weiteren Einsatz ihrer Software abrieten, sorgte das bei vielen um ihre Privatsphäre besorgten Anwender für Verwirrung, insbesondere im Windows-Lager: Truecrypt galt dort als die gängige Open-Source-Verschlüsselungslösung (siehe Kasten “Truecrypt”).

Inzwischen hat der bereits 2013 entstandene Truecrypt-Fork Veracrypt [2] seinen Vorgänger beerbt, seit 2014 unterstützt er auch Linux. Doch dort stellt bereits der Kernel Verschlüsselungsverfahren für Verzeichnisse oder ganze Partitionen bereit. Angesichts dessen stellt sich die Frage, warum Linux-Anwender sich Software mit einem Fleck im Lebenslauf zu Gemüte führen sollten. Tatsächlich bietet Veracrypt dafür einige handfeste Gründe.

Truecrypt

Bis Frühjahr 2015 galt die quelloffene und kostenfreie Verschlüsselungssoftware Truecrypt als mehr oder weniger alternativlos. Manche Anwender störte allerdings, dass die Entwickler nie zu identifizieren waren. Das führte naturgemäß zu Spekulationen, könnte aber durchaus schlicht eine Vorsichtsmaßnahme gewesen sein.

Ende Mai 2015 beendeten die Macher das Projekt und rieten ausgerechnet zum Umstieg auf die nicht quelloffene Windows-Bordverschlüsselung mit den Worten “Using TrueCrypt is not secure as it may contain unfixed security issues.” Dass die Anfangsbuchstaben der leicht gestelzten englischen Formulierung “… not secure as …” NSA lauten, sorgte für reichlich Gesprächsstoff.

Klarheit über die tatsächliche Sicherheit der Software brachte ein unabhängiges Security-Audit [3]. Außer einigen Problemen im Windows-Treiber beanstandeten die Prüfer jedoch lediglich die für heutige Rechenpower zu geringe Zahl der Hash-Iterationen zum Ableiten des Schlüssels. Diese bremste Angreifer beim Durchprobieren von Passwörtern nicht wie geboten aus, Container mit schwachen Passwörtern waren also leichter zu knacken. Veracrypt besserte an dieser Stelle prompt nach (weswegen das Mounten verschlüsselter Objekte jetzt erheblich länger dauert).

Google-Angestellte fanden schließlich doch noch zwei kritische Lücken, die aber nicht direkt im Zusammenhang mit der Verschlüsselung standen. Mit deren Hilfe konnten Angreifer unter Windows [4] unter gewissen Umständen [5] Administratorrechte erlangen. Die Windows-Version von Veracrypt bügelt diese Schwächen inzwischen aber aus.

Plausible Gründe

Ein starkes Motiv für den Einsatz von Veracrypt stellt dessen garantierte “plausible deniability” dar: Die verschlüsselten Container betten optional einen versteckten inneren Container ein (Abbildung 1). Sollte man Sie je bedrängen, Ihr Verschlüsselungspasswort herauszugeben, so nennen Sie lediglich das des äußeren Containers (siehe Kasten “Glaubhafte Abstreitbarkeit”).

Abbildung 1: Im mit Rauschen vorformatierten freien Platz eines Veracrypt-Containers lässt sich ein weiterer verstecken. Metadaten zu seiner Ausdehnung lassen sich ohne Kenntnis eines gesonderten Passworts ebensowenig ausmachen wie der verschlüsselte Container selbst.

Abbildung 1: Im mit Rauschen vorformatierten freien Platz eines Veracrypt-Containers lässt sich ein weiterer verstecken. Metadaten zu seiner Ausdehnung lassen sich ohne Kenntnis eines gesonderten Passworts ebensowenig ausmachen wie der verschlüsselte Container selbst.

Der Witz dabei: Ohne ein zweites Passwort lässt sich schon die bloße Existenz eines inneren Containers nicht nachweisen. Er erscheint nach Entsperren des äußeren Containers als unbelegter Speicherplatz. Informationen zu seiner Ausdehnung liegen mit dem zweiten Passwort verschlüsselt in einem eigens dafür reservierten Speicherbereich. Auch diese Metadaten wirken, so wie der ganze innere Container, vor dem gesonderten Entsperren wie Zufallswerte.

Die Linux-Standardverfahren Dmcrypt oder eCryptfs [8] eignen sich gut für die Integration ins Betriebssystem, etwa zum Verschlüsseln des ganzen Systems oder der Home-Partition. Die GUI von Veracrypt dagegen bietet sich an, um Container nur bei Bedarf zum Speichern besonders sicherheitskritischer Dateien zu öffnen. Dazu legen Sie mit wenigen Mausklicks einen dateibasierten Container an (Abbildung 2), der sich nicht nur unter Linux verwenden lässt, sondern auch unter Mac OS X und Windows.

Abbildung 2: Der intuitiv gestaltete Veracrypt-Dialog hilft Ihnen dabei, auch ohne Vorwissen oder Handbuchstudium verschlüsselte Container anzulegen.

Abbildung 2: Der intuitiv gestaltete Veracrypt-Dialog hilft Ihnen dabei, auch ohne Vorwissen oder Handbuchstudium verschlüsselte Container anzulegen.

Die simple Benutzeroberfläche (Abbildung 3) übernimmt auch das Mounten der verschlüsselten Volumes. Diese hängt das Programm transparent unter /mnt oder /media ins Dateisystem ein. Alternativ verschlüsselt Veracrypt komplette Partitionen. Der Kommandozeilenschalter --text unterbindet im Bedarfsfall den Start der grafischen Oberfläche, sodass Sie alle Funktionen per Kommandozeile oder Skript steuern können.

Abbildung 3: Die Veracrypt-GUI übernimmt das Mounten und gewährt Zugriff auf alle weiteren Funktionen.

Abbildung 3: Die Veracrypt-GUI übernimmt das Mounten und gewährt Zugriff auf alle weiteren Funktionen.

Glaubhafte Abstreitbarkeit

Manche Länder wie Großbritannien verpflichten Computerbesitzer gesetzlich dazu, auf Anfrage das Passwort für verschlüsselte Daten preiszugeben [6]. Mit der Standard-Linux-Verschlüsselung Dmcrypt/Luks [7] haben Sie hier schlechte Karten: Eine damit verschlüsselte Partition lässt sich ohne Weiteres identifizieren (Abbildung 4) und damit das Vorliegen verschlüsselter Daten nicht abstreiten.

Dasselbe gilt für normale Veracrypt-Volumes: Gute Verschlüsselung erlaubt keinerlei Rückschlüsse auf die verschlüsselten Daten, der Inhalt eines Containers wirkt daher in der Außenansicht wie eine Zufallszahlenfolge. Dagegen weisen unverschlüsselte Daten (Texte, Videos oder Bilder) stets gewisse Regelmäßigkeiten auf. Der Unterschied lässt sich statistisch nachweisen und verrät die verschlüsselten Dateien.

Doch eben jene Eigenschaft, die die Existenz verschlüsselter Dateisysteme verrät, bereitet dem inneren Veracrypt-Container ein sicheres Versteck: Auch der innere Container sieht wie eine zufällige Bitfolge aus und geht darum nahtlos und mit statistischen Methoden nicht nachweisbar in den äußeren über.

In der Praxis überschreibt Veracrypt zunächst beim Erstellen des äußeren Containers den ganzen ihm zugedachten Plattenplatz mit einer Zufallszahlenfolge. Ein zweiter Schritt bettet einen verstecken Container mit einem eigenen Passwort ein. Beim Öffnen eines Veracrypt-Volumes entscheiden Sie dann lediglich über die Passworteingabe, ob Sie den äußeren oder den inneren Container entsperren.

Im äußeren Container sollte sich zur Tarnung eine ausreichende Zahl an Alibi-Dateien befinden. Im freien Bereich liegt dann der innere Container, der ohne Kenntnis des zugehörigen Passworts unsichtbar bleibt. Das gilt auch für Veracrypt selbst: Die Inhalte des äußeren Containers überschreiben ohne Warnung das versteckte Volume, geraten sie zu groß. Das verhindern Sie durch eine Art gemischten Modus, bei dem Sie die Passwörter beider Container eingeben: Erst dann erkennt die Software die Lage des inneren Containers und verhindert ein Überschreiben.

Abbildung 4: Mit der Linux-Bordlösung Dmcrypt/Luks verschlüsselte Partitionen erscheinen in der Partitionstabelle auch als solche.

Abbildung 4: Mit der Linux-Bordlösung Dmcrypt/Luks verschlüsselte Partitionen erscheinen in der Partitionstabelle auch als solche.

Sicher?

Features wie plausible Abstreitbarkeit oder eine handliche GUI nutzen allerdings wenig, wenn sich das dahinterstehende Verschlüsselungsverfahren als unsicher erweist. Wie immer bei Sicherheitsfragen lässt sich hier nur mittels eines Indizienbeweises mit bekannten Faktoren nachfassen; mögliche unbekannte Lücken bleiben folgerichtig unentdeckt.

Doch nach bestem Wissen und Gewissen sieht es um die Sicherheit von Veracrypt gut aus: Die Open-Source-Software hat eine lange, quelloffene Geschichte: Sie basiert auf Truecrypt, das wiederum auf das schon 1997 gestartete Encryption for the Masses (E4M) [9] aufsetzt. Das Truecrypt-Erbe mag zunächst Anlass zur Sorge geben; die Veracrypt-Entwickler erläutern aber nachvollziehbar, wie sie dessen bekannte Schwachstellen ausbügelten [10], die ohnehin nur zum Teil die Linux-Fassung betrafen. Sie unterzogen den Code außerdem zwei statischen Analysen, die einige kritische Programmierfehler zutage förderten. Ein Experten-Audit von Veracrypt selbst steht allerdings noch aus.

Die Software steht auf Sourceforge [11] in Form eines Installers bereit, der lediglich ein Binary und einige weitere Dateien einspielt. Wie immer bei sicherheitsrelevanter Software lohnt es sich, die Integrität der Installationsdateien mit sha512sum gegenzuchecken. Die Software zu kompilieren, erweist sich im Moment als schwierig: Die aktuellen OpenSuse- und Ubuntu-Releases bringen einen Compiler mit, der standardmäßig die neue C++-ABI nutzt, es liegen aber noch nicht alle benötigten Hilfsprogramme in diesem Format vor.

Handlich

Die aktuelle Dokumentation [12] zu Veracrypt lässt keine Fragen offen. Die grundlegenden Funktionen der Software lassen sich dank der intuitiv gestalteten grafischen Oberfläche aber ohnehin ohne diese Lektüre nutzen. Create Volume startet den Volume Creation Wizard. Hier entscheiden Sie zunächst, ob Sie einen Container erstellen oder eine ganze Festplattenpartition verschlüsseln möchten. Dann fragt der Assistent nach, ob Sie ein normales Volume oder einen Container mit eingebettetem verstecktem Volume für “plausible deniability” anlegen möchten (Abbildung 5).

Abbildung 5: Wählen Sie als <code srcset=

Volume Type den Punkt Hidden VeraCrypt volume, erzeugt der Assistent in einem Durchlauf sowohl den äußeren als auch einen versteckt eingebetteten inneren Container.” width=”300″ height=”184″ /> Abbildung 5: Wählen Sie als Volume Type den Punkt Hidden VeraCrypt volume, erzeugt der Assistent in einem Durchlauf sowohl den äußeren als auch einen versteckt eingebetteten inneren Container.

Nun folgt immer das Erstellen eines normalen, äußeren Containers. Dazu benennen Sie einen Dateipfad, in dem die Software den Container erstellen soll, oder das Device-File einer Festplattenpartition (etwa /dev/sda3). Bei der folgenden Auswahl des Encryption Algorithm bieten die Standardeinstellungen AES sowie SHA-512 gute Laufzeit-Performance bei aus heutiger Sicht tadelloser Sicherheit.

Alternative Verschlüsselungsalgorithmen (Abbildung 6) stehen schon wegen der in der Kryptografie gängigen Praxis bereit, alle sicherheitskritischen Komponenten austauschbar zu halten. Sollten künftig neue Angriffsvektoren die nach heutigem Stand sicheren Verfahren kompromittieren, können Sie so den Algorithmus wechseln und die gewohnte Software trotzdem weiter nutzen.

Abbildung 6: Veracrypt lässt Ihnen die Wahl zwischen verschiedenen bewährten Verschlüsselungsalgorithmen.

Abbildung 6: Veracrypt lässt Ihnen die Wahl zwischen verschiedenen bewährten Verschlüsselungsalgorithmen.

Nach Eingabe der gewünschten Volumengröße tippen Sie Ihr Passwort zweimal ein oder wählen eine oder mehrere Keyfiles aus, die aus beliebigen Dateien bestehen dürfen. Für das Dateisystem verwendet Veracrypt in der Grundeinstellung den systemübergreifenden Standard FAT, die ausgereifteren Dateisysteme NTFS und Ext2/3/4 stehen ebenfalls zum Einsatz bereit. Nutzen Sie Letztere, geben Sie allerdings die Kompatibilität zu Windows auf. Im letzten Dialogfenster starten Sie mit einem Klick auf Format das eigentliche Erzeugen des Containers.

Schlüsselfunktion

Zum Mounten eines Volumes genügt es, die Containerdatei oder das Device-File einer Festplattenpartition über den Auswahldialog Select File… beziehungsweise Select Device… anzusteuern. Dann wählen Sie im Listenfeld in der oberen Fensterhälfte einen Slot. Unter Linux bestimmen Sie darin eine Slot-Nummer im Mountpoint /media/veracryptNr, unter Windows einen Laufwerksbuchstaben. Möchten Sie das Objekt in einem anderen Verzeichnis einhängen, klicken Sie im Mount-Dialog auf Options und geben unter Mount at directory: den Pfad dorthin an.

Dann geben Sie nur noch das Passwort respektive die Schlüsseldatei an. Ob Sie den äußeren Container einhängen oder – sofern vorhanden – den inneren, entscheiden Sie dabei allein durch Passwort und Schlüsseldatei. Wie im Kasten “Glaubhafte Abstreitbarkeit” erläutert, nutzen Sie im täglichen Betrieb stets das innere Volume. Mounten Sie dagegen einen äußeren Container mit einem eingebetteten inneren, dann klicken Sie auf Options, aktivieren das Kästchen Protect hidden Volume und geben zusätzlich das Passwort des inneren Containers ein (Abbildung 7).

Abbildung 7: Nur wenn Sie die Passwörter sowohl des äußeren als auch des verstecken Containers kennen, lässt sich der geschützte Modus aktivieren, der den inneren Container vor dem Überschreiben bewahrt.

Abbildung 7: Nur wenn Sie die Passwörter sowohl des äußeren als auch des verstecken Containers kennen, lässt sich der geschützte Modus aktivieren, der den inneren Container vor dem Überschreiben bewahrt.

Ein Klick auf Unmount hängt Objekte wieder aus. Dabei löscht Veracrypt das Passwort explizit aus dem Arbeitsspeicher. Daneben bietet Veracrypt einen Dismount All-Button, der sämtliche offenen Container schnellstmöglich schließt. Da die Software im laufenden Betrieb das Passwort ständig benötigt, lässt sich nicht verhindern, dass es für aktive Container dort verbleibt. Dies gilt jedoch gleichermaßen für die Linux-Bordlösungen.

Sollte das System mit geöffneten Containern abstürzen, so besteht ein Restrisiko: Bekanntlich lagert das Betriebssystem bei Speicherknappheit Teile des Hauptspeichers auf die Festplatte in eine Swap-Datei aus. Unter Umständen landet dann dort auch das Passwort aktiver Veracrypt-Volumes und überlebt damit ein Ausschalten des Systems – bei einem Suspend to Disk passiert das sogar in jedem Fall. Das erweist sich allerdings meist nur dann als Risiko, wenn sich Forensik-Profis mit entsprechenden Kenntnissen des Systems annehmen.

Sie vermeiden dieses Risiko durch eine vollständige Systemverschlüsselung, wie sie der Linux-Installer beispielsweise von Ubuntu einrichtet, da diese auch die Auslagerungspartition verschlüsselt.

Systematisch verborgen

Unter Windows gehen die Fähigkeiten von Veracrypt noch erheblich weiter: In die versteckten inneren Container lässt sich ein zweites Windows als verstecktes, in seiner Existenz nicht nachweisbares Betriebssystem installieren (Abbildung 8). Der dafür genutzte spezielle Bootloader funktioniert mit Linux nicht; ein Posting aus dem Veracrypt-Forum legt nahe, dass sich das auch nicht so schnell ändern dürfte [13].

Abbildung 8: Für Windows unterstützt Veracrypt das Verschlüsseln eines kompletten Betriebssystems in einer versteckten, abstreitbaren Partition. Für Linux fehlt eine solche Funktion bislang.

Abbildung 8: Für Windows unterstützt Veracrypt das Verschlüsseln eines kompletten Betriebssystems in einer versteckten, abstreitbaren Partition. Für Linux fehlt eine solche Funktion bislang.

Doch freie Betriebssysteme bieten bekanntlich viele Möglichkeiten: Cryptsetup, das Tool, das bei der von vielen Linux-Installern angeboten vollständigen Systemverschlüsselung zum Einsatz kommt, sperrt seit Version 1.6.7 vom Frühjahr 2015 auch Veracrypt-Volumes auf. Allerdings bringen sowohl Ubuntu 15.10 als auch OpenSuse 42.1 lediglich ältere Versionen mit, nur Arch Linux nutzt bereits das aktuelle Cryptsetup-Release. Es setzt zum Entsperren des Root-Dateisystems auf ein in der Initial RAM-Disk eingebettetes Shell-Skript.

Für die Kooperation mit Veracrypt-Volumes gilt es, die Standard-Version dieses Skripts zu erweitern – für Shell-Kundige eine allenfalls mittelschwere Aufgabe. Die Start-RAM-Disks anderer Distributionen [14] funktionieren ähnlich wie jene von Arch, weswegen sich das Verfahren prinzipiell auf diese übertragen lässt [15].

Listing 1 zeigt den Ausschnitt aus dem Shellskript /usr/lib/initcpio/encrypt, der so lange nach einem Passwort fragt, bis das Root-Dateisystem erfolgreich entsperrt ist. Zeile 5 zeigt den Aufruf von Dmcrypt mit dem Parameter --type luks. Luks dient unter Linux als gebräuchlichstes Format zum Verschlüsseln von Partitionen.

Listing 1

if [ ${dopassphrase} -gt 0 ]; then
  echo ""
  echo "A password is required to access the ${cryptname} volume:"
  #loop until we get a real password
  while ! eval cryptsetup open --type luks ${resolved} ${cryptname} ${cryptargs} ${CSQUIET}; do
    sleep 2;
  done
fi

Um statt Luks Veracrypt zu verwenden, genügt es, den Parameter --type luks durch --type tcrypt --veracrypt für einen Truecrypt-Container mit dem Unterformat Veracrypt zu ersetzen. Damit die Verschlüsselung mit Luks weiterhin funktioniert, hilft eine simple If-Klausel, die die Existenz des Bootparameters vera=1 prüft und den Container-Typ in einer Variablen ablegt (Listing 2).

Listing 2

if [ -n "${vera}" ]; then
  type="--type tcrypt --veracrypt"
else
  type="--luks"
fi

Im Cryptsetup-Aufruf ersetzen Sie dann lediglich --type luks durch die Variable ${type}. Dmcrypt sucht allerdings nicht automatisch nach einem versteckten Container, sondern nur nach Angabe der zusätzlichen Option --tcrypt-hidden. Das Skript übernimmt also die Aufgabe, beide Varianten zu testen. In der getunten Fassung probiert es das erste eingegebene Passwort für den äußeren Container. Schlägt das Entsperren fehl, fragt es erneut nach einem Passwort, testet nun aber am inneren Container, dann wieder am äußeren und so weiter.

Das erweist sich allerdings als nicht besonders komfortabel, zumal es dauert, bis Veracrypt ein falsches Kennwort zurückweist. Doch dafür gibt dieses Verfahren keinen Hinweise auf versteckte Container preis. Dazu ersetzen Sie den Code aus Listing 1 durch den in Listing 3 gezeigten. Die komplette Skript-Datei vencrypt für Arch-Linux finden Sie auf der Heft-DVD.

Listing 3

#loop until we get a real password
hidden=""
while ! eval cryptsetup open ${type} ${hidden} -T1 ${resolved} ${cryptname} ${cryptargs} ${CSQUIET}; do
  if [ -n ${vera} ] && [ "${hidden}" == '' ]; then
    hidden="--tcrypt-hidden"
  else
    hidden=""
  fi
 sleep 2;
done

Nun stellt sich die Frage, wie Sie ein Arch Linux statt eines Windows in einer versteckten Veracrypt-Partition unterbringen. Am einfachsten gelingt das, indem Sie auf einem Arch-Linux-Rechner mit der Veracrypt-GUI eine Partition in einer zweiten Festplatte vorbereiten und den versteckten Container mounten. Er muss mindestens die Größe des gegenwärtigen Systems aufweisen. Falls Sie ein Alibi-System im äußeren Container einrichten möchten, müssen Sie das beim Bemessen der Containergröße ebenfalls berücksichtigen.

Die Installation auf einer zweiten Platte ist sicherer, weil Sie dabei den Bootloader des alten Systems nicht antasten. Sie entscheiden im BIOS/EFI, welches System bootet. Ein Rsync-Aufruf [16] überträgt das laufende System in die gemountete Veracrypt-Partition – im Beispiel aus Listing 4 etwa /mnt/veracrypt1.

Listing 4

$ rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/boot/"} / /mnt/veracrypt1

Neben der Root-Partition braucht ein verschlüsseltes System eine unverschlüsselte Boot-Partition. Legen Sie dafür eine weitere 100 MByte große Partition an, formatieren Sie sie mit mkfs.ext4 /dev/sdxN (wobei Sie xN durch den Bezeichner des passenden Device-Files ersetzen) und kopieren Sie den Inhalt des Verzeichnisses /boot des laufenden Systems dorthin.

Starthilfe

Nun folgen einige Schritte, die Arch-Linux-Anwender in ähnlicher Art bereits aus der Erstinstallation ihres Systems kennen. Verändern Sie im gespiegelten System zunächst die fünfte Zeile in Mountpoint/etc/default/grub zu:

GRUB_CMDLINE_LINUX="cryptdevice=/dev/sdxN:veracrypt1 vera=1"

Das Schlüsselwort cryptdevice zeigt auf die mit Veracrypt verschlüsselte Partition. Nach dem Doppelpunkt folgt der Name des Mappers in /dev/mapper/, im Beispiel veracrypt1, über den Veracrypt auf die im Moment gemountete Partition zugreift.

Das veränderte Skript vencrypt von der Heft-DVD kopieren Sie in das Verzeichnis Mountpoint/usr/lib/initcpio/hooks/. Damit es sich in die initiale RAM-Disk installieren lässt, duplizieren Sie auch Mountpoint/usr/lib/initcpio/install/encrpyt unter dem Namen vencrypt.

Nun registrieren Sie das veränderte Skript vencrypt unter Mountpoint/etc/mkinitcpio.conf; gegebenenfalls ersetzen Sie eine dort schon vorhandene Arch-Linux-Originalversion encrpyt. Die dafür zuständige HOOKS-Zeile [17] könnte dann wie folgt lauten:

HOOKS="base udev autodetect modconf block filesystems keyboard keymap vencrypt fsck"

Auf jeden Fall muss vencrypt hinter filesystems und keyboard stehen, aber vor fsck. Das Schlüsselwort keymap sorgt gegebenenfalls für eine deutsche Tastatur bei der Passworteingabe. Weitere in Ihrem System vorhandene Hooks lassen Sie unverändert stehen.

Nun wird es Zeit, per Chroot in das neue System zu wechseln. Dazu dient das Skript Pacstrap aus dem Arch-Linux-Installationsmedium [18], das Sie mit ./arch-chroot Mountpoint aufrufen. Die Ubuntu-Anleitung zum Fixen von Grub [19] startet ebenfalls eine Chroot-Umgebung. Ändern Sie dann /etc/fstab wie in Listing 5 gezeigt.

Listing 5

/dev/sdb5               /boot  ext4  rw,relatime,data=ordered  0 1
/dev/mapper/veracrypt1  /      ext4  rw,relatime,data=ordered  0 1

Mounten Sie /boot und installieren Sie Grub auf der neuen Festplatte. Auf BIOS-Systemen hilft das Kommando grub-install /dev/sdX, für EFI-Systeme hilft das Arch-Wiki weiter [20]. Als Nächstes generieren Sie eine Grub-Konfiguration mit den eben in /etc/default/grub eingefügten Parametern:

$ grub-mkconfig -o /boot/grub/grub.cfg

Dann fehlt nur noch das Erzeugen der Start-RAM-Disk, das Sie mit mkinitcpio -p linux bewerkstelligen. Nun sollte das verschlüsselte System von der zweiten Festplatte booten. Quittieren Sie die erste Passwortabfrage nach dem Grub-Menü lediglich mit der Eingabetaste – sie gilt dem äußeren Volume und soll entsprechend fehlschlagen. Nach Eingabe des Passworts für das versteckte Volume in der zweiten Abfrage bootet das vom unverschlüsselten Original abgeleitete System (Abbildung 9).

Abbildung 9: Geschafft: Arch Linux läuft in einem unter <code srcset=

/dev/mapper/veracrypt1 gemounteten, versteckten Veracrypt-Container.” width=”300″ height=”173″ /> Abbildung 9: Geschafft: Arch Linux läuft in einem unter /dev/mapper/veracrypt1 gemounteten, versteckten Veracrypt-Container.

Für maximale Abstreitbarkeit spiegeln Sie per Rsync auch in den äußeren Container ein Linux-System und versehen es mit derselben /etc/fstab-Datei. Der Eintrag im Bootloader genügt für beide Systeme und benötigt deswegen keine weitere Modifikation.

Fazit

Veracrypt besticht in drei Szenarien: Auf damit verschlüsselte Objekte greifen Sie plattformübergreifend sowohl unter Linux als auch unter Mac OS X und Windows zu. Seine grafische Oberfläche prädestiniert es für nur bei Bedarf entsperrte Volumes, während die Linux-Bordmittel ihre Stärken eher bei ins System integrierten, dauernd eingehängten Dateisystemen ausspielen. Die Existenz versteckter Veracrypt-Container schließlich lässt sich “by design” nicht beweisen, was je nach politischem System für zusätzliche Sicherheit sorgt.

Veracrypt bringt einen Bootloader mit, der Windows-Systeme in versteckten Containern startet. Mit einem aktuellen Cryptsetup-Binary und einigen Modifikationen der Initial RAM-Disk lässt sich diese Funktion aber auch unter Linux nachstellen. Übrigens nutzt Veracrypt unter Linux für die Laufzeitverschlüsselung den Dmcrypt-Mechanismus des Kernels, genau wie die bordeigenen Verfahren der Distributionen. Es benötigt also kein eigenes Kernel-Modul, das die Systemstabilität gefährden könnte. 

Glossar

Initial RAM-Disk

Ein Dateiarchiv, das der Kernel beim Booten vorläufig als Root einhängt. Darin liegen Kernel-Module für die Dateisysteme sowie eine Shell. Darin ablaufende Skripte schaffen die Voraussetzungen zum Einhängen des endgültigen Root-Dateisystems.

Chroot

steht für “change root”. Dabei täuscht der Kernel dem laufenden System vor, ein bestimmter Ordner sei das Wurzelverzeichnis (/). Sie mounten also das Root-Verzeichnis eines nicht gestarteten Systems beispielsweise unter /mnt und arbeiten danach damit so, als liefe es tatsächlich.

Infos

[1] Truecrypt: http://truecrypt.sourceforge.net

[2] Veracrypt: https://veracrypt.codeplex.com

[3] Truecrypt-Audit: http://blog.cryptographyengineering.com/2015/04/truecrypt-report.html

[4] Rechte-Eskalation: https://code.google.com/p/google-security-research/issues/detail?id=538,

[5] Rechte-Eskalation: https://code.google.com/p/google-security-research/issues/detail?id=537

[6] Zwang zur Passwortherausgabe: http://www.legislation.gov.uk/ukpga/2000/23/part/III/crossheading/power-to-require-disclosure

[7] Dmcrypt/Luks: https://wiki.archlinux.org/index.php/Dm-crypt

[8] eCryptfs: http://ecryptfs.org

[9] E4M: https://en.wikipedia.org/wiki/E4M

[10] Security-Fixes: https://veracrypt.codeplex.com/discussions/569777

[11] Installer: http://sourceforge.net/projects/veracrypt/files/

[12] Dokumentation: https://veracrypt.codeplex.com/documentation/

[13] Windows-Bootloader: http://sourceforge.net/p/veracrypt/discussion/technical/thread/a010f9bc/

[14] Ubuntu-Initramfs: https://wiki.ubuntu.com/Initramfs

[15] OpenSuse Dracut: https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html

[16] Full-System-Backup mit Rsync: https://wiki.archlinux.org/index.php/Full_system_backup_with_rsync

[17] Initcpio-Hooks: https://wiki.archlinux.org/index.php/mkinitcpio#HOOKS

[18] Chroot-Hilfsskript: https://projects.archlinux.org/arch-install-scripts.git/tree/arch-chroot.in

[19] Grub unter Ubuntu via Chroot fixen: https://wiki.ubuntuusers.de/GRUB_2/Reparatur/#chroot-Methode

[20] EFI im Arch-Wiki: https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface

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

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

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