Skip to main content

Gocryptfs ist ein in Go-geschriebenes Open-Source (MIT) Konsolen-Programm, mit dem man ohne großen Aufwand Dateien/Verzeichnisse inklusive Dateinamen sexy verschlüsseln kann. Klar könnte man auch die ganze Festplatte oder Partition verschlüsseln, wäre dann aber aus Performance-Sicht im Nachteil, da die Verschlüsselung die Platten- Schreib- und Lese-Performance wegfrisst wie das Krümelmonster Kekse und meist mehr verschlüsselt wird, als eigentlich wirklich nötig wäre. Auch ist man nicht so flexibel beim Absichern/Verschieben/Syncen der Daten auf anderer Hardware (USB-Sticks etc.) und/oder Cloud-Speicher.

Ein für mich weiterer, sehr wichtiger Vorteil beim Verschlüsseln einzelner Ordner ist es, für jeden Webspace-Benutzer verschiedene Schlüssel/Passwörter je Webspace-Ordner vergeben zu können. Sollte nämlich dem Benutzer das Passwort zum Entschlüsseln des Webspace-Ordners abhandenkommen, sind dadurch auch nicht gleich alle anderen Benutzer im Arsch.

Gocryptfs ist Battle-tested, hat einen Security-Audit hinter sich, läuft auf Linux, macOS, Windows, Android und wird von mir seit nunmehr 2 Jahren erfolgreich als performantere und sicherere EncFS-Alternative genutzt.

Einige Einsatzszenarien:

  • Verschlüsselung der Daten im Heimverzeichnis
  • Verschlüsselung der Daten im Cloudspeicher wie Dropbox/Gdrive/iCloud/OneDrive
  • Verschlüsselung der Daten auf gemeinsam genutzten Systemen (Shared-Systeme, PCs, Laptops usw.)
  • Um einfach nur bei Kollegen/Freunden auf die Hose zu machen, dass man voll secure unterwegs ist

Gocryptfs installieren

Es gibt 3 Möglichkeiten, Gocryptfs zu installieren:

In dieser Anleitung wird Gocryptfs per apt-Paketmanager auf ein Ubuntu 20.04 draufgeklatscht.

# Install FUSE (Filesystem in USErspace) & gocryptfs
apt install fuse gocryptfs

# Bis Ubuntu 18.04 muss man jeden User, der FUSE nutzen möchte, der fuse-Gruppe hinzufügen
usermod -a -G fuse $USER_NAME

Gocryptfs konfigurieren

Nun muss der zu verschlüsselnde Ordner (encrypted) und der unverschlüsselte Ordner (decrypted) angelegt werden. Dann wird der zu verschlüsselnde Ordner initialisiert.

# Ordnerstruktur anlegen
mkdir -p /home/brunhilde/{.encrypted,decrypted}

# Gocryptfs initialisieren
gocryptfs -config ~/.config/gocryptfs/gocryptfs_brunhilde.conf -init /home/brunhilde/.encrypted

Choose a password for protecting your files.
Password: 
Repeat: 

Your master key is:
    zz5e13231-99luftcb7-e4b5822t-b906c077-
    bbc0c5zf-b525f7db-mb779a16-a00764f4h

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. Use "-q" to suppress this message.

Der Master-Key ist wichtig und sollte auf jeden Fall in einem Passwortmanager gespeichert werden.

Gocryptfs-Ordner einhängen

Ist der zu verschlüsselnde Ordner initialisiert, kann der Gocryptfs-Ordner eingehängt/gemountet werden.

# Verschlüsselten gocryptfs-Ordner mounten
gocryptfs -config ~/.config/gocryptfs/gocryptfs_brunhilde.conf /home/brunhilde/.encrypted /home/brunhilde/decrypted

Ansicht Gocryptfs-Verschlüsselung

Hier eine Ansicht des entschlüsselten Ordners (decrypted), des verschlüsselten Ordners (encrypted) und die FUSE-Mountpoint-Ansicht:
Bild - Gocryptfs - Open-Source Datei-Ordnerverschlüsselung

Gocryptfs-Ordner aushängen

Hat man die zu sichernden Daten in den unverschlüsselten Ordner (decrypted) abgelegt/kopiert, kann man diesen Ordner wieder aushängen/unmounten, womit die Daten nicht mehr lesbar sind.

# Unverschlüsselten gocryptfs-Ordner unmounten
fusermount -u /home/brunhilde/decrypted

Grafische Benutzeroberfläche für Gocryptfs

Wer sich auf der Konsole nicht so wohlfühlt oder einfach nur gerne mit grafischen Oberflächen dealt, der findet in dem Open-Source Programm SiriKali eine stabile Benutzeroberfläche für Gocryptfs.