beranda dienkripsi eCryptfs - penjelasan

9

Saya mencoba memahami bagaimana ecryptfs bekerja secara internal dan dokumentasi di ecryptfs.org tidak membantu. Mungkin seseorang bisa menjelaskan bagaimana cara kerjanya. Tentu saja saya mengetahui struktur direktori .Private / .ecryptfs tersembunyi ini. Pertanyaan saya lebih detail:

  • Bagaimana sistem mengetahui bahwa rumah saya dienkripsi dan didekripsi ketika saya masuk?
  • Bagaimana cara mencari direktori utama (orang-orang dengan data terenkripsi, mountpoint untuk itu (kadang-kadang adalah rumah, kadang-kadang / home / Private), direktori dengan frasa sandi dibungkus dll). Direktori-direktori ini biasanya diletakkan di /home/.ecryptfs/ dan ditautkan ke home. Lokasi mana kuncinya? Apakah nama direktori ".ecryptfs" dan ".Private" dilindungi dan dikodekan atau dapat dikonfigurasi?
  • Tentang keyring: seandainya saya memiliki beberapa kunci di keyring saya - bagaimana cara mencocokkan kunci yang tepat dengan direktori terenkripsi tertentu?
ardabro
sumber

Jawaban:

11

Ini menjelaskan pengaturan rumah terenkripsi standar. Jika Anda ingin menggunakan frasa sandi atau folder yang berbeda, algoritma enkripsi, ukuran kunci, dll ... Anda dapat menggunakan mount.ecryptfssecara langsung.

Saat Anda membuat pengguna dengan rumah terenkripsi, atau digunakan ecryptfs-migrate-homepada pengguna yang sudah ada, itu menggunakan eCryptfs dan membuat direktori yang /home/.ecryptfs/berisi folder dengan "rumah asli" pengguna baru, yang /home/.ecryptfs/user/berisi:

  • file terenkripsi Anda yang sebenarnya /home/.ecryptfs/user/.Private/, dan direktori config eCryptfs /home/.ecryptfs/user/.ecryptfs/berisi:

    • auto-mount - jika ada, ia memerintahkan ecryptfs-mount-privateuntuk berjalan saat masuk, memasang folder pribadi (rumah). Lihatman ecryptfs-mount-private

    • auto-umount - jika ada, ia memberitahu ecryptfs-umount-privateuntuk berjalan pada logout, unmount folder pribadi (home). Lihatman ecryptfs-umount-private

    • Private.mnt - file konfigurasi yang dibaca mount.ecryptfs_privatesaat masuk yang menentukan di mana direktori terenkripsi Anda harus dipasang. Jika Anda telah mengenkripsi direktori home Anda, ini akan menjadi $HOME.
    • Private.sig - berisi tanda tangan dari frasa sandi mountpoint. Ini menyediakan mekanisme yang aman dan aman untuk eCryptfs untuk menentukan apakah Anda menggunakan kunci yang benar atau tidak. (Lihat Q tentang Private.sig dan Private.mnt )
    • dibungkus-passphrase - passphrase eCryptfs aktual (acak), terenkripsi ("dibungkus") dengan passphrase login Anda

Direktori beranda biasa di /home/user/hanya berisi tautan ke /home/.ecryptfs/user/.ecryptfsdan /home/.ecryptfs/user/.Privatedan dua tautan lagi ke file bantuan & /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(hanya berjalan ecryptfs-mount-private).

eCryptfs mengatur PAM (lihat file dalam /etc/pam.d/) untuk secara otomatis mencari folder home terenkripsi di /home/.ecryptfs/dan me-mount & umount folder home terenkripsi pada login / logout, tergantung pada apakah file auto-mountdan auto-umountada atau tidak . Lihat kode sumber eCryptfs dan skrip pre-post dan postrm paket .deb (ditautkan di atas) untuk detail lebih lanjut, dan klip ini dari man ecryptfs-setup-private:

[T] ia pam_ecryptfs.so modul ke tumpukan PAM yang secara otomatis akan menggunakan kata sandi login untuk membuka bungkusan kata sandi mount, menambahkan kata sandi ke keyring kernel pengguna, dan secara otomatis melakukan mount. Lihat pam_ecryptfs (8).

  • Halaman bantuan Ubuntu ini memiliki petunjuk tentang cara " me-mount sistem file terenkripsi ecryptf secara otomatis saat boot ... menggunakan /root/.ecryptfsrcfile yang berisi opsi mount, bersama dengan file frasa sandi yang berada pada kunci USB. "

Setelah dibuka, kunci disimpan dalam keyring kernel pengguna Anda, Anda dapat melihatnya keyctl show, karena jika menggunakan root keyring ( sudo keyctl show), administrator dapat mengetahui frasa sandi. Anda dapat menggunakan ecryptfs-unwrap-passphraseuntuk melihat frasa sandi ecryptfs yang sebenarnya. eCryptfs mendekripsi file Anda menggunakan tanda tangan kunci yang cocok (opsi ecryptfs ecryptfs_sig=(fekek_sig)dan ecryptfs_fnek_sig) dalam file Private.sig.


Info lebih lanjut

Ubuntu memiliki file bantuan yang bagus seperti file Terenkripsi di Rumah Anda dan eCryptfs dalam panduan Server Ubuntu .

Arch Linux memiliki bantuan yang umumnya sangat baik, lihat https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

Dan lihat manhalaman untuk ecryptfs(online di sana atau di sistem Anda) dan semua alat itu, terutama ecryptfs-setup-private.

Anda dapat menambahkan pengguna baru dengan rumah terenkripsi menggunakan adduser --encrypt-home(Untuk informasi lebih lanjut, lihat opsi -b ecryptfs-setup-private) dan lihat bagaimana file diatur untuk Anda sendiri. Dan untuk benar-benar membuat kaki Anda basah dengan semua detail yang Anda mungkin tidak pernah ingin tahu melihat kode sumber :

Xen2050
sumber
Di / etc / crypttab saya hanya punya satu baris untuk cryptswap; tidak ada yang istimewa di fstab juga. Rumah saya dienkripsi. Masih tidak tahu bagaimana sistem tahu bahwa rumah saya dienkripsi dan khusus diperlukan saat masuk.
ardabro
Saya pikir itu secara otomatis dilakukan ketika rumah melihat @ login. Apakah Anda membaca bantuan archlinux, tidak ada yang membantu di sana? Tapi tolong definisikan "khusus sth", saya atau "profesor google" akrab dengan itu. Singkatan dari "sesuatu yang istimewa"? Seperti apa?
Xen2050
sth special adalah untuk mengambil kunci dan me-mount direktori terenkripsi yang merupakan jalur tambahan dalam proses login. Arch wiki sangat membantu. Selain itu saya membuat beberapa penyelidikan dalam kode sumber ecryptfs. Tapi saya masih tidak tahu di mana kunci "jika" instruksi dalam proses login dan apa yang sebenarnya diperiksa.
ardabro
Kedengarannya sedikit lebih seperti bagaimana linux akan menemukan & menggunakan folder rumah, saya pikir beberapa info disimpan di /etc/passwd(setidaknya home & shell), apakah itu terlihat berbeda untuk pengguna rumahan yang dienkripsi? Saya akan menambahkan sedikit info tentang kernel keyring ke jawaban saya juga, ecryptfs menyimpan kunci di sana rupanya
Xen2050
1
Maaf, saya ketinggalan pembaruan. Penjelasan yang bagus. Terimakasih banyak!
ardabro