Mit GocryptFS Dateien verschlüsselt ablegen

Aus LinuxUser 06/2021

Mit GocryptFS Dateien verschlüsselt ablegen

© Andrii Atanov, 123RF.com

Go for it!

Vertrauliche Daten legen Sie am besten verschlüsselt ab. GocryptFS vereinfacht das Verfahren drastisch.

Das Thema Sicherheit ist in der IT allgegenwärtig – ganz gleich, ob auf dem Firmenrechner oder dem Heim-PC. Es betrifft Nutzer digitaler Dienste überall, denn ständig lauert die Gefahr, dass Dritte Daten entwenden. So komplex wie die digitalen Dienste fällt in der Regel auch das Bedrohungsszenario aus.

Verschlüsselung dient dazu, das unerwünschte Abfischen von Daten mit verschiedenen Mitteln zu verhindern. Eine mögliche Option dazu ist das Go-basierte GocryptFS [1]. Das Programm setzt auf das sogenannte Filesystem in Userspace (FUSE [2]) auf und nimmt für sich in Anspruch, verlässlich, sicher und schneller als die Konkurrenz zu sein.

Allerdings eignet es sich nur für bestimmte Szenarien (siehe Kasten “Aus vielen Richtungen”). Es verspricht, Daten auf Laufwerken aus Sicht des Anwenders agnostisch zu verschlüsseln. Im Idealfall merken Sie von der Verschlüsselung also nichts, sondern greifen auf die Daten wie üblich zu. GocryptFS legt dazu eine zusätzliche Schicht zwischen den physischen Datenträger und den Nutzer und sorgt dafür, dass die Daten nicht im Klartext auf dem Medium liegen.

Aus vielen Richtungen

Im IT-Umfeld fällt im Zusammenhang mit dem Thema Sicherheit stets das Schlagwort “Bedrohungsszenario”. Die sperrige Vokabel deutet auf eine wichtige Tatsache hin: Das beste Sicherheitskonzept nützt nichts, wenn es nicht zu den Angriffen passt. Das Beispiel eines verschlüsselten Dateisystems wie GocryptFS zeigt das recht gut, vor allem im Kontrast zu anderen Ansätzen für die Verschlüsselung.

Fachleute denken bei Verschlüsselung in der Regel an zwei Konzepte, die relativ wenig miteinander zu tun haben. Auf der einen Seite steht die Verschlüsselungsvariante, der Sie im Alltag vermutlich schon begegnet sind, die sogenannte Transportverschlüsselung. Bei Datenabfragen via Webbrowser oder Mailclient lief die Kommunikation früher im Klartext ab. Das galt sowohl für das Anmeldepasswort als auch für die abgerufenen Daten oder Nachrichten. Das Szenario ist offensichtlich, aber relativ leicht zu beheben. Die wenigsten Anbieter unterstützen heute überhaupt noch unverschlüsselte Verbindungen und schreiben stattdessen TLS/SSL vor. Für den Fall, dass Dritte die Leitung anzapfen, schützt das die Daten auf dem Weg.

In einem anderen Umfeld wirkt dieser Ansatz aber fast hilflos: Das Gros der genutzten Computer ist heute mobil. Es geht also um Tablets, Smartphones und Laptops, die mobil wie stationär zum Einsatz kommen. Dass ein Firmen-Laptop Mails über fremde Netze nur verschlüsselt austauscht, ist zwar gut und richtig, nützt aber gar nichts, wenn jemand das Gerät selbst stiehlt: Wer Zugriff auf die Hardware hat, hat Zugriff auf die Daten – es sei denn, man schützt diese durch zusätzliche Mechanismen. Hier kommt die sogenannte Encryption at Rest ins Spiel, also das Verschlüsseln von Daten auf Datenträgern. Das verhindert, dass wichtige Daten in die Hände Dritter gelangen, die sich Zugang zur jeweiligen Hardware verschafft haben.

Allerdings ist Encryption at Rest manchmal schwieriger zu nutzen als Transportverschlüsselung, und sie knabbert an der Performance, die ein System bereitstellt, da sie die CPU belastet.

Heikle Insellösungen

Ganz neu ist das Konzept der Encryption at Rest nicht, und manche Programme versuchen, das Problem allein anzugehen. Thunderbird und alle am Markt etablierten Webbrowser speichern Passwörter zum Beispiel in verschlüsselten Datenbanken ab. Das sind aber Insellösungen, und bei Thunderbird etwa liegen die Inhalte der Mails unverschlüsselt auf der Festplatte – im Fall eines Diebstahls oft das größere Problem: Das Passwort für die Kommunikation zwischen Client und Server haben Sie meist flott geändert, einmal entwendete Daten sind dagegen unwiderruflich weg.

GocryptFS setzt eine Ebene tiefer an und speichert Daten gleich so, dass sie immer verschlüsselt auf dem Datenträger liegen. Geht eine per GocryptFS verschlüsselte Platte verloren, bleiben die Daten auf dem Gerät im Normalfall verborgen. Obendrein verspricht GocryptFS, die Leistungseinbußen durch die Verschlüsselung möglichst zu minimieren, indem es etwa auf Hardwarefunktionen moderner Prozessoren zurückgreift.

Im Wettbewerb

GocryptFS geht auf den Österreicher Jakob Unterwurzacher zurück, der an der Lösung bereits seit 2015 arbeitet. Als Inspiration für sein Programm diente ihm ein anderes verschlüsseltes Dateisystem, nämlich EncFS [3]. Das hat sich in einer Quelltextanalyse namhafter Sicherheitsforscher mittlerweile allerdings als nicht ganz so sicher herausgestellt (Abbildung 1), wie seine Autoren es ursprünglich geplant hatten.

Abbildung 1: EncFS als ideologischer Vorgänger von GocryptFS steht unter Ubuntu zwar noch bereit, kommt aber mit einer dicken Warnung daher.

Abbildung 1: EncFS als ideologischer Vorgänger von GocryptFS steht unter Ubuntu zwar noch bereit, kommt aber mit einer dicken Warnung daher.

Konkret formulieren die Experten Sorgen hinsichtlich von Situationen, in denen Langfinger mehrere Versionen einer mit EncFS verschlüsselten Datei in die Finger bekommen. Dann sei es stark vereinfacht ausgedrückt möglich, Rückschlüsse auf den Schlüssel zu ziehen, den die Software zum Verschlüsseln nutzt, was das gesamte Unterfangen nutzlos mache.

GocryptFS hat dieses Sicherheitsproblem ab Werk nicht. Obendrein verspricht es, deutlich flinker zu agieren als die Konkurrenz von EncFS und anderen Lösungen. Wie funktioniert GocryptFS im Kern, und wie setzen Sie es auf?

Overlay-Dateisystem

Mit seinem Vorgänger EncFS hat Gocryptfs gemein, dass sein Erfinder es als sogenanntes Overlay-Dateisystem konzipiert hat. Nun gibt es mehrere Varianten, die Inhalte von Speichergeräten wie SSDs oder Festplatten “at rest” zu verschlüsseln. Eine davon besteht darin, ein Dateisystem zu verwenden, das Verschlüsseln beherrscht. Andere nutzen eine zusätzliche Software zum Verschlüsseln des gesamten Datenträgers. Den letzteren Ansatz verfolgen etwa Apple mit Vault oder Microsoft mit Bitlocker.

In beiden Fällen ist stets die gesamte Platte verschlüsselt, was im Alltag mit ein paar Problemen einhergeht. Eines besteht darin, dass vorhandene Technologien nicht mit jeder Art von Datenträger kompatibel sind. Wer etwa einen virtuellen Dropbox-Ordner in seinem persönlichen Ordner eingebunden hat, kann diesen nicht ohne Weiteres mit Bitlocker bearbeiten.

Ein anderes Problem besteht darin, dass es sich die Inhalte verschlüsselter Geräte nicht mit Standardwerkzeugen von einem Gerät auf ein anderes kopieren kann. Bei Ansätzen wie Vault oder Bitlocker muss die Software auf beiden Seiten aktiv sein, um Inhalte zu kopieren. Der Benutzer muss also auf beiden Seiten das Passwort für das Gerät eingegeben und es so aktiviert haben. Das birgt implizit ein Sicherheitsrisiko: Stiehlt jemand das Gerät, während ein verschlüsseltes Dateisystem aktiv ist, hat er Zugriff auf die Inhalte.

Dateisysteme, die die Verschlüsselung im Stile eines Overlays nachrüsten, funktionieren anders: Sie speichern üblicherweise jede verschlüsselt abgelegte Datei in der darunterliegenden Infrastruktur ab. Nutzen Sie einen USB-Stick, ist dieser üblicherweise mittels FAT32 formatiert. GocryptFS legt sich dann als zusätzliche Schicht darauf.

Im FAT32-Dateisystem sehen Sie also die von GocryptFS verschlüsselten Dateien und können sie an einen anderen Ort kopieren, selbst wenn das Overlay-Dateisystem gerade nicht aktiv ist. Synchronisations- und Backup-Werkzeuge arbeiten deshalb mit Overlay-Dateisystemen zusammen, als handele es sich um normale Dateisysteme.

Vorbereitungen

Als regelmäßigem Linux-Nutzer ist Ihnen FUSE wahrscheinlich schon geläufig. Eine ganze Reihe verschiedener Funktionen sind mittlerweile als Pseudodateisystem via FUSE implementiert, um sich den mühsamen Umweg durch den Kernel zu sparen. Für Programme wie GocryptFS stellt FUSE ebenfalls eine beliebte Lösung dar, und so verwundert es nicht, dass die Entwickler sich explizit dafür entschieden haben. Praktischerweise darf der Userland-Client dabei in jeder beliebigen Programmier- oder Skriptsprache implementiert sein. Jakob Unterwurzacher wollte für seine verbesserte EncFS-Implementation unbedingt das moderne Go nutzen und hatte dank FUSE die Gelegenheit dazu.

Wie setzen Sie GocryptFS also auf Ubuntu auf, wenn Sie es nutzen möchten? Das folgende Beispiel orientiert sich an Ubuntu 21.04. Ganz ohne Vorwissen geht es nicht, denn GocryptFS bietet zwei verschiedene Betriebsarten an: den Forward- sowie den Reverse-Modus. Der Forward-Modus schafft einen lokalen Einhängepunkt, auf den Sie schreibend zugreifen. Alles, was Sie unter diesem Einhängepunkt ablegen, verschlüsselt die Software und schreibt es danach auf das darunterliegende Dateisystem.

Die zweite Betriebsart, der Reverse-Modus, erzeugt hingegen einen Einhängepunkt, über den Sie verschlüsselt auf Dateien zugreifen können, die lokal und bereits unverschlüsselt existieren. Das ist besonders praktisch, wenn Sie Daten von A nach B kopieren möchten, etwa zur Datensicherung. Quasi en passant bietet GocryptFS Ihnen hier die Möglichkeit, ein verschlüsseltes Backup ohne großen Aufwand anzulegen.

Forward-Modus

Für den Forward-Modus legen Sie in Ihrem Home-Verzeichnis zunächst drei Ordner an, nämlich ~/DATEN/, ~/VERSCHLUESSELT/ und ~/.config/gocryptfs/. In ~/DATEN/ schreiben Sie später die Daten, in ~/VERSCHLUESSELT/ liegen diese dann verschlüsselt.

Spätestens jetzt müssen Sie auf die Kommandozeile, denn für GocryptFS existiert aktuell noch kein grafischer Client. Über [Alt]+[F2] und die Eingabe von konsole öffnen Sie ein Terminal, wenn Sie unter KDE unterwegs sind. Im nächsten Schritt (Listing 1, erste Zeile) legen Sie die Konfigurationsdatei an, die auch das Passwort enthält, mit dem GocryptFS später die Daten verschlüsselt (Abbildung 2).

Listing 1

Mountpoint einrichten

$ gocryptfs -init -config ~/.config/gocryptfs/LUTESTFORWARD.conf ~/VERSCHLUESSELT
$ gocryptfs -config ~/.config/gocryptfs/LUTESTFORWARD.conf ~/VERSCHLUESSELT/ ~/DATEN/
$ fusermount -u ~/DATEN/

Abbildung 2: Das Anlegen eines verschlüsselten Overlay-Dateisystems erledigen Sie mit GocryptFS schnell und unkompliziert.

Abbildung 2: Das Anlegen eines verschlüsselten Overlay-Dateisystems erledigen Sie mit GocryptFS schnell und unkompliziert.

Geben Sie das Passwort ein und bestätigen Sie es durch einen Druck auf die Eingabetaste. Anschließend aktivieren Sie das FUSE-Dateisystem, um es lokal zu nutzen (Listing 1, zweite Zeile). Erhalten Sie keine Fehlermeldung, überprüfen Sie zusätzlich durch die Eingabe von mount, ob das Einhängen geklappt hat. Hier sollten Sie nun einen Einhängepunkt des Typs fuse sehen, der mit dem Ordner ~/VERSCHLUESSELT/ assoziiert ist.

Ein letzter Test gibt Ihnen die Gewissheit, dass GocryptFS wie gewünscht funktioniert: Kopieren Sie eine Datei in den Ordner ~/DATEN/ und werfen Sie anschließend einen Blick in den Ordner ~/VERSCHLUESSELT/. Dort sehen Sie nun für die originale Datei im Ordner ~/DATEN/ eine verschlüsselte Datei (Abbildung 3).

Abbildung 3: Im Forward-Modus speichert GocryptFS Dateien verschlüsselt im darunterliegenden Dateisystem, wie hier deutlich zu erkennen.

Abbildung 3: Im Forward-Modus speichert GocryptFS Dateien verschlüsselt im darunterliegenden Dateisystem, wie hier deutlich zu erkennen.

Am Ende der Arbeit mit dem verschlüsselten Volume sollten Sie nicht vergessen, es wieder zu deaktivieren. Den entsprechenden Befehl für unser Testszenario finden Sie in der letzten Zeile von Listing 1. Übrig bleibt der Ordner ~/VERSCHLUESSELT/ mit den verschlüsselten Daten.

Cloud-Dienste

Vielleicht gehören Sie zu den Anwendern, die Cloud-Dienste nutzen. Dropbox etwa lässt sich unter allen gängigen Distributionen mittels passendem Client komfortabel ins Dateisystem einbinden, und zwar so, dass Sie die Daten transparent sehen.

Falls Ihnen unwohl beim Gedanken ist, einem amerikanischen Anbieter Ihre Daten anzuvertrauen, bietet GocryptFS möglicherweise einen Ausweg: Das Programm schert sich grundsätzlich nicht darum, wo der Overlay-Ordner liegt, in dem Sie Dateien verschlüsselt speichern. Es kann sich um einen lokalen Ordner, den Einhängepunkt eines physischen Geräts wie etwa eines USB-Sticks oder um den virtuellen Einhängepunkt handeln, den der Dropbox-Client anlegt.

Entscheiden Sie sich für die letztere Variante und schreiben Daten via GocryptFS in einen Dropbox-Ordner, liegen dort anschließend lauter verschlüsselte Dateien. Die lassen sich dann nur noch auf Geräten öffnen, auf denen der GocryptFS-Client zusammen mit der passenden Konfigurationsdatei installiert ist. Im Gegenzug lagern sie aber sicher verschlüsselt in der Cloud und sind vor den Augen des Anbieters geschützt.

Reverse-Modus

GocryptFS verfügt neben dem beschriebenen Forward-Modus zusätzlich über einen Reverse-Modus. Wollen Sie eine Kopie Ihrer wichtigen Daten an einem sicheren Ort ablegen, so bietet aus technischer Sicht eine Cloud wie die von Dropbox dafür sicher beste Voraussetzungen, wäre da nicht das Thema Privacy.

Doch genau dieses Problem umgehen Sie mit GocryptFS: Lagern Sie mit dem Reverse-Modus Ihre Backups in der Cloud, sind die Daten sicher. Dazu erstellen Sie wie schon beschrieben zunächst wieder die Ordner ~/VERSCHLUESSELT/, ~/DATEN/ und .config/gocryptfs/ in Ihrem Home-Verzeichnis.

In ~/DATEN/ landen die Dateien, die Sie verschlüsselt als Backup speichern wollen. Alternativ lässt sich aber auch ein schon bestehender Ordner nutzen. Im nächsten Schritt erstellen Sie die passende Konfigurationsdatei (Listing 2, erste Zeile). Dann hängen Sie die Backup-Quelle über den verschlüsselten Einhängepunkt ein (zweite Zeile). In der Ausgabe von mount auf der Kommandozeile sehen Sie hinterher wieder, ob das Aktivieren funktioniert hat.

Listing 2

Reverse-Modus nutzen

$ gocryptfs -init -config ~/.config/gocryptfs/LUTESTREVERSE.conf -reverse ~/VERSCHLUESSELT/
$ gocryptfs -config ~/.config/gocryptfs/LUTESTREVERSE.conf -reverse ~/DATEN/ ~/VERSCHLUESSELT/
$ fusermount -u ~/VERSCHLUESSELT/

Im nächsten Schritt erledigen Sie das Backup. Dazu kopieren Sie die Dateien aus dem Ordner ~/VERSCHLUESSELT/ an eine andere Stelle, etwa in den Ordner Backup/ des Dropbox-Verzeichnisses. Der verschlüsselte Einhängepunkt existiert nur, solange der FUSE-Mount existiert; die Daten bleiben aber auch nach dessen Deaktivierung verschlüsselt. Am Ende der Arbeit deaktivieren Sie idealerweise den Mount (Listing 2, letzte Zeile).

Um später Daten aus dem Reverse-Backup von GocryptFS wiederherzustellen, benötigen Sie die beim Reverse-Mount angelegte GocryptFS-Konfigurationsdatei sowie den Ordner mit den verschlüsselten Inhalten. Den hängen Sie per FUSE wie zuvor beschrieben im Forward-Modus ein und greifen darauf ganz regulär zu.

Fall der Fälle

Grundsätzlich gilt: Auf die Konfigurationsdatei eines Volumes müssen Sie gut aufpassen. Geht diese verloren, kommen Sie an die Daten nicht mehr heran – es sei denn, Sie verfügen noch über den Master Key, den GocryptFS beim Anlegen eines Volumes anzeigt. Es schadet nicht, diesen Schlüssel auszudrucken und den Ausdruck im Safe zu hinterlegen.

Im Fall der Fälle geben Sie gocryptfs auf der Kommandozeile statt des Parameters -config den Parameter -masterkey=stdin mit und tippen den Schlüssel anschließend ein. Das funktioniert auch, falls Sie die Datei mit dem konfigurierten Passwort verloren haben.

Windows-Version

Wer etwa aus beruflichen Gründen regelmäßig mit Microsoft Windows zu tun hat, für den steht eine kompatible Alternative bereit. Sie basiert aber nicht auf Go, sondern auf der Programmiersprache C++, und heißt daher CppcryptFS [4]. Damit nutzen Sie Ordner, die Sie unter Linux verschlüsselt haben, transparent unter Windows und umgekehrt.

Nicht ganz so einfach sieht es für Apple-Anwender aus: Eine eigene GocryptFS-Implementation für MacOS existiert nicht. Es gibt zwar FUSE für MacOS (MacFUSE [5]), das Programm steht aber nicht unter einer freien Lizenz. Projekte wie Homebrew weigern sich deshalb, eigentlich unter Open-Source-Lizenzen stehende Projekte wie GocryptFS auszuliefern, obwohl sie unter MacOS theoretisch lauffähig wären.

Weil es seitens der MacFUSE-Leute keine Bestrebungen gibt, das Produkt unter eine freie Lizenz zu stellen, dürfte sich das in absehbarer Zeit nicht ändern. Wer MacOS im Workflow braucht, muss also selbst basteln oder sich nach Alternativen zu GocryptFS umsehen.

Fazit

Bei GocryptFS handelt es sich um eine gut funktionierende, sichere Lösung für das verschlüsselte Speichern von Daten. Es umgeht die Design-Fehler von EncFS und erzielt sogar eine bessere Performance als der Konkurrent EcryptFS, obwohl der direkt im Kernel beheimatet ist.

GocryptFS lässt sich leicht aufsetzen und bedienen. Als Overlay-Dateisystem kann man es zudem einfach mit anderen Produkten wie Dropbox kombinieren, ohne dass dazu an diesen Änderungen nötig wären. Suchen Sie also nach einer einsteigerfreundlichen Software zum Verschlüsseln unter Linux, sollten Sie sich GocryptFS unbedingt genauer ansehen. (agr/jlu)

Der Autor

Martin Loschwitz hat vor exakt 20 Jahren in der Ausgabe 06/2001 seinen ersten LinuxUser-Artikel veröffentlicht und freut sich auf die nächsten 20 Jahre. Heute arbeitet er als Cloud Platform Architect für Drei Austria und beackert dort Themen wie OpenStack, Kubernetes und Ceph.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 06/2021 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