Home-Partition beim Anmelden entschlüsseln?

Blackbird

Satanist
Hi,

ich möchte, dass die Home-Partition eines Benutzers xxx verschlüsselt ist, und dass sie durch das Anmelden dieses Benutzers automatisch entschlüsselt wird.

Die root-Partition soll nicht verschlüsselt sein.
Die Partition soll weder von einem anderen Betriebssystem noch von einem anderen Account (einschließlich root) oder im SU-Modus lesbar sein.

Kann man das irgendwie hinkriegen, sodass es sicher ist? Wenn ja, wie?
 
Ne, so ohne weiteres geht das nicht. Wenn überhaupt mit einer selbstgefrickelnt fuse-encfs geschichte.

Vor root kannst du aber nie etwas schützen, da root per Definition die ganze Festplatte angucken kann (spätestens wenn sie gemountet ist) und den ganzen Speicher auslesen kann, wo halt irgendwo die Schlüssel einer gemounteten Partition drinliegen müssen.
 
Ich bin mal so frei, auf das Ubuntu-Forum zu verweisen:
http://wiki.ubuntuusers.de/Sicherheit#Datenschutz-und-Privatsphaere

Dort steht das ganz gut beschrieben, wie das Benutzerverzeichnis dann beim Anmelden auch automatisch eingehängt wird (zumindest war es vor einem Jahr da noch, hab jetzt nicht geprüft, wie das aktuell ist).

Habe aber keine Ahnung, inwieweit sich das auf *BSD übertragen läßt...

Ansonsten: Vor root und su bist Du damit in der Tat nicht sicher, denn sobald die Partition entschlüsselt ist, wird sie normal ins Dateisystem eingehängt. Da kann also root drauf arbeiten.

Die Verschlüsselung nutzt eigentlich nur gegen Diebstahl der Festplatte, sie schützt nicht während der Arbeit.
 
Hi Blackbird,

Hi,

ich möchte, dass die Home-Partition eines Benutzers xxx verschlüsselt ist, und dass sie durch das Anmelden dieses Benutzers automatisch entschlüsselt wird.

Die root-Partition soll nicht verschlüsselt sein.
Die Partition soll weder von einem anderen Betriebssystem noch von einem anderen Account (einschließlich root) oder im SU-Modus lesbar sein.

Kann man das irgendwie hinkriegen, sodass es sicher ist? Wenn ja, wie?

Prinzipiell geht das. Dazu brauchst Du den PAM-Stack, der in FreeBSD leider noch nicht ganz zu Ende entwickelt ist (siehe LDAP und passwd). Um ein Homedir automatisch nach der Autorisierung zu mounten, benötigst Du pam_mkhomedir (ports/security/pam_mkhomedir). Desweiteren brauchst Du ein PAM-Modul, welches das verschlüsselte Homedir freischaltet. Ob geli (cryptographic GEOM class) zur Authentifizierung gegen PAM gelinkt ist, weiß ich nicht.

JueDan
 
Dieses »Home-Partition-beim-Login-mounten« ist meiner Meinung ein unsinniges Sicherheitskonzept: Verschlüsselung allgemein ist ein Mechanismus, der bei ausgeschaltetem System garantieren soll, daß niemand die Festplatte ausbaut/LiveCD bootet und Daten ausliest oder verändert. Es spricht also aus Sicherheitsgesichtspunkten nichts dagegen, die Home-Partition gleich beim Bootvorgang zu mounten; sie ist ja durch reguläre Unix-Berechtigungen vor Zugriff durch andere Benutzer geschützt (außer root, aber man erteilt auch nur den Leuten root-Zugriff, denen man absolut vertraut – also nur sich selbst ;) ).

Und das Mounten von /tmp und /var/tmp muß sowieso beim Systemstart erfolgen. Und von da ist der Weg auch nicht mehr weit zu einer verschlüsselten Root-Partition. Damit hättest du dann auch nur einen einzigen Key und nicht drei oder noch mehr. Also meine Empfehlung: Gesamte Platte verschlüsseln (mit Keyfile und Passwort), das Geli-Device disklabeln (oder eben nicht, wenn du ZFS willst), /boot zusammen mit dem Keyfile auf einen USB-Stick kopieren. Schützt dann auch gegen lokale Installation eines Troianers.
 
Hi Blackbird,

http://www.freebsdonline.com/content/view/575/517/

das ist es doch fast oder?
Wenn du nicht die ganze HOME Partition verschlüsseln willst, muss du halt eine Partition für einen ganz bestimmetn USER benutzen, und diese unter /home/USER einbinden. Also prinzipiell das selbe in grün wie oben.

Wie man nur sein /home/USER Verzeichnis verschlüsselt, nicht die Partition, hab ich keine Ahnung.
 
Das kann man als nicht-root attachen und mounten?

Ich hätte bei sowas ja eher auf GnuPG getippt. Nicht so komfortabel wie ein Filesystem, aber es funktioniert.
 
Schuetzt CFS auch davor, dass root seine user id aendern kann um auf den verschluesselten Teil zuzugreifen? Also in der Art, .. su - $username usw. Dann waere das ja analog zu FUSE, da kann roo auch nicht direkt drauf zugreifen sondern halt nur ueber setuid()..
 
Schuetzt CFS auch davor, dass root seine user id aendern kann um auf den verschluesselten Teil zuzugreifen? Also in der Art, .. su - $username usw. Dann waere das ja analog zu FUSE, da kann roo auch nicht direkt drauf zugreifen sondern halt nur ueber setuid()..
Wenn das FS gemountet ist, natürlich nicht. Root darf alles. Wirklich dagegen helfen täte z.B. ein verschlüsseltes tar-Archiv, bei dem man bei jedem Zugriff die Kommandos jeweils durch GnuPG oder OpenSSL pipet. Aber selbst dann könnte man noch den Arbeitsspeicher auslesen und Daten extrahieren. Wenn der User die Datei nicht ohnehin zur Bearbeitung auf einem gemounteten Filesystem zwischenlagert.
 
Wenn das FS gemountet ist, natürlich nicht. Root darf alles. Wirklich dagegen helfen täte z.B. ein verschlüsseltes tar-Archiv, bei dem man bei jedem Zugriff die Kommandos jeweils durch GnuPG oder OpenSSL pipet. Aber selbst dann könnte man noch den Arbeitsspeicher auslesen und Daten extrahieren. Wenn der User die Datei nicht ohnehin zur Bearbeitung auf einem gemounteten Filesystem zwischenlagert.

Haette mich auch gewundert... gnupg und openssl funktioniert ja auch nur insoweit du den entsprechenden binaries vertrauen kannst..
 
Stimmt natürlich auch. Jemand mit richtiger Paranoia müßte sich auf einem fremden System, auf das er keinen root-Zugriff hat, beides selbst kompilieren. Und sich natürlich vorher den Quelltext von vorne bis hinten durchlesen. :D
 
Ok, bevor das hier in die falsche Richtung geht...
Ich meine nicht, dass root nicht darauf zugreifen können darf, nachdem es gemountet wurde.
Ich meine, dass vor dem Anmelden des Users keiner, auch nicht root, darauf zugreifen können darf.
Z.b. indem root einfach das User-Passwort ändert (da ich selber beide Accounts besitze, ist das außerdem nur Theorie, für den Fall der Fälle).

Es würde z.B. reichen, wenn das eingegebene Passwort des Users an den Decrypter weitergereicht wird, da das Passwort des Users ja auch für root nicht im Klartext lesbar ist.
Oder so... :D Das ist ja meine Frage.
 
Stimmt natürlich auch. Jemand mit richtiger Paranoia müßte sich auf einem fremden System, auf das er keinen root-Zugriff hat, beides selbst kompilieren. Und sich natürlich vorher den Quelltext von vorne bis hinten durchlesen. :D

Und den Quelltext des GCC und den kompilieren und die Prüfsummen vergleichen, und natürlich dann den Quellcode von sha256 und dann davon die Prüfsummen…

Das ist doch alles Quatsch. Per Definition kann man sich vor Root nicht schützen auf einem Unix. Das ist nicht so konzipiert und das CFS ändert daran auch nichts (ich hatte mir schon DOku dazu anguguckt, aber eben genau nicht verstanden, wie das Root aussperren soll).


edit: Hatte Blackbird's letzten Post nicht gesehen. Verstehe ich trotzdem nicht. Root kann doch einfach einen Keylogger installieren. Oder den "Decryptor" durch einen Wrapper ersetzen der Passwörter aufzeichnet. Wenn Root möchte kommt er auf jeden Fall an alle Benutzeringaben ran.
 
Zuletzt bearbeitet:
Ich sage ja, es geht nicht um die Benutzereingabe.
Wenn z.B. die Festplatte entwedet wird, und das root-Passwort geknackt wird, aber das User-Passwort nicht, dann sollen die Daten weiterhin sicher sein.
 
was nutzt das root-passwort, wenn die verschlüsselte partition ein anderes passwort beim booten benötigt? nichts!
 
Das ist etwas ganz anderes. Die Partition soll 1. automatisch und 2. beim Anmelden des Benutzers eigenhängt werden!

Ok, also mal angenommen es ist nicht möglich, mit dem root-Account ein User-Passwort aus der /etc/spwd.db zu extrahieren.

Wie konfiguriere ich die Anmeldung so, dass die Home-Partition mit dem zuvor verwendeten User-Passwort entschlüsselt wird?
Wenn das nicht möglich ist, reicht mir das auch als Antwort.
 
Zuletzt bearbeitet:
Hi Blackbird,

Das ist etwas ganz anderes. Die Partition soll 1. automatisch und 2. beim Anmelden des Benutzers eigenhängt werden!

Ok, also mal angenommen es ist nicht möglich, mit dem root-Account ein User-Passwort aus der /etc/spwd.db zu extrahieren.

Wie konfiguriere ich die Anmeldung so, dass die Home-Partition mit dem zuvor verwendeten User-Passwort entschlüsselt wird?
Wenn das nicht möglich ist, reicht mir das auch als Antwort.

Es ist nur dann möglich, wenn die Tools wie GELI oder sonst was gegen PAM gelinkt sind. Anders bekommen die Programm nicht mit, dass der User erfolgreich authentifiziert wurde und autorisiert ist.
GELI ist nicht gegen PAM gelinkt und scheidet für dein Vorhaben damit aus. Bei den anderen Tools/Dateisystemen/... weiß ich es nicht.

JueDan
 
Wie konfiguriere ich die Anmeldung so, dass die Home-Partition mit dem zuvor verwendeten User-Passwort entschlüsselt wird?
Wenn das nicht möglich ist, reicht mir das auch als Antwort.

Wie wäre es mit dem Aufruf eines Scriptes aus /etc/ttys heraus?
Also das Script da aufrufen, wo sonst für das ttyv8 xdm, oder kdm, oder gdm aufrufbar wäre.
Genauer das ersetzen,
wo man per FreeBSD default ttyv8 "/usr/local/bin/xdm usw. für das Anmelden aufrufen würde?
Könnte mir vorstellen, dass das mit pefs zusammen eine Möglichkeit zur Aufgabenlösung wäre.
Das pefs Kernelmodul will natürlich nach jedem Kernelneubau auch gebaut sein, damit man es nutzen kann.
Ein mit pefs verschlüsseltes Verzeichnis kann der User dann aber bequem mounten, ohne root Rechte.

Das ganze wäre dann wohl am ehesten mit dem bequemen Buntu /home/user_name Verschlüsselungsansatz für Heimanwender vergleichbar.
 
Ihr sucht pam_exec(8). :)

Nicht ganz. Zum Beispiel erwartet GELI ein Password, damit eine verschlüsselte Partition "attached" werden kann. Im Grunde müssten die verantwortlichen Programme (geli, mount, ...) gegen PAM gelinkt sein (und auch PAM "verstehen"), damit sie nahtlos ins System integriert werden können.
 
Zurück
Oben