Container bieten eine einfache Möglichkeit, persönliche Daten verschlüsselt zu sichern. Mit Tomb verwalten Sie sie komfortabel am Prompt.
Unter Linux gibt es etliche Wege, Daten sicher zu verschlüsseln. Die Chiffrierung ganzer Partitionen erledigt Cryptsetup mit LUKS2. Und für Verzeichnisse haben sich GocryptFS sowie CryFS als kryptografische Overlay-Dateisysteme bewährt. Beim Austausch verschlüsselter Dateien zwischen Computersystemen und bei Backups bieten Daten-Container allerdings wesentlich mehr Flexibilität. Die portablen Datentresore sind an keinen bestimmten Datenträger gebunden und setzen kein spezielles Dateisystem voraus – sie enthalten ihr eigenes. Container können also einfach per Netzwerkverbindung, USB-Stick oder per Cloud-Speicher von einem Computersystem auf ein anderes gelangen.
Die bekannteste freie Anwendung zum Erstellen, Verwalten und Einhängen verschlüsselter Container ist Veracrypt [1]. Es stammt vom inzwischen eingestellten Truecrypt ab, leidet jedoch wie der Vorgänger unter einigen kryptografischen Mängeln. So hat das Fraunhofer-Institut für Sichere Informationstechnologie (SIT) den Entwicklern von Veracrypt in einer Codeanalyse geraten, besser auf bewährte Kryptostandards zu setzen statt auf obskure Eigenentwicklungen [2].
Das Terminal-Werkzeug Tomb [3] nutzt zur Datenverschlüsselung ausschließlich offene, erprobte, in Linux schon verankerte Algorithmen und Methoden zur Verschlüsselung. Beispielsweise kommt neben dem bewährten Device-Mapper Dm-crypt das Linux Unified Key Setup (LUKS) zum Einsatz. Zudem bietet Tomb nützliche Extras, beispielsweise ein steganografisches Versteck für Schlüssel in JPG-Dateien. Ein Tomb-Container und sein Schlüssel lassen sich zwischen verschiedenen Linux-Systemen gut austauschen, denn die Voraussetzungen von Tomb sind möglichst universell gehalten. Das Programm selbst haben die Entwickler als Skript für die Z-Shell umgesetzt, sodass es nahezu überall in der Linux-Kommandozeile läuft. Das Einarbeiten in die verschiedenen Aufrufparameter fällt nicht allzu schwer, Zsh müssen Sie dazu nicht lernen.
Die gängigen Distributionen wie Arch Linux, Debian, Fedora, Slackware und Ubuntu führen Tomb seit Langem in ihren Repositories. Das Installieren gelingt dementsprechend flott über den jeweiligen Paketmanager. Selbst auf anderen Distributionen liegen die Hürden für eine manuelle Installation nicht hoch, auf Kompilieren können Sie verzichten.
Als Voraussetzungen benötigen Sie zunächst lediglich die Pakete zsh, file, gnupg, cryptsetup, pinentry-curses, wget, make, steghide und mlocate, die nahezu jede Distribution anbietet. Anschließend laden Sie im Terminal das Archiv mit der neuesten Version von Tomb herunter und entpacken es (Listing 1, erste zwei Zeilen). Dann wechseln Sie in das dabei neu erstellte Verzeichnis (dritte Zeile). Dort installieren Sie Tomb mit dem schlichten Kommando aus der letzten Zeile, das nach gelungenem Abschluss noch weiterführende Infos zeigt.
Listing 1
Tomb einrichten
$ wget https://files.dyne.org/tomb/releases/Tomb-2.10.tar.gz $ tar xvzf Tomb-2.10.tar.gz $ cd Tomb-2.10 $ sudo make install
Erster Einsatz
Für die Aufnahme von Dateien und Ordnern muss Tomb nun einen neuen Container in passender Größe anlegen. Es gilt also, den Platzbedarf der Daten jetzt schon abzuschätzen, da Tomb eine Größenangabe in Megabyte verlangt. Um beispielsweise einen Container mit dem Namen Test.tomb und einer Größe von 500 MByte anzulegen, verwenden Sie im Terminal den Befehl aus der ersten Zeile von Listing 2.
Listing 2
Container erzeugen
$ tomb dig -s 500 Test.tomb $ tomb forge -f Test.tomb.key $ tomb lock -k Test.tomb.key Test.tomb $ tomb open -k Test.tomb.key Test.tomb [...] $ tomb close $ tomb resize -s 1000 -k Test.tomb.key Test.tomb
Als Nächstes braucht der noch leere Container einen ebenfalls neu zu erzeugenden passwortgeschützten Schlüssel zum Öffnen und Schließen. Das entsprechende Kommando (zweite Zeile) fragt zweimal das gewünschte Passwort ab. Das Kennwort benötigen Sie ab sofort immer zum Verwenden des Schlüssels. Letztlich macht der Aufruf aus Zeile 3 des Listings den Container mit dem Schlüssel bekannt und verschließt ihn, wobei er das für den Schlüssel vergebene Passwort abfragt (Abbildung 1).
Für ein Plus an Sicherheit empfiehlt es sich, vor dem Erzeugen des Schlüssels einen eventuell aktiven Swapspace im System kurzerhand zu deaktivieren. Das schließt aus, dass ein geheimer Schlüssel im Klartext im Auslagerungsbereich verbleibt. Diesen optionalen Schritt erledigt der Befehl sudo swapoff -a. Tomb weist bei allen Aktionen rund um Schlüssel auf den aktiven Swap-Bereich hin, wenn sie ohne den Parameter -f erfolgen.
Den abgesperrten Test-Container schließt nach Eingabe des Passworts das Kommando aus Zeile 4 von Listing 2 wieder auf. Tomb hängt den Container daraufhin im Verzeichnis /media mit seinem Namen wie ein herkömmliches Laufwerk ein. Der Zugriff klappt also mit beliebigen Dateimanagern auf dem Desktop oder in der Shell. Sie können Dateisystemobjekte in den Container kopieren oder dort modifizieren.
Im Gegensatz zu herkömmlichen Laufwerken lassen sich Tomb-Container im Dateimanager nicht einfach per Rechtsklick wieder aushängen. Das erfordert einen Befehl im Terminal, der den geöffneten Container abtrennt und abschließt (Zeile 6). Haben Sie bei eifriger Nutzung von Tomb mehrere Container eingehängt, schließt der Aufruf tomb close all alle. Ganz gezielt hängt das Kommando tomb close Container einen bestimmten Container aus.
Wachsende Container
Haben Sie mehrere Tomb-Container in Ihrem System installiert und möchten sehen, welche davon eingebunden sind, bedienen Sie sich des Befehls tomb list. Er zeigt sämtliche offenen Container mit ihren Einhängepunkten, ihrer Belegung und noch freiem Speicherplatz an.
@l.Ist ein Container beinahe voll oder viel zu klein geraten, kann er sich noch ausdehnen. Das erledigen Sie bei Bedarf auch nachträglich. Dazu müssen Sie die zu modifizierende Container-Datei aushängen und benötigen zudem die Schlüsseldatei sowie das zugehörige Passwort.
Um den 500 MByte großen Test-Container auf 1000 MByte zu vergrößern, geben Sie den Befehl aus der letzten Zeile von Listing 2 ein. Tomb fragt daraufhin wieder das Passwort der Schlüsseldatei ab und vergrößert den Container auf den gewünschten Umfang. Der Inhalt bleibt dabei intakt.
Bitte behalten Sie im Hinterkopf: Tomb kann einzelne Container zwar beliebig ausdehnen, sie jedoch aufgrund der verwendeten Kryptoalgorithmen später nicht mehr verkleinern.
Schlüssel verstecken
Tomb vergibt für die Schlüsseldateien die Endung .key. Sollten diese Daten einmal Unbefugten in die Hände fallen, erweist sich der Schlüssel ohne zugehöriges Passwort zwar als unbrauchbar, aber es bleibt offensichtlich, dass es sich hier um ein Schlüsselzertifikat handeln muss. Um unerwünschter Neugier vorzubeugen, kann Tomb Schlüssel mithilfe des steganografischen Programms Steghide [4] in einer Bilddatei verstecken. Als Ausgangsgrafik eignet sich eine beliebige Abbildung im JPEG-Format.
Auch hier demonstriert Tomb wieder seinen Vorteil, viele Handgriffe zu vereinfachen: Eine Container-Datei lässt sich direkt mit einem zuerst versteckten und dann aus einem Bild ausgelesenen Schlüssel öffnen. Doch Vorsicht: Ein JPEG mit steganografischen Informationen dürfen Sie nicht mehr bearbeiten.
Um einen vorhandenen Schlüssel mit Tomb in einer JPEG-Datei zu verstecken, verwenden Sie das Kommando aus der ersten Zeile von Listing 3. Es erfordert abgesehen von der Eingabe des Passworts keine weiteren Aktionen. Auch beim Einbinden eines Containers arbeitet Tomb direkt mit der Bilddatei. Sie geben statt der Schlüsseldatei einfach den Pfad zum JPEG an, das die geheimen Daten enthält (Abbildung 2).
Listing 3
Schlüssel
$ tomb bury -k Test.tomb.key Bild.jpg $ tomb exhume Bild.jpg -k Test.tomb.key $ tomb passwd -k Test.tomb.key $ tomb setkey -f -k Test.tomb.new.key Test.tomb.key Test.tomb $ tomb engrave -k Test.tomb.new.key
Schlüsselwechsel
Das steganografische Versteck ist keine Einbahnstraße – der Befehl aus der zweiten Zeile von Listing 2 kann eine Schlüsseldatei wieder aus einem JPEG extrahieren und einzeln speichern. Mitunter besteht die Notwendigkeit, das Passwort eines Schlüssels zu ändern (Zeile 3). Dazu fragt das Programm zuerst wie gewohnt das alte Passwort ab und verlangt danach die Angabe des neuen Kennworts.
Tomb vermag zudem vorhandene Container ohne Datenverlust nachträglich mit neuen Schlüsseln auszustatten. Dazu benötigen Sie den alten Schlüssel samt zugehörigem Passwort. Der Aufruf aus der vierten Zeile von Listing 3 ersetzt anschließend den Schlüssel des angegebenen Containers (Abbildung 3).
Nur nichts verlieren
An allen Speichermedien nagt der Zahn der Zeit, besonders USB-Sticks mit Schlüsseldateien können aufgrund ihrer Größe allzu leicht verloren gehen. Tomb bietet deshalb noch einen analogen Weg an: Wichtige Schlüssel können Sie als Ausdruck in Form eines QR-Codes verwahren. Dazu verlangt die Anwendung lediglich die Installation des Pakets qrencode, das sich in den Repos aller gängigen Distributionen findet.
Über den Befehl aus der letzten Zeile von Listing 3 generiert Tomb eine Kopie des angegebenen Schlüssels als QR-Code. Er liegt danach im aktuellen Verzeichnis als PNG-Datei vor, die sich als Grafik ausdrucken lässt (Abbildung 4). Papier bedeutet hier keinesfalls einen Anachronismus: Ein Ausdruck erweist sich im Fall eines Hardwaredefekts mit Schlüsselverlust als rettender Faktor, um die Informationen mittels QR-Code-Scanner auf einem Smartphone wieder als Datei herzustellen. Allerdings wollen die Ausdrucke in der Zwischenzeit sicher aufbewahrt sein.
Fazit: Komfort-Container
Tomb erstellt und verwaltet im Terminal effizient verschlüsselte Container-Dateien. Das Programm fasst dazu mehrere Tools unter einem vereinfachten Interface zusammen. Mit etwas Übung gelingt das Erstellen, Verschlüsseln und Einhängen sehr flott.
Die Container chiffriert Tomb mit LUKS, die Schlüsseldateien mit GPG, verwendet also ausschließlich bewährte Techniken. Ein Austausch der handlichen Datenspeicher mit ihren Schlüsseln gelingt selbst zwischen sehr unterschiedlichen Linux-Systemen.
Die Kombination aus Schlüsseldatei und Passwort entspricht zwei Faktoren und darf mithin als ausreichend sicher gelten, geht aber zulasten des Komforts. Es genügt nicht, sich an ein Kennwort zu erinnern. Auch das Verwalten und Verwahren der Schlüssel macht etwas Arbeit.
Infos
-
Veracrypt: https://veracrypt.fr/en/Home.html
-
SIT-Pressemitteilung: https://www.sit.fraunhofer.de/de/presse/details/news-article/show/veracrypt-mit-leichten-maengeln/
-
Steghide: https://steghide.sourceforge.net









