GoCryptFS: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Linux:Sicherheit:gocryptfs nach Linux:Sicherheit:gocryptfsX, ohne dabei eine Weiterleitung anzulegen
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(206 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= GoCryptFS =
'''GoCryptFS''' - ein [[FUSE]]-Dateisystem zur Kryptografie auf Dateiebene
[https://nuetzlich.net/gocrypfs GocryptFS] ist als [https://wiki.ubuntuusers.de/FUSE/ FUSE] Dateisystem in der Sprache [https://wiki.ubuntuusers.de/Go/ Go] implementiert und erzeugt zu jeder Klartext-Datei jeweils eine verschlüsselte Datei. Das Projekt wurde von [https://wiki.ubuntuusers.de/EncFS/ EncFS] inspiriert und hat den Anspruch, Schwachstellen von EncFS zu beheben. GocryptFS wurde für Linux entwickelt, unter Mac OS X läuft es in Beta-Qualtität (funktioniert also weitestgehend), für Windows gibt es das in C++ reimplementierte cppcryptfs. Unterstützung für Android ist derzeit noch nicht vorhanden.


Die Verschlüsselung des Dateiinhalts erfolgt im Forward Mode mit AES-GCM und im Reverse Mode mit AES-SIV-512. Der hierfür benötigte Schlüssel wird mit dem Scrypt Algorithmus aus dem Masterkey abgeleitet. Die Dateinamen werden im Encrypt-Mix-Encrypt – Verfahren verschlüsselt.
== Beschreibung ==
* Alternative zu EncFS, eCryptfs
*  Linux, OS X, Windows


Jede Verschlüsselung bietet mögliche Angriffswege. Daher wird die Sicherheit der Verschlüsselung grundsätzlich erhöht, wenn man Daten mit verschiedenen Programmen geschichtet [https://wiki.ubuntuusers.de/Daten_verschlüsseln/ verschlüsselt]. Aus den von GoCryptfs verschlüsselten Dateien kann ein Angreifer erkennen, wie viele Dateien man hat, und welche Größe diese haben. Daraus könnten Rückschlüsse auf den Inhalt der Dateien möglich sein. Dem kann man entgegenwirken, in dem man die Dateien vor der Verschlüsselung [https://wiki.ubuntuusers.de/split/ zerlegt] oder in Container zusammenfasst.
=== Hintergründe ===
Die Kryptografie des Dateiinhalts erfolgt im Forward Mode mit AES-GCM und im Reverse Mode mit AES-SIV-512.
* Der hierfür benötigte Schlüssel wird mit dem Scrypt Algorithmus aus dem Masterkey abgeleitet.
* Die Dateinamen werden im Encrypt-Mix-Encrypt – Verfahren verschlüsselt.
* Jede Kryptografie bietet mögliche Angriffswege.
* Daher wird die Sicherheit der Kryptografie grundsätzlich erhöht, wenn man Daten mit verschiedenen Programmen geschichtet [https://wiki.ubuntuusers.de/Daten_verschlüsseln/ verschlüsselt].  
* Aus den von GoCryptfs verschlüsselten Dateien kann ein Angreifer erkennen, wie viele Dateien man hat, und welche Größe diese haben.
* Daraus könnten Rückschlüsse auf den Inhalt der Dateien möglich sein.
* Dem kann man entgegenwirken, indem man die Dateien vor der Kryptografie [https://wiki.ubuntuusers.de/split/ zerlegt] oder in Container zusammenfasst.


== Installation ==
''' Forward und Reverse Mode '''
 
* Im '''Forward Mode''' werden die Daten verschlüsselt gespeichert, der entschlüsselte Lese- und Schreibzugriff erfolgt über das FUSE-Dateisystem.
<nowiki>#</nowiki> apt-get install gocryptfs
** Dieser Betriebsmodus könnte beispielsweise eingesetzt werden, um die Daten in der Cloud zu speichern und auf diese von verschiedenen Geräten zuzugreifen.
 
* Der '''Reverse Modus''' dient dazu Dateien, die unverschlüsselt (lokal) gespeichert sind, zur Datensicherung zu verschlüsseln.
== Verwendung ==
** Die verschlüsselten Dateien bestehen nur, solange das FUSE-Dateisystem eingehängt ist.
 
** Aus dem FUSE-Dateisystem können die verschlüsselten Dateien manuell oder mit einem Datensicherungsprogramm (z.&nbsp;B.&nbsp;[https://wiki.ubuntuusers.de/rsync/ rsync]) in einen dauerhaften Speicher kopiert werden.
GoCryptFS hat zwei Betriebsmodi, den Forward Mode und den Reverse Mode.
 
Im Forward Mode werden die Daten verschlüsselt gespeichert, der entschlüsselte Lese- und Schreibzugriff erfolgt über das FUSE-Dateisystem. Dieser Betriebsmodus könnte beispielsweise eingesetzt werden, um die Daten in der Cloud zu speichern und auf diese von verschiedenen Geräten zuzugreifen.
 
Der Reverse Modus dient dazu Dateien, die unverschlüsselt (lokal) gespeichert sind, zur Datensicherung zu verschlüsseln. Die verschlüsselten Dateien bestehen nur, solange das FUSE-Dateisystem eingehängt ist. Aus dem FUSE-Dateisystem können die verschlüsselten Dateien manuell oder mit einem Datensicherungsprogramm (bspw.&nbsp;[https://wiki.ubuntuusers.de/rsync/ rsync]) in einen dauerhaften Speicher kopiert werden.
 
Zum entschlüsseln der Dateien ist die GoCryptFS-Konfigurationsdatei und das Passwort erforderlich. Ist ein Angreifer im Besitz der GoCryptFS-Konfigurationsdatei, könnte er, z.B. durch ausprobieren, das Passwort herausfinden und die Dateien entschlüsseln.
 
Ohne Angabe der Option -config speichert GoCryptFS die Konfigurationsdatei unter dem Namen gocryptfs.conf in das Verzeichnis mit den verschlüsselten Dateien. Werden die verschlüsselten Dateien in einer Cloud oder auf Datenträgern gespeichert, die einem Angreifer in die Hände fallen können, ist es ratsam, die Konfigurationsdatei getrennt von den verschlüsselten Dateien zu speichern.


=== Forward Mode ===
=== Forward Mode ===
 
Die Dateien werden im Verzeichnis '''CIPHERDIR''' verschlüsselt gespeichert.
Die Dateien werden im Verzeichnis&nbsp;'''CODIERT'''&nbsp;verschlüsselt gespeichert. Der Inhalt von&nbsp;'''CODIERT'''&nbsp;wird im Verzeichnis&nbsp;'''KLARTEXT'''&nbsp;über das FUSE Dateisystem entschlüsselt zum lesen und schreiben angezeigt, wenn&nbsp;'''KLARTEXT'''&nbsp;eingehängt ist.
* Der Inhalt von '''CIPHERDIR''' wird im Verzeichnis '''MOUNTPOINT''' über das FUSE Dateisystem entschlüsselt zum lesen und schreiben angezeigt, wenn '''MOUNTPOINT''' eingehängt ist.
 
1. Verzeichnisse anlegen
 
mkdir ~/CODIERT ~/KLARTEXT ~/.config/gocryptfs
 
Soll das Verzeichnis CODIERT versteckt sein, ist dem Verzeichnisnamen ein Punkt „.“ voranzustellen.
 
2. GocryptFS initialisieren
 
Mit der Initialisierung wird neben der Konfigurationsdatei eine Datei&nbsp;'''gocryptfs.diriv'''&nbsp;erstellt, welche die verschlüsselte Verzeichnisstruktur enthält.
 
gocryptfs -init -config ~/.config/gocryptfs/KONFDATEI.conf ~/CODIERT
 
3. Verzeichnis&nbsp;'''KLARTEXT'''&nbsp;eingehängen:
 
gocryptfs -config ~/.config/gocryptfs/KONFDATEI.conf ~/CODIERT ~/KLARTEXT
 
4. Nach Gebrauch&nbsp;'''KLARTEXT'''&nbsp;aushängen:
 
fusermount -u ~/KLARTEXT


=== Reverse Mode ===
=== Reverse Mode ===
Im Reverse Mode wird der Inhalt von CIPHERDIR über das FUSE-Dateisystem „read-only“ angezeigt, wenn dieses eingehängt ist.


Im Reverse Mode wird der Inhalt von CODIERT über das FUSE-Dateisystem „read-only“ angezeigt, wenn dieses eingehängt ist.
== Installation ==
 
<syntaxhighlight lang="bash" highlight="1" line>
1. Verzeichnis zum Speichern von GoCryptFS-Konfigurationsdateien erstellen
sudo apt install gocryptfs
 
</syntaxhighlight>
mkdir ~/.config/gocryptfs/
 
2. Verzeichnisse&nbsp;'''CODIERT'''&nbsp;und&nbsp;'''KLARTEXT'''&nbsp;anlegen
 
mkdir ~/CODIERT ~/KLARTEXT
 
3. GocryptFS initialisieren
 
Ohne die Option&nbsp;<tt>-config</tt>&nbsp;wird die Konfigurationsdatei als&nbsp;'''~/CODIERT/gocryptfs.conf'''&nbsp;gespeichert.
 
gocryptfs -init -config ~/.config/gocryptfs/KONFDATEI.conf -reverse ~/CODIERT
 
4. Verzeichnis&nbsp;'''CODIERT'''&nbsp;einhängen
 
Im Reverse Mode können Dateien mit den Optionen&nbsp;<tt>-exclude</tt>,&nbsp;<tt>-exclude-wildcard</tt>&nbsp;und&nbsp;<tt>-exclude-from</tt>&nbsp;von der verschlüsselten Ansicht ausgeschlossen werden. Soll rsync für die Datensicherung verwendet werden, sollte, um Fehler und Warnmeldungen zu vermeiden, der Ausschluss beim Einhängen mit GoCryptFS erfolgen.
 
gocryptfs -config ~/.config/gocryptfs/KONFDATEI.conf -reverse ~/KLARTEXT ~/CODIERT
 
5. Datensicherung durchführen
 
cp -a ~/CODIERT ~/BACKUP
 
6.&nbsp;'''CODIERT'''&nbsp;aushängen
 
fusermount -u ~/CODIERT
 
== Problembehebung ==
 
=== Passwort vergessen oder Konfigurationsdatei verloren ===
 
Liegt der Masterkey aus der Initialisierung noch vor, können die verschlüsselten Daten mit dessen Eingabe im Terminal geöffnet werden, wobei eine eventuell vorhandene Konfigurationsdatei ignoriert wird.


gocryptfs -masterkey=stdin
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line>


Mit der Option&nbsp;<tt>-masterkey <Masterkey></tt>&nbsp;können die verschlüsselten Daten, z.B. über ein Skript, ohne Konfigurationsdatei geöffnet werden. Hierbei ist zu berücksichtigen, dass dann der Masterkey mit&nbsp;<tt>ps -auxwww</tt>&nbsp;aus dem Hauptspeicher ausgelesen werden kann. Dieses Risiko liegt bei der Option&nbsp;<tt>-masterkey=stdin</tt>&nbsp;nicht vor.
</syntaxhighlight>


=== Passwort ändern ===
=== Optionen ===
Common Options (use -hh to show all)
{| class="wikitable sortable options"
|-
! Option || Beschreibung
|-
|| -aessiv
|| AES-SIV-Kryptografie verwenden (mit -init)
|-
|| -allow_other
|| Anderen Benutzern den Zugriff auf die Halterung erlauben
|-
|| -i, -idle
|| Automatisches Aushängen nach festgelegter Leerlaufzeit
|-
|| -config
|| Benutzerdefinierter Pfad zur Konfigurationsdatei
|-
|| -ctlsock
|| Steuersteckdose am Standort erstellen
|-
|| -extpass
|| Externes Programm aufrufen, um nach dem Passwort zu fragen
|-
|| -fg
|| Bleib im Vordergrund
|-
|| -fsck
|| Dateisystemintegrität prüfen
|-
|| -fusedebug
|| FUSE-Aufrufe debuggen
|-
|| -h, -help
|| Dieser kurze Hilfetext
|-
|| -hh
|| Langer Hilfetext mit allen Optionen
|-
|| -init
|| Verschlüsseltes Verzeichnis initialisieren
|-
|| -info
|| Informationen zum verschlüsselten Verzeichnis anzeigen
|-
|| -masterkey
|| Mount mit explizitem Hauptschlüssel statt Passwort
|-
|| -nonempty
|| Mounten über nicht leeres Verzeichnis zulassen
|-
|| -nosyslog
|| Leiten Sie Protokollnachrichten nicht an syslog um
|-
|| -passfile
|| Passwort aus Datei lesen
|-
|| -passwd
|| Kennwort ändern
|-
|| -plaintextnames
|| Dateinamen nicht verschlüsseln (mit -init)
|-
|| -q, -quiet
|| Informationsnachrichten stummschalten
|-
|| -reverse
|| Rückwärtsmodus aktivieren
|-
|| -ro
|| Schreibgeschützt einbinden
|-
|| -speed
|| Führen Sie einen Krypto-Geschwindigkeitstest durch
|-
|| -version
|| Print version information
|-
|| --
|| Optionsparsing stoppen
|}


Mit dem Befehl
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
=== Dateien ===


gocryptfs -config ~/.config/gocryptfs/KONFDATEI.conf -passwd ~/CODIERT 
== Anwendung ==
* [[GoCryptFS/Anwendung]]
* [[GoCryptFS/Problembehebung]]


kann man das Kennwort der verschlüsselten Ordners ändern. Gemeinsam mit der Option&nbsp;<tt>-masterkey</tt>&nbsp;kann ein neues Passwort vergeben werden, wenn man das Passwort vergessen hat, aber der Masterkey vorliegt. Weitere Informationen enthält die&nbsp;[https://wiki.ubuntuusers.de/Manpage/ Manpage]&nbsp;zu GoCryptFS.
<noinclude>


== Links ==
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
* [[ECryptfs]]


=== intern ===
==== Dokumentation ====


* [https://wiki.ubuntuusers.de/EncFS/ EncFS]&nbsp;– Vorgänger von GocryptFS
===== Man-Page =====
* [https://wiki.ubuntuusers.de/Daten_verschlüsseln/ Daten verschlüsseln]
===== Info-Pages =====
* [https://wiki.ubuntuusers.de/FUSE/ FUSE]
==== Links ====
* [https://wiki.ubuntuusers.de/Go/ Go]
===== Projekt =====
# Projektseite: https://nuetzlich.net/gocryptfs/
# Quellcode und Dokumentation: [https://github.com/rfjakob/gocryptfs https://github.com/rfjakob/gocryptfs]


===== Weblinks =====
# AES-GCM: [https://eprint.iacr.org/2004/193.pdf https://eprint.iacr.org/2004/193.pdf]
# AES-SIV-512: [https://tools.ietf.org/html/rfc5297 https://tools.ietf.org/html/rfc5297]
# Scrypt Schlüsselableitung: [https://tools.ietf.org/html/rfc7914 https://tools.ietf.org/html/rfc7914]
# Encrypt-Mix-Encrypt : [https://github.com/rfjakob/eme https://github.com/rfjakob/eme]
# Sicherheitsgutachten: [https://defuse.ca/audits/gocryptfs.htm https://defuse.ca/audits/gocryptfs.htm]
# Version für Windows: [https://github.com/bailey27/cppcryptfs https://github.com/bailey27/cppcryptfs]




=== extern ===
[[Kategorie:Dateisystem/Kryptografie]]
[[Kategorie:FUSE]]


* Projektseite:&nbsp;[https://nuetzlich.net/gocrypfs https://nuetzlich.net/gocrypfs]
</noinclude>
* Quellcode und Dokumentation:&nbsp;[https://github.com/rfjakob/gocryptfs https://github.com/rfjakob/gocryptfs]
* AES-GCM:&nbsp;[https://eprint.iacr.org/2004/193.pdf https://eprint.iacr.org/2004/193.pdf]
* AES-SIV-512:&nbsp;[https://tools.ietf.org/html/rfc5297 https://tools.ietf.org/html/rfc5297]
* Scrypt Schlüsselableitung:&nbsp;[https://tools.ietf.org/html/rfc7914 https://tools.ietf.org/html/rfc7914]
* Encrypt-Mix-Encrypt :&nbsp;[https://github.com/rfjakob/eme https://github.com/rfjakob/eme]
* Sicherheitsgutachten:&nbsp;[https://defuse.ca/audits/gocryptfs.htm https://defuse.ca/audits/gocryptfs.htm]
* Version für Windows:&nbsp;[https://github.com/bailey27/cppcryptfs https://github.com/bailey27/cppcryptfs]

Aktuelle Version vom 12. November 2024, 18:40 Uhr

GoCryptFS - ein FUSE-Dateisystem zur Kryptografie auf Dateiebene

Beschreibung

  • Alternative zu EncFS, eCryptfs
  • Linux, OS X, Windows

Hintergründe

Die Kryptografie des Dateiinhalts erfolgt im Forward Mode mit AES-GCM und im Reverse Mode mit AES-SIV-512.

  • Der hierfür benötigte Schlüssel wird mit dem Scrypt Algorithmus aus dem Masterkey abgeleitet.
  • Die Dateinamen werden im Encrypt-Mix-Encrypt – Verfahren verschlüsselt.
  • Jede Kryptografie bietet mögliche Angriffswege.
  • Daher wird die Sicherheit der Kryptografie grundsätzlich erhöht, wenn man Daten mit verschiedenen Programmen geschichtet verschlüsselt.
  • Aus den von GoCryptfs verschlüsselten Dateien kann ein Angreifer erkennen, wie viele Dateien man hat, und welche Größe diese haben.
  • Daraus könnten Rückschlüsse auf den Inhalt der Dateien möglich sein.
  • Dem kann man entgegenwirken, indem man die Dateien vor der Kryptografie zerlegt oder in Container zusammenfasst.

Forward und Reverse Mode

  • Im Forward Mode werden die Daten verschlüsselt gespeichert, der entschlüsselte Lese- und Schreibzugriff erfolgt über das FUSE-Dateisystem.
    • Dieser Betriebsmodus könnte beispielsweise eingesetzt werden, um die Daten in der Cloud zu speichern und auf diese von verschiedenen Geräten zuzugreifen.
  • Der Reverse Modus dient dazu Dateien, die unverschlüsselt (lokal) gespeichert sind, zur Datensicherung zu verschlüsseln.
    • Die verschlüsselten Dateien bestehen nur, solange das FUSE-Dateisystem eingehängt ist.
    • Aus dem FUSE-Dateisystem können die verschlüsselten Dateien manuell oder mit einem Datensicherungsprogramm (z. B. rsync) in einen dauerhaften Speicher kopiert werden.

Forward Mode

Die Dateien werden im Verzeichnis CIPHERDIR verschlüsselt gespeichert.

  • Der Inhalt von CIPHERDIR wird im Verzeichnis MOUNTPOINT über das FUSE Dateisystem entschlüsselt zum lesen und schreiben angezeigt, wenn MOUNTPOINT eingehängt ist.

Reverse Mode

Im Reverse Mode wird der Inhalt von CIPHERDIR über das FUSE-Dateisystem „read-only“ angezeigt, wenn dieses eingehängt ist.

Installation

sudo apt install gocryptfs

Aufruf

Optionen

Common Options (use -hh to show all)

Option Beschreibung
-aessiv AES-SIV-Kryptografie verwenden (mit -init)
-allow_other Anderen Benutzern den Zugriff auf die Halterung erlauben
-i, -idle Automatisches Aushängen nach festgelegter Leerlaufzeit
-config Benutzerdefinierter Pfad zur Konfigurationsdatei
-ctlsock Steuersteckdose am Standort erstellen
-extpass Externes Programm aufrufen, um nach dem Passwort zu fragen
-fg Bleib im Vordergrund
-fsck Dateisystemintegrität prüfen
-fusedebug FUSE-Aufrufe debuggen
-h, -help Dieser kurze Hilfetext
-hh Langer Hilfetext mit allen Optionen
-init Verschlüsseltes Verzeichnis initialisieren
-info Informationen zum verschlüsselten Verzeichnis anzeigen
-masterkey Mount mit explizitem Hauptschlüssel statt Passwort
-nonempty Mounten über nicht leeres Verzeichnis zulassen
-nosyslog Leiten Sie Protokollnachrichten nicht an syslog um
-passfile Passwort aus Datei lesen
-passwd Kennwort ändern
-plaintextnames Dateinamen nicht verschlüsseln (mit -init)
-q, -quiet Informationsnachrichten stummschalten
-reverse Rückwärtsmodus aktivieren
-ro Schreibgeschützt einbinden
-speed Führen Sie einen Krypto-Geschwindigkeitstest durch
-version Print version information
-- Optionsparsing stoppen

Parameter

Umgebungsvariablen

Exit-Status

Dateien

Anwendung


Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Projekt
  1. Projektseite: https://nuetzlich.net/gocryptfs/
  2. Quellcode und Dokumentation: https://github.com/rfjakob/gocryptfs
Weblinks
  1. AES-GCM: https://eprint.iacr.org/2004/193.pdf
  2. AES-SIV-512: https://tools.ietf.org/html/rfc5297
  3. Scrypt Schlüsselableitung: https://tools.ietf.org/html/rfc7914
  4. Encrypt-Mix-Encrypt : https://github.com/rfjakob/eme
  5. Sicherheitsgutachten: https://defuse.ca/audits/gocryptfs.htm
  6. Version für Windows: https://github.com/bailey27/cppcryptfs