Gibt es ein verschlüsseltes Nur-Schreib-Dateisystem für Linux?

14

Ich bin auf der Suche nach einem verschlüsselten Dateisystem für Linux, das nur im Schreibmodus gemountet werden kann. Damit meine ich, dass Sie es ohne Angabe eines Kennworts mounten und dennoch Dateien schreiben / anhängen können, aber auch nicht in der Lage sein, die Dateien zu lesen, die Sie geschrieben haben, oder die Dateien, die sich bereits auf dem Dateisystem befinden. Der Zugriff auf die Dateien sollte nur dann gewährt werden, wenn das Dateisystem über das Passwort gemountet ist. Der Zweck dieses Befehls besteht darin, Protokolldateien oder ähnliche Daten zu schreiben, die nur geschrieben, aber niemals geändert werden, ohne dass die Dateien selbst verfügbar gemacht werden. Dateiberechtigungen helfen hier nicht weiter, da ich möchte, dass auf die Daten nicht zugegriffen werden kann, auch wenn das System vollständig gefährdet ist.

Gibt es so etwas unter Linux? Oder wenn nicht, welche Alternative wäre die beste, um verschlüsselte Protokolldateien zu erstellen?

Meine derzeitige Problemumgehung besteht darin, die Daten einfach weiterzuleiten gpg --encrypt, was zwar funktioniert, aber sehr umständlich ist, da Sie nicht einfach auf das gesamte Dateisystem zugreifen können, müssen Sie jede Datei gpg --decryptmanuell weiterleiten.

Grumbel
quelle
3
Ich glaube, du kannst tun, was du willst syslog. Dadurch wird die Generierung der Protokollnachrichten vom System, in dem sie gespeichert sind, getrennt, sodass die Apps, die die Nachricht generieren, keinen Zugriff auf den Speicherort haben. Die Protokolle können sich sogar auf einem separaten Server befinden (und sind es häufig).
Mpez0
Ich möchte noch einen Schritt weiter gehen und die Daten überhaupt nicht zugänglich machen, nicht nur für den Prozess, der sie erstellt hat, sondern auch nicht für Roots. Dies ist das, was die Verschlüsselung mit öffentlichen Schlüsseln mit gpg bewirkt, aber ich suche nach einer Möglichkeit, dies auf Dateisystemebene zu tun.
Grumbel

Antworten:

4

... Ich möchte, dass auf die Daten nicht zugegriffen werden kann, auch wenn das System vollständig gefährdet ist.

Das ist nicht möglich. Wenn das System vollständig gefährdet ist, kann "per Definition" auf alles zugegriffen werden, einschließlich der Verschlüsselungsschlüssel.

Verschlüsselung ist beim Schutz gegen Systemkompromisse nutzlos, wenn sich die Schlüssel zum Ver- und Entschlüsseln von Daten auf demselben System wie die verschlüsselten Daten befinden, während das System ausgeführt wird. Wenn Sie beispielsweise ein LUKS-Dateisystem gemountet haben und jemand Root-Zugriff auf Ihr System hat, können die Schlüssel aus dem Arbeitsspeicher abgerufen werden, da er sich im Arbeitsspeicher befinden muss, um das Dateisystem zu entschlüsseln. Wenn Sie in Ihrer Situation Ihre Passphrase jedes Mal eingeben, wenn Sie eine Datei verschlüsseln, sind Sie geschützt (vorausgesetzt, auf Ihrem System ist kein Keylogger vorhanden). Andernfalls befinden Sie sich in der gleichen Situation und jemand, der Ihr System gefährdet, kann dies feststellen Schlüssel und machen Sie alle Ihre Verschlüsselung rückgängig.

Sie müssen die Daten, die Sie schützen möchten, außerhalb des Systems versenden + NICHT auf ein Zwischenmedium auf diesem System schreiben, wenn Sie absolut nicht möchten, dass Root darauf zugreifen kann. rsyslogUnterstützt dies ausdrücklich in Bezug auf die Protokollierung, und Sie können die Verbindung zwischen Quelle und Senke mit OpenVPN stunneloder ähnlichem verschlüsseln . Ich bin mir sicher, dass es noch andere "Einweg" -Übertragungsoptionen gibt.

LawrenceC
quelle
"weil sie im RAM leben müssen, um das Dateisystem zu entschlüsseln" mag dies bei LUKS spezifisch zutreffen, aber nicht generell: Die asymmetrische Krypto ist genau für diesen Zweck ausgelegt (jemand, der den öffentlichen Schlüssel besitzt, kann verschlüsseln, aber nicht entschlüsseln)
Clément
3

Es hört sich für mich so an, als würden Sie in die falsche Richtung gehen. Wenn Sie eine Datei möchten, in die Sie schreiben, aber nicht lesen können, suchen Sie nach Dateiberechtigungen.


$ touch log
$ chmod 222 log
$ echo test > log
$ cat log
cat: log: Permission denied

Natürlich kann sich diese Datei in einem verschlüsselten Dateisystem befinden.

Gorilla
quelle
Sie können das Dateisystem mit einer bestimmten umask bereitstellen, ohne dass Benutzer die Berechtigungen ändern können.
Nr.
Und nur der Eigentümer der Datei (oder Superuser) kann die Berechtigung ändern.
Gorilla
Ich denke, OP versucht sich selbst davor zu schützen, dass ein Angreifer Wurzeln schlägt.
Clément
1
umask 0477 && touch file && echo test > file && cat file

kann auch nützlich sein. Jede im aktuellen Prozess erstellte Datei hat den 0200-Modus.

edk
quelle