Kopieren von ext4-verschlüsselten Dateien

Kopieren von ext4-verschlüsselten Dateien

Ich verwende die Ext4-Verschlüsselung. https://wiki.archlinux.org/index.php/Ext4#Using_file-based_encryption

Bevor ich ein Verzeichnis entschlüssele, kann ich darin viele verschlüsselte Dateinamen sehen.

Ich möchte die verschlüsselten Dateien kopieren, damit ich sie auf einem anderen Rechner entschlüsseln kann.

Ich könnte dies mit ecryptfs tun. Wie mache ich dies mit ext4-Verschlüsselung?

Antwort1

Sie können verschlüsselte und aufgefüllte Dateinamen sehen, aber Sie sollten nicht in der Lage sein, Dateiinhalte zu lesen. Der Versuch, die Dateien unverschlüsselt zu kopieren, führt daher zu Fehlern wie:

cp: cannot open 'vault/YgI8PdDi8wY33ksRNQJSvB' for reading: Required key not available

Das sollten Sie eigentlich nicht tun. Die praktische Lösung ist, es zu entschlüsseln und dann zu kopieren. Die Kopie wird erneut verschlüsselt, wenn Sie als Zielverzeichnis einen verschlüsselten Ort gewählt haben. Über das Netzwerk mit rsync/ssh wird die Übertragung ebenfalls verschlüsselt. Die meisten Dinge funktionieren also, es einfach in der Cloud zu speichern, kommt wahrscheinlich nicht in Frage. Dateisystemspezifische Verschlüsselung funktioniert außerhalb des Dateisystems nicht.

Das Umgehen der Lesebarriere reicht nicht aus: Anders als bei ecryptfs, wo alle Metadaten in Form normaler Dateien vorliegen, umfasst die ext4-Verschlüsselung Metadaten, die im Dateisystem selbst verborgen und für Sie nicht sichtbar sind. Sie können sie also nicht einfach kopieren.

Das Nächstliegende, das ich gefunden habe, ist e4crypt get_policy, e4crypt set_policymit dem Sie ein Verzeichnis mit einem vorhandenen Schlüssel verschlüsseln können, ohne den eigentlichen Schlüssel im Klartext zu kennen. Es funktioniert jedoch nur für leere Verzeichnisse, nicht für Dateien.

Sie können auch ein Tresorverzeichnis verschlüsseln, es mit Dateien füllen, diese Dateien dann fest mit dem Stammverzeichnis verknüpfen und anschließend das Tresorverzeichnis löschen. Am Ende haben Sie verschlüsselte Dateien (Inhalte) im Stammverzeichnis (die Sie eigentlich nicht verschlüsseln können sollten). Das Dateisystem weiß nur, dass die Datei verschlüsselt ist. (Es wird nicht empfohlen, dies tatsächlich zu tun.)


Wenn Sie trotzdem eine Kopie erstellen müssen, können Sie dies vermutlich auf Umwegen tun:

  1. Erstellen Sie eine Roh-DD-Kopie des gesamten Dateisystems
  2. Dateisystem-UUID ändern
  3. Löschen Sie die Dateien, die Sie nicht möchten

Andernfalls bräuchten Sie vermutlich ein spezielles Tool, das weiß, wie ein verschlüsseltes Verzeichnis + Metadaten von einem Ext4-Dateisystem auf ein anderes repliziert werden, aber ich habe keine Möglichkeit gesehen, dies mit e4cryptoder zu tun debugfs.


debugfsscheint insbesondere keine Funktionen im Zusammenhang mit Richtlinien/Verschlüsselung aufzuweisen, mit der Ausnahme, ls -rdass verschlüsselte Dateinamen in ihrer vollen Pracht angezeigt werden, \x1e\x5c\x8d\xe2\xb7\xb5\xa0N\xee\xfa\xde\xa66\x8axYwas bedeutet, dass die ASCII-Darstellung, wie sie regelmäßig lsangezeigt wird, in irgendeiner Weise kodiert ist, um druckbar zu sein.

Der eigentliche Dateiname ist [aufgefüllt und tatsächlich im Dateisystem gespeichert] 16 zufällige Bytes, aber normal lswird er stattdessen als 22 ASCII-Zeichen angezeigt. Das Kopieren einer solchen Datei auf herkömmliche Weise würde eine Datei erstellen, die als ihre ASCII-Zeichendarstellung gespeichert wird, obwohl Sie sie wirklich als zufällige Bytes speichern müssen. Das wird also auf so vielen Ebenen einfach scheitern.


tl;drwenn es eine Möglichkeit gibt, das zu tun, dann weiß ich nichts davon :-}

verwandte Informationen