gocryptfs
wurde inspiriert durch EncFS
, welches im Blogartikel Dateien verschlüsseln unter Linux näher beschrieben wurde und setzt auf die go-fuse
FUSE Bibliothek auf.
Somit kann man als „einfacher Benutzer“ Dateien verschlüsseln und ist nicht darauf angewiesen, dass sich entsprechende Tools auf dem System befinden. Es muss allerdings das Programm fuse
installiert sein.
Github: gocryptfs
Installation
gocryptfs
lässt sich über folgende Methoden auf das lokale System holen:
- Installation per lokalen Paketmanager (apt, dnf, etc.), sofern in den entsprechenden Repos vorhanden
- herunterladen der bereits kompilierten Binärdatei (https://github.com/rfjakob/gocryptfs/releases)
- kompilieren aus dem Quellcode (https://github.com/rfjakob/gocryptfs/releases)
Anmerkung: Es wird das Paket fuse
zur Ausführung benötigt.
Verwenden von gocryptfs
Wie üblich kann man sich die einzelnen Optionen per gocryptfs -h
anzeigen lassen.
$ gocryptfs -h
gocryptfs v1.8.0 without_openssl; go-fuse v1.0.1-0.20190319092520-161a16484456; 2020-05-09 go1.14.2 linux/amd64
Usage: gocryptfs -init|-passwd|-info [OPTIONS] CIPHERDIR
or gocryptfs [OPTIONS] CIPHERDIR MOUNTPOINT
Common Options (use -hh to show all):
-aessiv Use AES-SIV encryption (with -init)
-allow_other Allow other users to access the mount
...
Für die Verwendung werden zwei Verzeichnisse benötigt. Eines für verschlüsselten Daten und eines wo die entschlüsselten Daten hinein gemounted werden.
$ mkdir secret-enc secret
Hierbei werden die verschlüsselte Daten im Ordner secret-enc
abgelegt werden.
Um dies zu initialisieren verwendet man den Befehl gocryptfs -init <Ordnername>
, wobei auch gleich das entsprechende Passwort vergeben wird.
$ gocryptfs -init secret-enc
Choose a password for protecting your files.
Password:
Repeat:
Your master key is:
cf5e1231-899a72b7-e4b5855f-b906c075-
b590f5df-b525f76d-eb799a16-e6964f4a
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. This message is only printed once.
The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs secret-enc MOUNTPOINT
Um nun die Daten verschlüsselt abzulegen mounten wir das „verschlüsselte“ Verzeichnung in das unverschlüsselte per:
$ gocryptfs secret-enc secret
Password:
Decrypting master key
Filesystem mounted and ready.
Ein Blick in die Ausgabe von mount
zeigt das es funktioniert hat:
/home/rasputin/gocryptfs/secret-enc on /home/rasputin/gocryptfs/secret type fuse.gocryptfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,max_read=131072)
Nun kann man beliebige Daten in den secret
Ordner packen und wenn dieser wieder ausgehangen wird sind diese nur in verschlüsselter Form im secret-enc
Ordner vorhanden.
Aushängen des unverschlüsselten Ordners
Um den unverschlüsselten Ordner zu manuell schließen bzw. auszuhägen verwendet man den fusermount
Befehl:
fusermount -u secret
Nun sollte der secret
Ordner wieder leer sein und die Daten in verschlüsselter Form im secret-enc
Ordner zu finden sein:
$ ll secret
total 0
$ ll secret-enc/
total 2056
-r--------. 1 rasputin rasputin 386 Aug 8 07:09 gocryptfs.conf
-r--r-----. 1 rasputin rasputin 16 Aug 8 07:09 gocryptfs.diriv
-rw-r--r--. 1 rasputin rasputin 1456698 Aug 8 07:10 NfhM4FQPYD3bAiwrlvnWxw