Благодаря падению цен на флешки, а также снижению цен на устройства вроде ZIV-Drive, наконец-то появилась возможность легко носить с собой большие объёмы информации. Естественно эти устройства изредка теряются или воруются.
Кроме того часто приходится хранить данные на компьютере, к которому имеют доступ другие люди.
Страшная история
Вот уже месяц я постоянно езжу в офис с флешкой. На флешке у меня вечно валяется большое количество информации разной ценности, которая мне нужна под рукой. Несколько дней назад я её потерял. Если её найдёт пользователь Windows — то просто отформатирует тамошний ext3. А если пользователь Linux, то он получит некоторое количество конфиденциальной информации. Мне не хочется больше повторять этот опыт, поэтому я таки начал использовать EncFS.
Существующие шифрованные файловые системы
В мире Linux уже давно существует относительно удобное средство шифрования — crypto loopback filesystem. Основная идея заключается в том, чтобы прозрачно шифровать блочное устройство, устанавливая на нём произвольную файловую систему.
Основной минус такого подхода — необходимость заранее резервировать место под шифруемые данные. Кроме того монтирование такого раздела требует root-привилегий.
Преимущества EncFS
Используется fuse (filesystem in userspace);
Смонтированную файловую систему принципиально невозможно увидеть под другим uid, кроме того, кто её смонтировал (даже root не сможет получить доступ к этой fs);
Очень маленький размер кода, что позволяет сделать его надёжным;
Краткий обзор возможностей
шифрование содержимого файлов;
шифрование имён файлов;
использование openssl как библиотеки с реализацией алгоритмов шифрования;
поддержка разных размеров блока шифрования;
поддержка AES;
Установка EncFS
Устанавливаем fuse (в ALTLinux это пакет avfs-fuse), желательно версии не меньше 1.9 (только начиная с неё появилась поддержка удаления открытых файлов с их последующей работы, что является общепринятым методом работы с временными файлами).
Устанавливаем пакет с модулем fuse для используемого ядра
В /etc/modules добавляем строчку 'fuse' (в последней сборке avfs-fuse, находящейся сейчас в Sisyphus это делать необязательно)
modprobe fuse
chmod u+s /usr/sbin/fusermount (к сожалению иначе он не работает)
Далее можете собрать и установить librlog и encfs. Пользователи Sisyphus на могут получить эти пакеты обычным путём (apt-get install encfs avfs-fuse)
Использование EncFS
Создаёте два пустых каталога:
И монтируете:
При первом запуске можно использовать стандартный параноидальны режим, а можно самостоятельно выставить все настройки. При следующих монтированиях будет достаточно только ввести пароль.
Я настоятельно рекомендую использовать режим настройки «эксперт», выбирая по-умолчанию все опции кроме одной: “filename initialization vector chaining”, её лучше отключить, ибо от неё сейчас больше вреда чем пользы.
Кроме того я настоятельно не рекомендую позволять разделу переполняться, у меня есть подозрение, что этот вид ошибок обрабатывается некорректно.
Сейчас я активно тестирую эту файловую систему, и, обнаружив её в некоторых случаях неадекватное поведение (потерю доступа к файлу, файл становится невидимым, хотя и остаётся на диске, и связано это именно с filename initialization vector chaining). Кроме того, если эта опция включена, то становится невозможным создание hardlink'ов (вначале я это принял за недостаток самой Enc FS, но осознав как работает эта опция и отключив её всё стало нормально).
Недостатки EncFS
1. Маленькая странность — при монтировании/размонтировании все пути надо указывать полностью. Поэтому для себя я написал скриптик encfs.sh:
Думаю надо было сделать его просто alias'ом.
2. Внимание в настоящий момент mutt не может корректно добавлять новые сообщения в maildir. В encfs все файлы имеют разные inode-numbers, даже hardlinks, чего mutt не понимает. Багрепорт в багзиллу я уже отправил.
Резюме
EncFS — очень интересное и перспективное средство безопасности, однако пока ещё есть серьёзные недочёты заметно ограничивающие её применение.
(C) Денис Смирнов <mithraen@freesource.info> 29 Oct 2004
Размещение этого документа на других Internet-ресурсах, а также в печатных изданиях не допускается.
Отзывы — здесь вы можете высказать своё мнение по поводу содержимого сайта