#!/coding/blatt
Sammelsurium mit Schwerpunkten Linux & IT-Sicherheit

CryFS: Cloud-Daten einfach & sicher verschlüsseln

Die Open-Source-Software CryFS verschlüsselt Daten clientseitig, um sie anschließend sicher in der Cloud speichern zu können.

Im Gegensatz zu Cryptomator bietet CryFS keine grafische Bedienoberfläche (GUI) an, sondern wird direkt auf der Kommandozeile bzw. im Terminal bedient. Im alltäglichen Gebrauch werden im Grunde aber auch nur zwei Befehle benötigt.

In diesem Beitrag zeige ich euch, wie ihr mithilfe von CryFS eure Cloud-Daten verschlüsselt.

Verwendete Software für diesen Beitrag
  • Ubuntu v19.10
  • CryFS v0.9.10

Konzept & Funktionsweise von CryFS

Entwickler & Leitspruch

Hinter CryFS steht Sebastian Messmer, der die Software entwickelt sowie betreut. Ziel ist die einfache und sichere Speicherung von Daten in der Cloud:

Keep your data safe in the cloud

Allgemeine Funktionsweise

Die zu schützenden Cloud-Daten werden in einem speziellen von CryFS verwalteten Verzeichnis verschlüsselt gespeichert. Dieses Verzeichnis kann in einem Cloud-Speicherordner abgelegt sein, um so die verschlüsselten Daten mit dem Cloud-Speicher zu synchronisieren. Der eigentliche Zugriff auf die verschlüsselten Daten erfolgt dabei über ein virtuelles Laufwerk. Dieses virtuelle Laufwerk wird ins Dateisystem eingehängt, nachdem das korrekte Passwort eingegeben wurde.

Die Verschlüsselung selbst ist verzeichnis- bzw. dateibasiert, so dass jedes Verzeichnis und jede Datei einzeln verschlüsselt werden. Neben dem Dateiinhalt bleiben auch die Dateigrößen, Verzeichnisstrukturen und sonstige Metadaten geheim. Erreicht wird das durch das Aufteilen der Dateien in gleichgroße Teile (sogenannte Blocks/Chunks), die dann wiederum jeder für sich einzeln verschlüsselt werden (siehe vereinfachte Darstellung).

Funktionsweise von CryFS
Hinweis Details zur Funktionsweise

Wer nähere Informationen zur Funktionsweise von CryFS erfahren möchte:
How it works - We explain how CryFS works and why it is secure.

Sicherheit von CryFS

Zum Verschlüsseln verwendet CryFS standardmäßig AES (256Bit) mit GCM, was bei Bedarf aber auch anpassbar ist. Wie bereits erwähnt, sind sowohl die Dateiinhalte als auch dazugehörigen Metadaten verschlüsselt. Außerdem wird die Verzeichnisstuktur verschleiert. Zum Schutz des Passworts vor Angriffen kommt scrypt zum Ensatz.

Ein unabhängiges Sicherheitsaudit gab es bisher nicht. Allerdings hat der Entwickler selbst in seiner Masterarbeit zum Thema CryFS: Design and Implementation of a Provably Secure Encrypted Cloud Filesystem CryFS untersucht. Des Weiteren gibt es wissenschaftliches Paper, dass sich mit CryFS beschäftigt (siehe A Novel Cryptographic Framework for Cloud File Systems and CryFS, a Provably-Secure Construction).

Betont sei auch noch einmal, dass CryFS quelloffen ist. Jeder kann den Quellcode einsehen und überprüfen. Der Einbau von möglichen Hintertüren, sogenannten Backdoors als auch die Verheimlichung von Schwachstellen wird so erschwert.

Installation

Zum derzeitigen Zeitpunkt findet sich CryFS in den offiziellen Paketquellen von MacOS und Debian-basierten Linux-Distributionen. Für Windows gibt es nur eine experimentelle Version.

Um CryFS unter Ubuntu zu installieren, reicht folgender Befehl aus:

sudo apt install cryfs
Terminal / Konsole

Anschließend steht der Befehl cryfs zur Verfügung.

Verwendung von CryFS

CryFS-Verzeichnis erstellen & initialisieren

Als Beispiel für diesen Beitrag wollen wir unsere Daten in einem Verzeichnis namens DatenTresor innerhalb eines Mailbox.org- Cloud-Speichers verschlüsseln. Dieser ist via WebDAV im Dateisystem unter ~/MailboxDrive eingebunden. Um nun das genannte Vereichnis mit CryFS zu initialisieren, wird folgender Befehl ausgeführt

cryfs MailboxDrive/DatenTresor MailboxTresorMount
CryFS Version 0.9.10

Use default settings?
Your choice [y/n]: y

Generating secure encryption key. This might take some time..done
Password: 123456
Confirm password: 123456

Creating config file (this can take some time)...done

Mounting filesystem. To unmount, call:
$ fusermount -u "/home/sl/MailboxTresorMount/"
Terminal / Konsole

Das zweite Verzeichnis, welches wir als Argument übergeben haben, entspricht dem Verzeichnis, in dem das virtuelle Laufwerk eingebunden wird. Über ~/MailboxTresorMount erfolgt der eigentiche Zugriff auf eure Daten.

Bei der Initialisierung hättet ihr anstatt der Standard-Einstellungen auch die Möglichkeit z.B. ein anderes Verschlüsselungsverfahren auszuwählen.

Nach Eingabe eines von euch gewählten Passworts, wird das CryFS-Verzeichnis initialisiert und das virtuelle Laufwerk eingebunden.

Hinweis Passwortvergabe

Die Sicherheit eurer verschlüsselten Daten hängt auch von der Wahl eures Passworts ab. Aus diesem Grund solltet ihr ein sicheres bzw. starkes Passwort wählen (siehe Sicheres Passwort wählen: der Zufall entscheidet).

Empfehlenswert ist der Einsatz eines Passwort-Manager, wie z.B. pass mit dem ihr euch ein sicheres Passwort generieren lassen könnt.

CryFS-Verzeichnis entsperren & öffnen

Der Befehl zum Initialisieren des verschlüsselten Verzeichnis wird auch zum Entsperren verwendet:

cryfs MailboxDrive/DatenTresor MailboxTresorMount
CryFS Version 0.9.10

Password: 123456
Loading config file (this can take some time)...done

Mounting filesystem. To unmount, call:
$ fusermount -u "/home/sl/MailboxTresorMount/"
Terminal / Konsole

Nach Eingabe eures Passworts könnt ihr auf eure verschlüsselten Daten über das Verzeichnis ~/MailboxTresorMount zugreifen.

Anmerkung

Nach der CryFS-Verzeichnis-Initialisierung ist das Verzeichnis bereits entsperrt und als virtuelles Laufwerk eingebunden. Der Befehl zum Entperren muss also nicht noch einmal ausgeführt werden.

Dateien verschlüsseln

Zum Verschlüsseln eurer Daten, könnt ihr diese nun auf dem virtuellen Laufwerk speichern. Bezogen auf das Beispiel in diesem Beitrag, würdet ihr eure Daten also im Verzeichnis ~/MailboxTresorMount speichern.

CryFS: Dateien verschlüsseln

CryFS sorgt anschließend dafür, die Daten zu verschlüsseln und im CryFS-Verzeichnis innerhalb eures Cloud-Speicherordners abzulegen. Anschließend sorgt eure Cloud-Software für die Synchronisation der verschlüsselten Daten mit eurem Cloud-Speicher. In unserem Fall erfolgt die Synchronisation per WebDAV.

Der Inhalt des CryFS-Verzeichnis sieht wie folgt aus:

CryFS: Verschlüsseltes Daten-Verzeichnis

Über die Weboberfläche eures Cloud-Speicherdienstes könnt ihr euch vergewissern, dass die verschlüsselten Daten in eurer Cloud vorhanden sind.

CryFS-Verzeichnis sperren

Der Befehl zum Aushängen des virtuellen Laufwerks und Sperren des CryFS-Verzeichnis lautet wie folgt:

fusermount -u MailboxTresorMount/
Terminal / Konsole

Anschließend besteht keine Möglichkeit mehr über das virtuelle Laufwerk auf die verschlüsselten Daten zuzugreifen.

Alternative Software zur Cloud-Daten-Verschlüsselung

Abgesehen von proprietären Lösungen, wie dem bekannten Boxcryptor, gibt es neben CryFS weitere Open-Source-Software, wie z.B.:

Für die Verschlüsselung einzelner weniger Dateien kann ggf. auch die Verwendung von GnuPG ausreichend sein.

Fazit

Private Daten, die ihr in der Cloud speichern möchtet, solltet ihr zur Sicherheit immer vorher verschlüsseln. Mit CryFS gibt es hierfür eine frei verfügbare Software, die euch das sichere Verschlüsseln eurer Daten ohne große Vorkenntnisse ermöglicht.