eCryptfs-verschlüsselte Home-Erklärung

4253
ardabro

Ich versuche zu verstehen, wie ecryptfs intern funktioniert, und die Dokumentation auf ecryptfs.org hilft nicht. Vielleicht kann jemand erklären, wie es wirklich funktioniert. Natürlich bin ich mir dieser versteckten .Private / .ecryptfs-Verzeichnisstruktur bewusst. Meine Fragen sind ausführlicher:

  • Woher weiß das System, dass mein Zuhause verschlüsselt ist, und entschlüsselt es, wenn ich mich anmelde?
  • Wie wird nach Schlüsselverzeichnissen gesucht (solche mit verschlüsselten Daten, Mountpoint dafür (manchmal home, manchmal / home / private), Verzeichnis mit umschlossener Passphrase usw.). Diese Verzeichnisse werden normalerweise in /home/.ecryptfs/ abgelegt und in Home verlinkt. Welcher Ort ist der Schlüssel? Sind die Verzeichnisnamen ".ecryptfs" und ".Private" reserviert und fest codiert oder konfigurierbar?
  • Über den Schlüsselbund: Angenommen, ich habe mehrere Schlüssel in meinem Schlüsselbund. Wie passt der richtige Schlüssel zu einem bestimmten verschlüsselten Verzeichnis?
8

1 Antwort auf die Frage

9
Xen2050

Dies beschreibt das standardmäßige verschlüsselte Home-Setup. Wenn Sie verschiedene Passphrasen oder Ordner, Verschlüsselungsalgorithmen, Schlüsselgröße usw. verwenden möchten, können Sie sie mount.ecryptfsdirekt verwenden.

Wenn Sie einen Benutzer mit einer verschlüsselten Heimat erstellen oder ecryptfs-migrate-homeeinen vorhandenen Benutzer verwenden, verwendet er eCryptfs und richtet ein Verzeichnis /home/.ecryptfs/mit Ordnern mit der "echten Heimat" des neuen Benutzers ein, die Folgendes /home/.ecryptfs/user/enthält:

  • Ihre eigentlichen verschlüsselten Dateien in /home/.ecryptfs/user/.Private/und das eCryptfs-Konfigurationsverzeichnis /home/.ecryptfs/user/.ecryptfs/mit:

    • auto-mount - Falls vorhanden, ecryptfs-mount-privatewird beim Anmelden ausgeführt, dass der private Ordner (Home-Ordner) gemountet wird. Sehenman ecryptfs-mount-private

    • auto-umount - falls vorhanden, wird ecryptfs-umount-privatedie Ausführung beim Abmelden ausgeführt und der private Ordner (Home-Ordner) wird deaktiviert. Sehenman ecryptfs-umount-private

    • Private.mnt - Eine Konfigurationsdatei, die von mount.ecryptfs_privateat login gelesen wird und definiert, wo Ihr verschlüsseltes Verzeichnis gemountet werden soll. Wenn Sie Ihr Heimatverzeichnis verschlüsselt haben, ist dies der Fall $HOME.
    • Private.sig - Enthält die Signatur der Passphrase für den Mountpoint. Es bietet einen sicheren, sicheren Mechanismus für eCryptfs, um festzustellen, ob Sie den richtigen Schlüssel verwenden oder nicht. (Siehe Q zu Private.sig und Private.mnt )
    • eingewickelt-Passwort - das tatsächliche (random) eCryptfs Passwort verschlüsselte ( "wrapped") mit Ihrem Login - Passwort

Das reguläre Home-Verzeichnis /home/user/enthält nur Links zu /home/.ecryptfs/user/.ecryptfsund /home/.ecryptfs/user/.Privateund zwei weitere Links zu einer Hilfedatei & /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(wird gerade ausgeführt ecryptfs-mount-private).

eCryptfs richtet PAM (siehe Dateien in /etc/pam.d/) so ein, dass es /home/.ecryptfs/beim Anmelden / Abmelden automatisch nach verschlüsselten Basisordnern in und nach Mount & Umount verschlüsselte Basisordner sucht, je nachdem, ob die Dateien auto-mountund auto-umountvorhanden sind. Siehe die eCryptfs Quellcode und die preinst und postrm Skripte des .deb - Paket (oben verlinkten) für weitere Details und um diesen Clip aus man ecryptfs-setup-private:

[T] Das Modul pam_ecryptfs.so für den PAM-Stack, der automatisch die Login-Passphrase verwendet, um die Mount-Passphrase zu entfernen, die Passphrase zum Kernel-Schlüsselring des Benutzers hinzuzufügen und das Mount automatisch auszuführen. Siehe pam_ecryptfs (8).

  • Diese Ubuntu- Hilfeseite/root/.ecryptfsrc enthält Anweisungen, wie " ein mit Ecryptfs verschlüsseltes Dateisystem beim Booten automatisch gemountet wird ... und dabei eine Datei mit Mount-Optionen zusammen mit einer Passphrasen-Datei auf einem USB-Stick verwendet wird. "

Wenn die Schlüssel einmal ausgepackt sind, werden sie in Ihrem Kernel-Schlüsselbund des Benutzers gespeichert. Sie können den Schlüssel damit überprüfen, keyctl showda sudo keyctl showein Administrator die Passphrase herausfinden könnte, wenn er den root-Schlüsselbund ( ) verwendet. Sie können ecryptfs-unwrap-passphrasedie tatsächliche Passphrase von ecryptfs anzeigen. eCryptfs entschlüsselt Ihre Dateien mit der entsprechenden Schlüsselsignatur (ecryptfs-Optionen ecryptfs_sig=(fekek_sig)und ecryptfs_fnek_sig) in der Datei Private.sig.


Mehr Info

Ubuntu verfügt über gute Hilfedateien wie verschlüsselte Dateien in Ihrem Heim und eCryptfs im Ubuntu Server-Handbuch .

Arch Linux bietet im Allgemeinen eine hervorragende Hilfe, siehe https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

Und sehen Sie sich die manSeiten ecryptfs(online dort oder auf Ihrem System) und alle seine Werkzeuge an, insbesondere ecryptfs-setup-private.

Sie können einen neuen Benutzer mit einem verschlüsselten Heim hinzufügen, indem Sie adduser --encrypt-home(Weitere Informationen finden Sie unter der Option -b von ecryptfs-setup-private) und sehen Sie sich an, wie die Dateien für Sie selbst eingerichtet werden. Und um Ihre Füße wirklich mit allen Details nass zu machen, die Sie wahrscheinlich nie wissen wollten, sehen Sie den Quellcode :

In / etc / crypttab habe ich nur eine Zeile für cryptswap. auch nichts Besonderes in fstab. Mein Zuhause ist verschlüsselt. Ich habe immer noch keine Ahnung, wie das System weiß, dass mein Zuhause verschlüsselt ist und bei der Anmeldung etwas Besonderes erforderlich ist. ardabro vor 9 Jahren 0
Ich denke, es wird automatisch gemacht, wenn @login von zu Hause aus betrachtet wird. Haben Sie die archlinux-Hilfe durchgelesen, war nirgends etwas hilfreiches? Definieren Sie aber bitte "etw Besonderes", ich bin noch nicht mit "Professor Google" vertraut. Kurz für "etwas Besonderes"? Wie was? Xen2050 vor 9 Jahren 0
sth special ist, den Schlüssel zu nehmen und das verschlüsselte Verzeichnis zu mounten. Dies ist ein zusätzlicher Pfad für den Anmeldeprozess. Arch Wiki war sehr hilfreich. Außerdem habe ich einige Nachforschungen im ecryptfs-Quellcode angestellt. Aber ich weiß immer noch nicht, wo sich die Schlüssel-If-Anweisung im Anmeldeprozess befindet und was genau geprüft wird. ardabro vor 9 Jahren 0
Das klingt ein bisschen mehr nach dem, wie Linux einen Home-Ordner finden und verwenden würde. Ich denke, einige Informationen werden in `/ etc / passwd` (zumindest home & shell) gespeichert. Sehen die für einen verschlüsselten Heimanwender anders aus? Ich füge meiner Antwort auch ein paar Informationen über den Kernel-Schlüsselbund hinzu, ecryptfs speichert dort anscheinend Schlüssel Xen2050 vor 9 Jahren 0
@ardabro hat die Antwort vor einiger Zeit aktualisiert, sieht bereit für eine Bestätigung / Auswahl, für weitere Details lesen Sie den Quellcode. Xen2050 vor 9 Jahren 0
Entschuldigung, ich habe das Update verpasst. Tolle Erklärung. Danke vielmals! ardabro vor 9 Jahren 1
Gern geschehen, es war auch eine Lernerfahrung für mich, viele interessante Informationen auf den "man" -Seiten Xen2050 vor 9 Jahren 0