8

Я пытаюсь понять, как работает ecryptfs, и документация на ecryptfs.org не помогает. Может быть, кто-то сможет объяснить, как это действительно работает. Конечно, я знаю об этих скрытых.Частная / .ecryptfs структура каталогов. Мои вопросы более подробны:

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

1 ответ1

9

Это описывает стандартную зашифрованную домашнюю настройку. Если вы хотите использовать разные парольные фразы или папки, алгоритм шифрования, размер ключа и т.д., Вы можете напрямую использовать 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, чтобы определить, используете ли вы правильный ключ или нет. (См. Q о Private.sig и Private.mnt)
    • wrapped-passphrase - фактическая (случайная) парольная фраза 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 и сценарии preinst и postrm пакета .deb (см. Выше), а также этот клип из man ecryptfs-setup-private:

[T] модуль pam_ecryptfs.so для стека PAM, который будет автоматически использовать идентификационную фразу входа в систему, чтобы развернуть кодовую фразу монтирования, добавить ключевую фразу в связку ключей пользователя и автоматически выполнить монтирование. Смотрите pam_ecryptfs(8).

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

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


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

Ubuntu имеет хорошие справочные файлы, такие как зашифрованные файлы в вашем доме и eCryptfs в руководстве по Ubuntu Server.

В Arch Linux есть отличная справка, смотрите https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs.

И увидеть страницы man для ecryptfs (онлайн или там в вашей системе) , и все эти инструменты, особенно ecryptfs-setup-private.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .