Dateisystem, das eine verschlüsselte Ansicht eines Verzeichnisses bietet - die Umkehrung von EncFS

8

Derzeit EncFS Ich bin mit meinem Verzeichnis „vertraulich“ zu „.encconfidential“ und verschlüsseln sync , dass verschlüsseltes Verzeichnis mit Hilfe eines Online - Dienstes (zB Dropbox, ubuntuone usw.). Meine gesamte Festplatte ist jedoch bereits LUKS-verschlüsselt, sodass die doppelte Verschlüsselung die Leistung beeinträchtigt.

Ich frage mich, ob es eine "invertierte" EncFS-Option gibt. Ein unverschlüsseltes Verzeichnis wird gemountet und im gemounteten Verzeichnis werden nur verschlüsselte Dateien angezeigt. So konnte ich mit den unverschlüsselten Dokumenten arbeiten, während das Synchronisierungstool nur die verschlüsselten Dateien sieht und liest / schreibt.

Erläuterung : Mein Hauptanwendungsfall ist die Synchronisierung und nicht die Sicherung. Ich möchte in der Lage sein, Maschinen ohne die doppelte Verschlüsselungsstrafe beim lokalen Betrieb sicher synchron zu halten (ich muss warten, wenn ich auf Speichern drücke, im Vergleich zur Übertragungszeit ist ein verschlüsselter Vorgang ein minimaler Zeitzuwachs - und es ist keine Hintergrundzeit Benutzerzeit)

stwissel
quelle

Antworten:

12

Es gibt tatsächlich eine Encfs-Option "invertiert". Auf der Manpage von Encfs:

   --reverse
       Normally EncFS provides a plaintext view of data on demand.  Normally it stores enciphered data and displays plaintext data.  With --reverse it
       takes as source plaintext data and produces enciphered data on-demand.  This can be useful for creating remote encrypted backups, where you do
       not wish to keep the local files unencrypted.

       For example, the following would create an encrypted view in /tmp/crypt-view.

           encfs --reverse /home/me /tmp/crypt-view

       You could then copy the /tmp/crypt-view directory in order to have a copy of the encrypted data.  You must also keep a copy of the file
       /home/me/.encfs5 which contains the filesystem information.  Together, the two can be used to reproduce the unencrypted data:

           ENCFS5_CONFIG=/home/me/.encfs5 encfs /tmp/crypt-view /tmp/plain-view

       Now /tmp/plain-view contains the same data as /home/me

       Note that --reverse mode only works with limited configuration options, so many settings may be disabled when used.

Ich habe es nicht zum Synchronisieren versucht, aber ich denke, es würde funktionieren, solange Sie denselben .encfs5Konfigurationsordner am anderen Ende verwenden.

Azendale
quelle
OK. Lektion gelernt: Mann vor Askubuntu. Vielen Dank für den Hinweis. Ich werde prüfen, ob es synchronisiert und zurückgemeldet wird.
Stwissel
Ich habe es mit 2 Verzeichnissen versucht, die mit UbuntuOne verbunden sind - funktioniert wie ein Zauber
stwissel
@stwissel Cool, ich muss bedenken, dass es mit Synchronisation funktioniert. Und ich zitierte die Manpage nicht, weil ich RTFM sagen wollte, sondern weil ich zu faul war, um noch einmal zu schreiben, was die Manpage sagte. :)
Azendale
Ich sagte mir das RTFM ;-) und darauf hinzuweisen, wo die Dokumentation zu finden ist, ist ein guter Stil.
stwissel
In der aktuellen Version ist es nicht .encfs5, sondern .encfs6.xml
stwissel
2

Nun erfahren Sie, wie Sie genau das tun, was Sie angeben:

Was Sie verlangen, ist eine schreibgeschützte Dateisystemansicht, die automatisch alle Dateien verschlüsselt, die darin gelesen werden:

~/
    confidential/
        secret_file.txt      # Stored unencrypted
    .enc_confidential/       # Read-only view of files in confidential/
        secret_file.txt      # Encrypted view of corresponding file

Die Standardmethode hierfür ist die Verwendung von FUSE (Dateisystem im User-Space).

Für Ihren Anwendungsfall gibt es bereits ein FUSE-Dateisystem, das tun kann, was Sie wollen fuseflt. fusefltGibt eine schreibgeschützte Ansicht eines Dateisystems mit beliebigen benutzerdefinierten Filtern, die auf jede gelesene Datei angewendet werden.

In Ihrem Fall ist der gewünschte Filter ein Verschlüsselungsprogramm wie gpg.

In der Dokumentation erfahren Sie, wie Sie Ihre Konfigurationsdatei schreiben. Grundsätzlich flt_cmd = gpg --encrypt [... your chosen encryption settings]als Filterbefehl verwenden.

Achtung; Wenn Sie Ihre Konfiguration durcheinander bringen, werden möglicherweise Klartextdaten für Ihren Internetdienst verfügbar gemacht. Ich würde meine andere Antwort für den allgemeinen Gebrauch empfehlen.


Da Sie auch Schreibunterstützung benötigen, damit die Synchronisierung funktioniert, müssen Sie anscheinend Ihr eigenes FUSE-Dateisystem schreiben. Es wird wahrscheinlich nicht schwierig sein, die fusefltQuellen zu ändern , um Schreibunterstützung hinzuzufügen. Füllen Sie einfach die nicht implementierten Schreibfunktionen aus. Dies würde genauso funktionieren wie die Leseunterstützung und einen Entschlüsselungsfilter anstelle des Verschlüsselungsfilters aufrufen.

Zum Schreiben Ihres FUSE-Dateisystems stehen mehrere Tutorials zur Verfügung. Weitere Dokumentation finden Sie auch im FUSE-Wiki .

Fügen Sie anschließend Ihren Befehl zum Einfügen des FUSE-Dateisystems zu Ihrem .profile hinzu, damit er beim Anmelden automatisch bereitgestellt wird.

Mechanische Schnecke
quelle
Schätzen Sie den Aufwand, den Sie in die Antwort gesteckt haben. fuseflt würde es fast schaffen ... wenn es keine 'Synchronisation' gäbe (leicht zu übersehen in der ersten Zeile meiner ursprünglichen Frage). Ich bitte um ar / w nicht ar / o verschlüsselte Ansicht. Also etwas Linie fusefltrw wäre die Lösung
stwissel
Ich denke, Sie müssen Ihren eigenen FS schreiben, aber es sollte nicht zu schwierig sein.
Mechanische Schnecke
Ihr Vertrauen in meine Fähigkeiten ist gut, aber meine Entwicklungsfähigkeiten beschränken sich auf Sprachen, die in der Dateisystementwicklung nicht verwendet werden (wie nennt man Fuse von COBOL :-)). Danke trotzdem für die Hilfe. Ich weiß es wirklich zu schätzen
stwissel
Nun, OpenCOBOL verwendet C-Aufrufkonventionen, daher sollte es möglich sein, ein FUSE-Dateisystem in COBOL write zu schreiben.
Mechanische Schnecke
1

Dies ist im Prinzip möglich (unter Verwendung eines FUSE-Dateisystems). Eine einfachere Option besteht jedoch darin, ein vorgefertigtes verschlüsseltes Sicherungsprogramm zu verwenden, das Ihren Onlinedienst als Sicherungsziel verwendet.

Es gibt 2 geeignete Sicherungsprogramme, die ich kenne. Beide geben Ihnen auch den vollständigen Verlauf Ihrer Dateien.

Duplizität / Deja-Dup

Duplicity ( Ubuntu-Paket ) ist ein Sicherungsprogramm, das komprimierte, verschlüsselte inkrementelle Sicherungen effizient an einen Remotestandort schreibt. Die inkrementellen Sicherungen sind platzsparend, da sie den rsync-Algorithmus verwenden, um binäre Unterschiede zu erzeugen.

Sie können auch das Deja-Dup-Frontend verwenden, das in den neuesten Ubuntu-Versionen standardmäßig enthalten ist.

Duplicity unterstützt das Schreiben an viele entfernte Standorte oder Backends . Insbesondere hat Duplicity ein Ubuntu One-Backend. Ich glaube nicht, dass es Dropbox direkt unterstützt, aber Sie können es anweisen, in dem lokalen Verzeichnis zu sichern, das Dropbox synchronisiert.

Wenn Sie große Datenmengen sichern, ist Duplicity nicht geeignet. Aufgrund der Einschränkungen beim Speichern inkrementeller Sicherungen muss regelmäßig eine vollständige Sicherung ausgeführt werden, bei der alle Ihre Daten hochgeladen werden.

Obnam

Weitere Informationen finden Sie in Obnam . Es speichert Daten verschlüsselt dedupliziert in einer Backup - Repository. Um es mit einem Remotespeicherdienst zu verwenden, weisen Sie Obnam an, in einem Repository an einem Speicherort zu sichern, den Dropbox / Ubuntu One synchronisieren wird. Da Obnam ein B-Tree-basiertes Repository-Format verwendet, das nur neue / geänderte Daten in das Repository schreiben muss, sollte die Synchronisierung schnell erfolgen.

Der Nachteil ist, dass 2 Kopien Ihrer Daten auf Ihrer Festplatte gespeichert werden müssen (die kanonische Kopie und die Kopie im Backup-Repository).

Ubuntu-Paketlink . Es gibt auch eine PPA .

Mechanische Schnecke
quelle
Wenn es sich nur um ein Backup handelt, ist dies möglicherweise ausreichend. Beide schlagen jedoch bei der Synchronisierung fehl - was der interessantere Anwendungsfall ist. Die Duplizität hat mich beim direkten Sichern auf UbuntuOne kläglich gescheitert, da sie in 25 Millionen Streams schreibt und bei langsamen Verbindungen eine Zeitüberschreitung aufweist (was in meinem Teil der Welt die Norm ist)
stwissel
Übrigens: schätzen die Bearbeitung, es ist jetzt viel klarer
stwissel
0

Ein weiteres vorgefertigtes Synchronisierungstool ist Seafile. Es handelt sich um eine Lösung mit einem Server und mehreren Clients wie Dropbox. In der neuesten Version besteht die Möglichkeit, verschlüsselte Ordner so freizugeben, dass der Server den Schlüssel nicht kennt.

Siehe Seafile-Sicherheitsfunktionen

Hinweis: Seafile nennt einen freigegebenen Ordner eine "Bibliothek", um die Dokumentation besser zu verstehen.

Leenooxer
quelle