eCryptfs зашифровано додому - пояснення


9

Я намагаюся зрозуміти, як ecryptfs працює всередині, а документація на ecryptfs.org не допомагає. Можливо, хтось здатний пояснити, як це насправді працює. Звичайно, я знаю про ці приховані структури каталогів .Private / .ecryptfs. Мої запитання детальніше:

  • Як система знає, що мій дім зашифровано, і розшифровує його під час входу?
  • Як здійснюється пошук ключових каталогів (тих із зашифрованими даними, точки монтування для них (іноді це домашня, іноді / домашня / приватна), каталог із загорнутою парольною фразою тощо). Ці каталоги зазвичай розміщуються в /home/.ecryptfs/ і пов'язані з домашньою програмою. Яке місце є ключовим? Чи є імена каталогів ".ecryptfs" та ".Private" зарезервовані та жорстко закодовані чи налаштовані?
  • Про keyring: припустимо, що в моєму брелоку є кілька ключів - як він відповідає належному ключу певному зашифрованому каталогу?

Відповіді:


11

Це описує стандартні настройки зашифрованого будинку. Якщо ви хочете використовувати різні парольні фрази чи папки, алгоритм шифрування, розмір ключа тощо ..., ви можете використовувати mount.ecryptfsбезпосередньо.

Коли ви створюєте користувача із зашифрованим домом або використовуєте його ecryptfs-migrate-homeдля вже наявного користувача, він використовує eCryptfs та налаштовує каталог, /home/.ecryptfs/що містить папки з "реальним домом" нового користувача, /home/.ecryptfs/user/що містить:

  • ваші фактичні зашифровані файли /home/.ecryptfs/user/.Private/, а також конфігураційний каталог eCryptfs, /home/.ecryptfs/user/.ecryptfs/що містить:

    • auto-mount - якщо він існує, він повідомляє ecryptfs-mount-privateпро запуск при вході в систему, монтуючи приватну (домашню) папку. Подивитисяman ecryptfs-mount-private

    • auto-umount - якщо він існує, він повідомляє ecryptfs-umount-privateпро запуск під час виходу з системи, демонтуючи приватну (домашню) папку. Подивитисяman ecryptfs-umount-private

    • Private.mnt - файл конфігурації, який читається mount.ecryptfs_privateпри вході в систему, який визначає, куди повинен бути змонтований ваш зашифрований каталог. Якщо ви зашифрували домашній каталог, це буде $HOME.
    • Private.sig - містить підпис парольної фрази точки монтажу . Це забезпечує безпечний, безпечний механізм для eCryptfs , щоб визначити , якщо ви використовуєте правильний ключ чи ні. (Див. Питання про Private.sig та Private.mnt )
    • обгорнута парольна фраза - фактична (випадкова) парольна фраза eCryptfs, зашифрована ("загорнута") із вашою парольною фразою для входу

Звичайний домашній каталог /home/user/містить лише посилання на /home/.ecryptfs/user/.ecryptfsта /home/.ecryptfs/user/.Privateта ще два посилання на файл довідки & /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop(просто працює ecryptfs-mount-private).

eCryptfs встановлює PAM (див файлів /etc/pam.d/) для автоматичного пошуку зашифрованих домашніх папок в /home/.ecryptfs/і монтувати і демонтувати зашифрована домашні папки на Логін / вихід з системи, в залежності від того , чи ні , auto-mountі auto-umountіснують файли. Докладніші відомості див. У вихідному коді eCryptfs та у скриптах для встановлення пакета .deb та postrm (посилання вище) для цього man ecryptfs-setup-private.

[T] він pam_ecryptfs.so модуль до стека PAM, який автоматично використовуватиме парольну фразу для входу для розгортання парольної фрази для монтажу, додавання парольної фрази до ядра користувача користувача та автоматично виконувати монтування. Див. Pam_ecryptfs (8).

  • На цій довідковій сторінці Ubuntu є вказівки щодо того, як " автоматично монтувати зашифровану файлову систему шифрованих файлів під час завантаження ... за допомогою /root/.ecryptfsrcфайлу, що містить параметри кріплення, а також файл із парольною фразою, що знаходиться на USB-ключі ".

Після розгортання ключі зберігаються у вашому ключі ядра користувача, ви можете ознайомитись із ним keyctl show, оскільки якщо він використовував кореневий keyring ( sudo keyctl show), адміністратор міг би виявити парольну фразу. Ви можете використовувати ecryptfs-unwrap-passphraseдля перегляду фактичної парольної фрази ecryptfs. eCryptfs розшифровує ваші файли, використовуючи підпис відповідного ключа (параметри ecryptfs ecryptfs_sig=(fekek_sig)та ecryptfs_fnek_sig) у файлі Private.sig.


Більше інформації

Ubuntu має хороші файли довідки, такі як Зашифровані файли у вашому домі та eCryptfs у посібнику з сервера Ubuntu .

Arch Linux має загальну відмінну допомогу, див. Https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs

І перегляньте manсторінки ecryptfs(онлайн чи там, у вашій системі), і всі його інструменти, особливо ecryptfs-setup-private.

Ви можете додати нового користувача із зашифрованим домом за допомогою adduser --encrypt-home(Докладніші відомості див. У параметрі -b ecryptfs-setup-private) та подивіться, як налаштовані файли для себе. І щоб дійсно промокнути ноги усіма деталями, про які ви, мабуть, ніколи не хотіли знати, дивіться вихідний код :


У / etc / crypttab у мене є тільки один рядок для cryptswap; нічого особливого в fstab також. Мій дім зашифровано. Досі поняття не маю, як система знає, що мій дім зашифровано і що потрібно при вході в систему.
Ардабро

Я думаю, що це робиться автоматично, коли будинок дивиться на @login. Чи читали ви за допомогою допомоги archlinux, нічого там ніде не було корисним? Але, будь ласка, визначте "sth special", я ні "професор google" не знайомі з цим. Скорочене на "щось особливе"? Як що?
Xen2050

Що особливе - це взяти ключ і змонтувати зашифрований каталог, який є додатковим шляхом у процесі входу. Arch wiki була дуже корисною. Крім того, я провів деяке розслідування у вихідному коді ecryptfs. Але я досі не знаю, де є ключова інструкція "якщо" в процесі входу і що саме вона перевіряє.
Ардабро

Це звучить трохи більше, як те, як Linux знайшов би і скористався будь-якою домашньою папкою, я думаю, що деяка інформація зберігається в /etc/passwd(принаймні домашній і оболонці), чи це виглядає інакше для зашифрованого домашнього користувача? Я додам трохи інформації про ключове слово ядра до своєї відповіді, ecryptfs зберігає там ключі
Xen2050,

1
Вибачте, я пропустив оновлення. Чудове пояснення. Дуже дякую!
Ардабро
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.