Dateien verschlüsseln mit gocryptfs

Datum

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

Autor
Kategorien Linux, General

PRTG Map