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.

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 /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.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Eingepackt
    Für das Verschlüsseln kleiner Datenbestände erweisen sich herkömmliche Tools oft als Overkill. Das kleine Werkzeug Trupax springt hier in die Bresche und sichert kleinere Datenmengen einfach vor neugierigen Blicken.
  • Multitool
    Zulucrypt versammelt eine ganze Reihe von Verschlüsselungsmethoden für komplette Volumes unter einer grafischen Oberfläche, lässt sich aber trotzdem leicht bedienen.
  • Neue Software (Teil 1/2)
    Im Quartalsrhythmus erscheinen viele Programme in neuer Version. Eine Auswahl stellen wir regelmäßig vor. Auf der Heft-DVD finden Sie die passenden Pakete und Installationshinweise.
  • Datenverschlüsselung mit Truecrypt
    Sensible Daten gehören in den Datensafe: Truecrypt verschlüsselt nicht nur ganze Partitionen, sondern verbirgt sogar deren Existenz.
  • Grenzöffner
    Mofo Linux ermöglicht eine sichere digitale Kommunikation auch dort, wo sie politisch oder ideologisch nicht gewollt ist.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...