Wie überlagere ich die Komprimierung zusätzlich zur Verschlüsselung über BtrFS pro Datei?

9

BtrFS sollte dies wirklich unterstützen, tut es aber nicht . ECryptFS scheint also die Lücke zu füllen. Die einzige Sache ist, wie würde ich die Komprimierung darüber legen?

Gründe für die Komprimierung zusätzlich zur Verschlüsselung:

  • absichtlich wird die Umkehrung (Verschlüsselung zusätzlich zur Komprimierung) nicht komprimiert, da die Verschlüsselung idealerweise versucht, den Chiffretext von zufälligen Daten nicht zu unterscheiden;
  • Die Verschlüsselung dichterer Informationen ist sicherer.

Ich suche nach einer Lösung auf Dateisystemebene, bei der Dateien ad hoc mit verschiedenen Schlüsseln (z. B. für Benutzer / Gruppen) verschlüsselt werden können (dh ohne größere Neukonfiguration auf Blockebene geändert werden können) Verschlüsselung).

James Haigh
quelle
2
Es hört sich so an, als ob Sie Verschlüsselung zusätzlich zur Komprimierung wünschen, nicht Komprimierung zusätzlich zur Verschlüsselung! Zum ersten Punkt in der Liste möchten Sie beispielsweise den Klartext und nicht den Chiffretext komprimieren.
Celada
@ Celada: Nun, es kommt darauf an, wie du es betrachtest. Ich betrachte es von oben nach unten mit dem Laufwerk unten.
James Haigh
2
Wenn Sie verschlüsselte Dateien komprimiert werden sollen, und Sie wollen nicht manuell erstellen .gzoder .xzDateien und dann verschlüsseln sie, könnte eine gute Lösung ein verschlüsseltes dm-crypt / LUKS Behälter, mit einer Kompressionsdateisystem wie Btrfs formatiert sein. LUKS sollte in der Lage sein, mehrere Schlüssel zu verwenden und "kann ohne größere Neukonfiguration geändert werden", um die Sie sich Sorgen machen, aber dann hat der LUKS-Container eine große feste Größe, hmmm. Ich habe einen enttäuschenden Mangel an komprimierenden Dateisystemen festgestellt ... ntfs & btrfs. Oder es gibt Squashfs, aber es ist schreibgeschützt.
Xen2050
1
Im Ernst, ich denke, einige Leute müssen Fragen etwas genauer lesen. Es ist bekannt, dass die Komprimierung vor der Verschlüsselung erfolgen muss. Dm-crypt / LUKS ist auf Blockebene, was ich speziell nicht möchte, und wird von GParted nicht einmal unterstützt. Es ist definitiv nicht ad-hoc; Sie müssten die Größe von Partitionen buchstäblich jedes Mal ändern und verschieben, wenn Sie die Sicherheitsgrenzen (Benutzer / Gruppen / usw.) ändern möchten, und Sie würden an Kontingenten festhalten. Ohne Unterstützung durch GParted oder ein anderes benutzerfreundliches Tool bedeutet dies , jedes Mal einen komplizierten Prozess zu befolgen.
James Haigh
1
Die Verschlüsselung von Dender-Informationen ist nicht sicherer und hat keinen Einfluss darauf. Beachten Sie auch, dass Ecryptfs Dateien unabhängig verschlüsselt und dabei die Dateigröße und die Verzeichnisstruktur verliert.
ArekBulski

Antworten:

0

Es scheint, dass der einzige verbleibende Ansatz darin besteht, ein komprimierendes Dateisystem über das verschlüsselte Dateisystem zu stapeln. Hier sind einige Optionen, aber ich habe keine praktischen Erfahrungen damit:

Ich bezweifle, dass Sie Komprimierung oder Verschlüsselung pro Datei auswählen können. Btrfs soll das bieten, aber die Realität ist wahrscheinlich weit davon entfernt. Genau wie es vor 5 Jahren RAID haben sollte.

ArekBulski
quelle
0

Sie müssen (hauptsächlich im Feld für private Superblock-Informationen) Eingaben in das Komprimierungsdateisystem in eine Datenbankdatei einbetten, die ausgeführt wird, wenn das Komprimierungsdateisystem über encryptfs bereitgestellt wird (mit der Option -o für die Übergabe der Argumente für die Bereitstellungszeit). Es wird ein stapelbares Dateisystem sein, das auf eingehende Lese- / Schreibanforderungen für Dateien gemäß einigen vordefinierten Mechanismen in Dateisystemmethoden reagiert.

Angenommen, bestimmte Dateien sollen mit einem bestimmten Algorithmus komprimiert werden. Dies muss durch die Lese- / Schreibmethoden herausgefunden werden, die Sie in compressfs / main.c und file.c usw. schreiben. Schreiben Sie Code auf Benutzerebene, der ioctl implementiert, um die Funktion dieser Komprimierung zu aktualisieren Dateisystem wie das Hinzufügen / Entfernen / Auflisten von Algorithmen, die durch Schreiben in die Datenbank unterstützt werden, die Sie beim Mounten portiert haben.

Vishal Sahu
quelle