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:
- Per Paketmanager wie apt, pacman, dnf usw. (https://nuetzlich.net/gocryptfs/quickstart)
- Download des vorkompilierten Programms (https://github.com/rfjakob/gocryptfs/releases)
- Tapfere Selbstkompilierung aus dem Programmquellcode (https://github.com/rfjakob/gocryptfs/releases)
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:
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.