[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Kann root eine Datei so schwer machen, dass er sie nicht mehr aufheben kann?



Hallo Liste,

der Betreff ist nicht ganz mein Problem, aber fast.

Ich suche eine Möglichkeit, mit der ein Nicht-Root-Benutzer
sicherstellen kann, dass root ihm kein "Ei gelegt" hat.

Konkret geht es darum, dass auf einem entfernten Host eine Datei mittels
GPG signiert werden soll, von einem Nicht-Root-Benutzer.

Den GPG-Schlüssel auf dem entfernten Host zu speichern, verbietet sich,
wenn der Schlüssel auch noch für andere Dinge genutzt werden soll.

Über Portforwarding, sshfs und geschickte Wahl der Parameter lässt sich
sicherstellen, dass der Ordner, in dem der GPG-Schlüssel lokal liegt,
auf den entfernten Host durchgereicht wird, und zwar so, dass selbst
root keinen Zugriff darauf erlangen kann (jedenfalls haben wir es in
unseren Versuchen nicht geschafft).

Aber: Wenn root dem User eine ~/.ssh/authorized_keys unterjubelt, in der
ein Public Key ist, zu dem root den Private Key hat, kann root sich
parallel als der gleiche User anmelden und erhält Zugriff auf die
GPG-Schlüsseldatei.
Gleiches gilt natürlich auch für eine modifizierte /etc/ssh/sshd_config,
die den Ort, an dem authorized_keys-Dateien gesucht werden, auf einen
anderen Ordner lenkt.

Daher die Frage: Gibt es z.B. mittels SELinux oder anderer Mechanismen
eine Möglichkeit, sicherzustellen, dass auch ein böswilliger Root nicht
die (per sshfs aus der Ferne eingehängten) GPG-Schlüssel der Benutzer
kapern kann?

Alternativ: Gibt es vielleicht auch die Möglichkeit, den gpg-agent über
ssh kommunizieren zu lassen, so dass die Schlüssel gar nie auf dem
entfernten Host erreichbar sein müssen?

Ich habe beim Googeln das hier gefunden:
<https://wiki.gnupg.org/AgentForwarding>, weiß aber nicht, ob mir das
hilft. Denn mir erschließt sich dabei nicht, ob das sich auch auf
Signieren und Verschlüsseln bezieht, oder nur auf die Möglichkeit,
gpg-agent als Ersatz für ssh-agent zu benutzen.

Gibt's da irgendwo verständlichere Doku, ein Tutorial vielleicht?

Gruß
Stefan


Reply to: