eCryptfs crittografato home - spiegazione


9

Sto cercando di capire come funziona ecryptfs internamente e la documentazione su ecryptfs.org non aiuta. Forse qualcuno è in grado di spiegare come funziona davvero. Naturalmente sono a conoscenza di queste strutture di directory nascoste .Private / .ecryptfs. Le mie domande sono più dettagliate:

  • Come fa il sistema a sapere che la mia casa è crittografata e decrittografata quando eseguo l'accesso?
  • Come cerca le directory chiave (quelle con dati crittografati, mountpoint per esso (a volte è home, a volte / home / Private), directory con passphrase spostata ecc.). Queste directory sono generalmente inserite in /home/.ecryptfs/ e collegate in home. Quale posizione è la chiave? I nomi di directory ".ecryptfs" e ".Private" sono riservati e codificati o configurabili?
  • Informazioni sul portachiavi: supponendo che io abbia più chiavi nel mio portachiavi - come fa ad abbinare la chiave corretta con una determinata directory crittografata?

Risposte:


11

Descrive l'installazione domestica standard crittografata. Se si desidera utilizzare passphrase o cartelle diverse, algoritmo di crittografia, dimensione della chiave, ecc., È possibile utilizzare mount.ecryptfsdirettamente.

Quando si crea un utente con una casa crittografata o si utilizza ecryptfs-migrate-homeun utente esistente, utilizza eCryptfs e imposta una directory /home/.ecryptfs/contenente cartelle con la "vera casa" del nuovo utente, /home/.ecryptfs/user/contenente:

  • i tuoi file crittografati effettivi /home/.ecryptfs/user/.Private/e la directory di configurazione di eCryptfs /home/.ecryptfs/user/.ecryptfs/contenente:

    • auto-mount - se esiste, dice ecryptfs-mount-privatedi essere eseguito all'accesso, montando la cartella privata (home). Vedereman ecryptfs-mount-private

    • auto-umount : se esiste, dice ecryptfs-umount-privatedi essere eseguito al logout, smontando la cartella privata (home). Vedereman ecryptfs-umount-private

    • Private.mnt - un file di configurazione letto mount.ecryptfs_privateall'accesso che definisce dove deve essere montata la directory crittografata. Se hai crittografato la tua home directory, questo sarà $HOME.
    • Private.sig : contiene la firma della passphrase di mountpoint. Fornisce un meccanismo sicuro e protetto per eCryptfs per determinare se stai usando la chiave corretta o meno. (Vedi Q su Private.sig e Private.mnt )
    • wrapped-passphrase - la passphrase effettiva (casuale) di eCryptfs, crittografata ("avvolta") con la passphrase di accesso

L'home directory regolare a /home/user/solo contiene link a /home/.ecryptfs/user/.ecryptfse /home/.ecryptfs/user/.Privatee altri due link ad un file di aiuto & /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(solo corre ecryptfs-mount-private).

eCryptfs imposta PAM (vedere i file in /etc/pam.d/) per cercare automaticamente le cartelle home crittografate /home/.ecryptfs/e montare e smontare cartelle home crittografate al momento del login / logout, a seconda che esistano o meno i file auto-mounte auto-umount. Vedi il codice sorgente di eCryptfs e gli script preinst e postrm del pacchetto .deb (collegati sopra) per maggiori dettagli, e questa clip da man ecryptfs-setup-private:

[T] ha il modulo pam_ecryptfs.so nello stack PAM che utilizzerà automaticamente la passphrase di accesso per scartare la passphrase di mount, aggiungere la passphrase al keyring del kernel dell'utente ed eseguire automaticamente il mount. Vedi pam_ecryptfs (8).

  • Questa pagina di aiuto di Ubuntu contiene indicazioni su come " montare automaticamente un filesystem crittografato ecryptfs all'avvio ... usando un /root/.ecryptfsrcfile contenente le opzioni di mount, insieme a un file passphrase che risiede su una chiave USB " .

Una volta scartate, le chiavi sono memorizzate nel tuo portachiavi del kernel utente, puoi dargli un'occhiata keyctl show, poiché se usasse il portachiavi root ( sudo keyctl show) un amministratore potrebbe scoprire la passphrase. Puoi usare ecryptfs-unwrap-passphraseper vedere la passphrase effettiva di ecryptfs. eCryptfs decodifica i tuoi file usando la firma della chiave corrispondente (opzioni ecryptfs ecryptfs_sig=(fekek_sig)e ecryptfs_fnek_sig) nel file Private.sig.


Ulteriori informazioni

Ubuntu ha buoni file di aiuto come i file crittografati in casa e eCryptfs nella guida del server Ubuntu .

Arch Linux ha un aiuto generalmente eccellente, vedi https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

E guarda le manpagine per ecryptfs(online lì o sul tuo sistema) e tutti i suoi strumenti, in particolare ecryptfs-setup-private.

Puoi aggiungere un nuovo utente con una casa crittografata usando adduser --encrypt-home(Per ulteriori informazioni, ecryptfs-setup-privatefai riferimento all'opzione -b di ) e dai un'occhiata a come i file sono impostati per te. E per bagnarti davvero i piedi con tutti i dettagli che probabilmente non avresti mai voluto sapere, vedi il codice sorgente :


In / etc / crypttab ho solo una riga per cryptswap; niente di speciale anche in fstab. La mia casa è crittografata. Non ho ancora idea di come fa il sistema a sapere che la mia casa è crittografata e al momento dell'accesso è necessario sth special.
Ardabro,

Penso che sia fatto automaticamente quando la casa viene guardata su @login. Hai letto l'aiuto di Archlinux, niente lì dentro è stato utile? Ma per favore definisci "sth special", né io né "professor google" ne abbiamo familiarità. Abbreviazione di "qualcosa di speciale"? Tipo cosa?
Xen2050,

sth special è quello di prendere la chiave e montare la directory crittografata che è il percorso aggiuntivo nel processo di accesso. Arch wiki è stato molto utile. Inoltre ho fatto qualche indagine sul codice sorgente di ecryptfs. Ma ancora non so dov'è l'istruzione "if" chiave nel processo di accesso e cosa controlla esattamente.
Ardabro,

Sembra un po 'più simile a come Linux troverebbe e userebbe qualsiasi cartella home, penso che alcune informazioni siano archiviate /etc/passwd(almeno in home & shell), sembra diverso per un utente home crittografato? Aggiungerò anche un po 'di informazioni sul portachiavi del kernel alla mia risposta, apparentemente ecryptfs memorizza le chiavi lì
Xen2050

1
Spiacente, ho perso l'aggiornamento. Ottima spiegazione Grazie molto!
Ardabro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.