Версия 1.0 от 29 октября 2004г.
Благодаря падению цен на флешки, а также снижению цен на устройства вроде ZIV-Drive, наконец-то появлиась возможность легко носить с собой большие объёмы информации. Естественно эти устройства изредка теряются или воруются.
Кроме того часто приходится хранить данные на компьютере, к которому имеют доступ другие люди.
Вот уже месяц я постоянно езжу в офис с флешкой. На флешке у меня вечно валяется большое количество информации разной ценности, которая мне нужна под рукой. Несколько дней назад я её потерял. Если её найдёт пользователь Windows — то просто отформатирует тамошний ext3. А если пользователь Linux, то он получит некоторое количество конфиденциальной информации. Мне не хочется больше повторять этот опыт, поэтому я таки начал использовать **EncFS**.
В мире Linux? уже давно существует относительно удобное средство шифрования — crypto loopback filesystem. Основная идея заключается в том, чтобы прозрачно шифровать блочное устройство, устанавливая на нём произвольную файловую систему.
Основной минус такого подхода — необходимость заранее резервировать место под шифруемые данные. Кроме того монтирование такого раздела требует root-привелегий.
Я буду описывать установку для дистрибутивов ALTLinux. Буду рад комментариям по установке на другие дистрибутивы.
Создаёте два пустых каталога:
И монтируете:
При первом запуске можно использовать стандартный параноидальны режим, а можно самостоятельно выставить все настройки. При следующих монтированиях будет достаточно только ввести пароль.
1. Невозможность удалять открытые файлы.
В UNIX-мире общепринятый метод работы с временными файлами — открыть файл и сразу его удалить. Теперь работать мы с ним можем, но открыть его кем-бы то ни было ещё не возможно. После его завершения или закрытия программы, занимаемое на диске место будет автоматически освобождено.
Увы, эта логика неработает с Enc FS?. Тест (test.c) приаттачен к статье.
Из этого следует, что нельзя держать на Enc FS? $TMPDIR.
2. Не поддерживаются hardlink'и.
Одна из причин вполне ясна — создание hardlink'а на прозрачной файловой системе означает раскрытие информации о идентичности пары файлов в иерархии каталогов. Это может быть использовано как минимум для попытки угадать имена файлов.
Однако часто распространённая практика — для перемещения файла сначала создавать хардлинк, а потом удалять первый объект. Такой метод используется, например, во многих реализациях работы с Maildir (например в mutt). На Enc FS? это не работает (mutt не сможет добавлять сообщения в Maildir, находящийся на Enc FS?).
procmail'у это не мешает, и он работает.
Результат — пользователи mutt не могут держать outgoing и postponed (как минимум) на Enc FS? разделе.
3. Маленькая странность — при монтировании/размонтировании все пути надо указывать полностью. Поэтому для себя я написал скриптик encfs.sh:
Думаю надо было сделать его просто alias'ом.
Enc FS? — очень интересное и перспективное средство безопасности, однако пока ещё есть серьёзные недочёты заметно ограничивающие её применение.
(C) Денис Смирвное <mithraen@freesource.info> 29 Oct 2004
Размещение этого документа на других Internet-ресурсах, а также в печатных изданиях не допускается.