eCryptfs verschlüsseltes Zuhause - Erklärung

9

Ich versuche zu verstehen, wie ecryptfs intern funktioniert, und die Dokumentation auf ecryptfs.org hilft nicht weiter. Vielleicht kann jemand erklären, wie es wirklich funktioniert. Natürlich sind mir diese versteckten .Private / .ecryptfs-Verzeichnisstrukturen bekannt. Meine Fragen sind detaillierter:

  • 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 ist es home, manchmal / home / Private), Verzeichnis mit umschlossener Passphrase usw.). Diese Verzeichnisse werden normalerweise in /home/.ecryptfs/ abgelegt und mit home verknüpft. Welcher Ort ist der Schlüssel? Sind die Verzeichnisnamen ".ecryptfs" und ".Private" reserviert und fest codiert oder konfigurierbar?
  • Informationen zum Schlüsselbund: Angenommen, ich habe mehrere Schlüssel in meinem Schlüsselbund. Wie passt der richtige Schlüssel zu einem bestimmten verschlüsselten Verzeichnis?
ardabro
quelle

Antworten:

10

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

Wenn Sie einen Benutzer mit einem verschlüsselten Zuhause erstellen oder ecryptfs-migrate-homefür einen vorhandenen Benutzer verwenden, verwendet er eCryptfs und richtet ein Verzeichnis /home/.ecryptfs/mit Ordnern mit dem "echten Zuhause" des neuen Benutzers ein, das Folgendes /home/.ecryptfs/user/enthält:

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

    • Auto-Mount - Wenn vorhanden, ecryptfs-mount-privatewird beim Anmelden ausgeführt, dass der private (Home-) Ordner bereitgestellt wird. Sehenman ecryptfs-mount-private

    • Auto-Umount - Wenn vorhanden, ecryptfs-umount-privatewird beim Abmelden die Ausführung des privaten (Home-) Ordners aufgehoben. Sehenman ecryptfs-umount-private

    • Private.mnt - Eine Konfigurationsdatei, die mount.ecryptfs_privatebeim Anmelden gelesen wird und definiert, wo Ihr verschlüsseltes Verzeichnis bereitgestellt werden soll. Wenn Sie Ihr Home-Verzeichnis verschlüsselt haben, ist dies der Fall $HOME.
    • Private.sig - enthält die Signatur der Mountpoint-Passphrase. Es bietet einen sicheren Mechanismus für eCryptfs, um festzustellen, ob Sie den richtigen Schlüssel verwenden oder nicht. (Siehe Q zu Private.sig und Private.mnt )
    • Wrapped -Passphrase - Die tatsächliche (zufällige) eCryptfs-Passphrase, die mit Ihrer Login-Passphrase verschlüsselt ("Wrapped") ist

Das reguläre Home-Verzeichnis unter /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 nur ausgeführt ecryptfs-mount-private).

eCryptfs richtet PAM (siehe Dateien in /etc/pam.d/) so ein, dass automatisch nach verschlüsselten Basisordnern gesucht /home/.ecryptfs/und verschlüsselte Basisordner beim Anmelden / Abmelden bereitgestellt werden, je nachdem, ob die Dateien auto-mountund auto-umountvorhanden sind oder nicht . Weitere Informationen finden Sie im eCryptfs-Quellcode und in den Preinst- und Postrm-Skripten des .deb-Pakets (oben verlinkt). Dieser Clip stammt von man ecryptfs-setup-private:

[D] Das Modul pam_ecryptfs.so zum PAM-Stapel, das automatisch die Anmelde-Passphrase verwendet, um die Mount-Passphrase zu entpacken, die Passphrase zum Kernel-Schlüsselring des Benutzers hinzuzufügen und die Bereitstellung automatisch durchzuführen. Siehe pam_ecryptfs (8).

  • Diese Ubuntu Hilfeseite hat Anweisungen, wie man „ automatisch einem ecryptfs verschlüsseltes Dateisystem beim Booten mounten ... eine mit /root/.ecryptfsrcDateioptionen enthalten , montieren, zusammen mit einer Kennwortdatei auf einem USB - Stick befindet.

Nach dem Entpacken werden die Schlüssel in Ihrem Benutzerkernel-Schlüsselring gespeichert. Sie können einen Blick darauf werfen keyctl show, da sudo keyctl showein Administrator bei Verwendung des Stammschlüsselrings ( ) die Passphrase herausfinden könnte. Sie können verwenden ecryptfs-unwrap-passphrase, um die tatsächliche ecryptfs-Passphrase anzuzeigen. eCryptfs entschlüsselt Ihre Dateien mit der passenden Schlüsselsignatur (ecryptfs-Optionen ecryptfs_sig=(fekek_sig)und ecryptfs_fnek_sig) in der Datei Private.sig.


Mehr Info

Ubuntu bietet gute Hilfedateien wie verschlüsselte Dateien in Ihrem Home 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 für ecryptfs(online dort oder auf Ihrem System) und alle seine Tools an, insbesondere ecryptfs-setup-private.

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

Xen2050
quelle
In / etc / crypttab habe ich nur eine Zeile für cryptswap; auch in fstab nichts besonderes. Mein Zuhause ist verschlüsselt. Ich habe noch keine Ahnung, woher das System weiß, dass mein Zuhause verschlüsselt ist und bei der Anmeldung etwas Besonderes erforderlich ist.
Ardabro
Ich denke, es wird automatisch gemacht, wenn das Haus auf @login geschaut wird. Haben Sie die Archlinux-Hilfe gelesen, nichts war hilfreich? Aber bitte definieren Sie "etw Besonderes", ich oder "Professor Google" sind damit vertraut. Abkürzung für "etwas Besonderes"? Wie was?
Xen2050
Das Besondere ist, den Schlüssel zu nehmen und das verschlüsselte Verzeichnis bereitzustellen, das ein zusätzlicher Pfad im Anmeldevorgang ist. Arch Wiki war sehr hilfreich. Außerdem habe ich einige Nachforschungen im Quellcode von ecryptfs angestellt. Aber ich weiß immer noch nicht, wo sich die Schlüsselanweisung "if" im Anmeldevorgang befindet und was genau überprüft wird.
Ardabro
Das klingt ein bisschen mehr danach, wie Linux einen Home-Ordner finden und verwenden würde. Ich denke, einige Informationen sind in /etc/passwd(Home & Shell zumindest) gespeichert. Sieht das für einen verschlüsselten Home-Benutzer anders aus? Ich werde meiner Antwort auch ein paar Informationen über den Kernel-Schlüsselring hinzufügen. Ecryptfs speichert anscheinend dort Schlüssel
Xen2050
1
Entschuldigung, ich habe das Update verpasst. Tolle Erklärung. Danke vielmals!
Ardabro