Einfachste Möglichkeit, ein Verzeichnis und seinen Inhalt mit einem Kennwort zu schützen, ohne neue Dateien erstellen zu müssen?

22

Ich möchte ein Verzeichnis und alle darin enthaltenen Dateien mit einem Kennwort schützen oder verschlüsseln (für den gesamten Verzeichnisbaum darunter). Ich möchte nicht das gesamte Basisverzeichnis stören, sondern ein bestimmtes Verzeichnis mit einigen Dateien und Ordnern. Ich möchte das Verzeichnis mit einem Passwort verschlüsseln oder entschlüsseln können. Die Befehlszeile wäre am besten zu verwenden. Ich möchte keine neue Datei als verschlüsselte Version erstellen und dann die vorherigen löschen, bei denen es sich um die nicht verschlüsselte Version handelt.

Vass
quelle
Interessant, "ohne neue Dateien erstellen zu müssen" ...
phunehehe
Du meinst mount als verschlüsseltes Dateisystem?
Faheem Mitha
@FaheemMitha, ich möchte auch die Dateisystemroute vermeiden, das klingt kompliziert.
Vass
1
@Vass Die Dateisystemroute ist bei weitem die einfachste Methode. Sie werden Ihr Leben leichter machen, wenn Sie Lösungen nicht willkürlich ablehnen.
Gilles 'SO- hör auf böse zu sein'
HINWEIS: encfs gilt als nicht sicher: askubuntu.com/questions/813290/encfs-insecure-what-to-use-now
Keiran Raine

Antworten:

23

Verwenden Sie encfs (in den meisten Distributionen als Paket verfügbar). So richten Sie ein:

mkdir ~/.encrypted ~/encrypted
encfs ~/.encrypted ~/encrypted
# enter a passphrase
mv existing-directory ~/encrypted

Der erste Aufruf zum encfsEinrichten eines verschlüsselten Dateisystems. Danach wird jede Datei, unter der Sie schreiben, ~/encryptednicht direkt auf der Festplatte gespeichert, sondern verschlüsselt und die verschlüsselten Daten werden unter gespeichert ~/.encrypted. Der encfsBefehl lässt einen Daemon laufen und dieser Daemon übernimmt die Verschlüsselung (und Entschlüsselung, wenn Sie eine Datei von unten lesen ~/encrypted).

Mit anderen Worten, für Dateien unter ~/encryptedwerden Aktionen wie Lesen und Schreiben nicht direkt in Lesen oder Schreiben von der Festplatte übersetzt. Sie werden von dem encfsProzess ausgeführt, der die Daten verschlüsselt und entschlüsselt und das ~/.encryptedVerzeichnis zum Speichern des Chiffretexts verwendet.

Wenn Sie vorerst mit Ihren Dateien fertig sind, hängen Sie das Dateisystem aus, damit auf die Daten erst dann zugegriffen werden kann, wenn Sie Ihre Passphrase erneut eingeben:

fusermount -u ~/encrypted

Nach diesem Punkt ~/encryptedwird wieder ein leeres Verzeichnis.

Wenn Sie diese Dateien später erneut bearbeiten möchten, hängen Sie das verschlüsselte Dateisystem ein:

encfs ~/.encrypted ~/encrypted
# enter your passphrase

Dies wiederum macht die verschlüsselten Dateien im ~/.encryptedVerzeichnis zugänglich ~/encrypted.

Sie können den Einhängepunkt beliebig ändern ~/encrypted: encfs ~/.encrypted /somewhere/else(das verschlüsselte Verzeichnis jedoch immer nur einmal einhängen). Sie können den Chiffretext kopieren oder verschieben (jedoch nicht, während er geladen ist), und zwar an einen anderen Ort oder sogar auf einen anderen Computer. Alles, was Sie tun müssen, um an den Dateien zu arbeiten, ist, den Speicherort des Chiffretexts als erstes Argument encfsund den Speicherort eines leeren Verzeichnisses als zweites Argument zu übergeben.

Gilles 'SO - hör auf böse zu sein'
quelle
Die Antwort ist sehr nützlich und praktisch. Ich würde mich sehr freuen, wenn Sie noch etwas Text hinzufügen könnten, um zu erklären, was die einzelnen Operationen tun, wenn Sie das nicht stören. Und können Sie erklären, was in diesem Zusammenhang unter einem Dateisystem zu verstehen ist und welche Bedeutung das Mounten hat?
Vass
1
@Vass Ich habe meine Antwort mit weiteren Erklärungen aktualisiert. Hintergrundinformationen zu Dateisystemen und zum Mounten finden Sie unter Welche Mountpunkte gibt es auf einem typischen Linux-System? und Was bedeutet das Mounten eines Geräts unter Linux?
Gilles 'SO- hör auf böse zu sein'
Das ist eine erstaunliche Erklärung. Ich habe das Gefühl, viel gelernt zu haben. Und die zusätzlichen Links helfen. Das von encfs erstellte Dateisystem besteht also aus 'durcheinandergebrachten Blöcken der Originaldatei', und Sie können durch encfs navigieren und sie lesen. da das ursprüngliche Dateisystem nicht kompatibel ist, um diese Datenblöcke zu verwenden. und das verschlüsselte Verzeichnis ist versteckt, um nicht versehentlich darauf zuzugreifen. und wenn du es tust, würdest du nichts sehen?
Vass
1
@Vass „Das von encfs erstellte Dateisystem ist aus Blöcken der Originaldatei zusammengewürfelt. Über encfs können Sie darin navigieren und lesen.“ Ja, genau. Das Verzeichnis ~/.encryptedenthält den Chiffretext. Sie können darauf zugreifen, ohne es zu durchlaufen encfs, aber dort werden nur verschlüsselte Daten angezeigt.
Gilles 'SO- hör auf böse zu sein'
2

Ich möchte keine neue Datei als verschlüsselte Version erstellen und dann die vorherigen löschen, bei denen es sich um die nicht verschlüsselte Version handelt

Aber das ist genau das Szenario, das Sie beschrieben haben ... "in der Lage sein, das Verzeichnis zu verschlüsseln oder zu entschlüsseln"

Ich vermute, dass die Lösung, nach der Sie suchen, eine verschlüsselte SICHERUNG oder ähnliches ist . Das Dateisystem wird in einer verschlüsselten Datei gespeichert und beim Mounten (mit einer Passphrase) besteht ein transparenter Zugriff über die VFS-Ebene.

symcbean
quelle
Beim Erstellen einer neuen Datei und Löschen der vorherigen Datei handelt es sich um eine ZIP-Route mit Kennwortschutz. Ich verstehe das Dateisystem und die Einbindungsroute nicht, auf die Sie verweisen. Gibt es nicht ein Programm, das die Datei auf irgendeine Weise durcheinander bringt und sie dann wieder in Ordnung bringen kann?
Vass
ja, hier eine ganze Liste von FUSE-verschlüsselten Dateisystemen. Der Zip-Pfad ist der einfachste
bsd
@Vass Ich verstehe nicht, was Sie mit "dem Zip-Pfad" meinen: Es ist kein Zip beteiligt. Der Klartext wird niemals auf der Festplatte gespeichert (das wäre viel komplizierter und würde den größten Teil des Zwecks der Verschlüsselung zunichte machen).
Gilles 'SO- hör auf böse zu sein'
2
Die Zip-Route / der Zip-Pfad dient zum rekursiven Komprimieren eines Verzeichnisses mit den Verschlüsselungs- / Kennwortoptionen. Wenn Sie jedoch auf eine Datei zugreifen möchten, müssen Sie die unverschlüsselte Datei aus der ZIP-Datei extrahieren, die Datei lesen und anschließend löschen oder die Datei bearbeiten und anschließend die ZIP-Datei mit einer neuen Datei aktualisieren und anschließend die Zwischendatei löschen. Er strebt die Transparenz eines verschlüsselten Dateisystems an, jedoch auf Verzeichnisebene. Ich und andere schlagen FUSE mit einem verschlüsselten fs vor. "Einfach" ist jedoch eine Frage der Perspektive und Erfahrung.
bsd
@bdowning, ja, du hast es richtig artikuliert. Ich verstehe Dateisysteme und deren Betrieb nicht. Ich würde blind mit den Befehlen arbeiten, ohne die Konzepte zu verstehen.
Vass