ZenWay - Linux сегодня!
  • Главная
  • Форум
  • Контакты
  • Архив
  • Гостевая книга
×
Поиск по сайту
ГлавнаяHужное/полезноеСистемные утилитыИзучаем LinuxEncFS

EncFS

Изучаем Linux, Системные утилиты, Hужное/полезноеПросмотров: 4305Комментарии: 010 октября 2010 г.
Console / Администрирование / Безопасность / Комплект инструментов / Простая утилита / Учебные материалы / Шифрование

EncFS — консольное приложение (encfsctl) для создания зашифрованных каталогов на основе криптографической файловой системы FUSE, прозрачно шифрующее файлы, используя произвольный каталог в качестве места для хранения зашифрованных файлов.

При монтировании EncFS указывается директория-источник (исходная директория с зашифрованными файлами) и точка монтирования. После монтирования каждому файлу в директории-точке монтирования соответствует определённый файл из зашифрованной директории. Таким образом, в директории-точке монтирования представлены файлы директории источника в незашифрованном виде.

Файлы шифруются с помощью ключа, который в свою очередь хранится в той же директории, что и зашифрованные файлы, в зашифрованном виде. Пароль, вводимый пользователем с клавиатуры, служит для расшифровки этого ключа.

EncFS взаимодействует непосредственно с libfuse (интерфейс FUSE), библиотекой логирования и OpenSSL (библиотека шифрования), а «Общение» с ядром происходит через FUSE. Слой обратного вызова (callback layer) EncFS получает запросы из libfuse. Далее эти запросы перенаправляются к соответствующему узлу директории (DirNode) или файла (FileNode) или возвращается информация из кэша, если она там присутствует. Реализации интерфейсов вывода имён (NameIO) и содержимого (FileIO) файлов возвращают расшифрованную информацию.

Используемая библиотека OpenSSL предоставляет алгоритмы шифрования AES (16-байтный блочный шифр с длиной ключа 128—256 бит) и Blowfish (8-байтный блочный шифр с длиной ключа 128—256 бит). Имена файлов шифруются и затем кодируются в 64-битную кодировку, параллельно избавляясь от символов «.» и «/». Есть возможность потокового (стандарт до версии 1.1) и блочного шифрования, 16-битный MAC используется как IV (инициализационный вектор) и приписывается спереди к зашифрованному имени, что позволяет рандомизировать результат шифрования, одинаковые имена файлов шифруются по-разному, так как при формировании инициализационного вектора используется весь путь к файлу.

Каждый экземпляр файловой системы EncFS использует случайно сгенерированный ключ (ключ тома). Этот ключ сохраняется зашифрованным с помощью вводимого пользователем пароля. И расшифровывается при введении пользователем пароля с клавиатуры. Для изменения пароля тома нужно всего лишь изменить одну строчку в конфигурационном файле, поддерживается возможность расширяемости для восстановления пароля.

Все операции чтения/записи в EncFS являются блочными, размер блоков определяется пользователем при создании файловой системы и варьируется от 64 до 4096 байт. Маленький размер блоков уменьшает время произвольного доступа, но увеличивает число запросов при чтении/записи больших кусков файлов. Большой размер блоков способствует увеличению скорости обработки данных, но увеличивает время произвольного доступа. В отличие от реальных файловых систем большой размер блоков не приводит к потере дискового пространства (незаполненные до конца блоки не забиваются нулями).

При шифровании каждому блоку в файле добавляется заголовок MAC, таким образом, 512-байтный блок является 504 байтами зашифрованных данных и 8 байтами MAC’а. Каждый экземпляр файловой системы EncFS содержит конфигурационный файл «.encfs%» (где % — номер версии. Когда шифрование завершилось, обращаться к файлам можно используя каталог crypt).

EncFS поддерживает основную семантику файловой системы за исключением того что переименование директории вызывает обновление значения времени изменения в содержащихся в ней файлах и не разрешены жёсткие ссылки, так как данные из файла привязаны к имени файла. Использование заключается в создании зашифрованных каталогов, создаётся реальный каталог со всеми файлами, для примера, при обращении к этим каталогом следует убедиться, что используются абсолютные пути.

EncFS имеет ряд преимуществ над другими системами шифрования разделов жёсткого диска, потому что каждый файл отдельно шифруется и сохраняется как обычный файл. Занимаемое «томами» EncFS дисковое пространство не фиксировано, оно растёт и уменьшается в зависимости от изменений количества и размера зашифрованных файлов. Некоторые директории в директории-точке монтирования могут физически находится на различных устройствах. Средства резервного копирования могут обновлять только те файлы, которые изменились в исходной директории, а не всю директорию.

Тома EncFS не могут быть отформатированы под произвольную файловую систему, они сохраняют особенности и ограничения файловой системы содержащей директорию-источник. Фрагментация зашифрованного тома вызывает фрагментацию файловой системы содержащей директорию-источник. Каждый пользователь, имеющий доступ к директории-источнику, способен видеть количество файлов в зашифрованной файловой системе, какие права они имеют, их приблизительный размер, приблизительную длину имени и дату последнего доступа или изменения.

При создании нового EncFS каталога доступны различные опции, можно использовать любые алгоритмы шифрования, которые можно найти в системе (обычно доступны Blowfish и AES), если алгоритм шифрования позволяет выбрать длину ключа, это можно сделать и при использовании его в EncFS. Каждый файл шифруется поблочно и эта опция позволяет выбрать размер блока. При чтении хотя бы одного байта из зашифрованного файла, расшифровывается весь блок. Также при записи, блок сначала расшифровывается целиком, а потом зашифровывается обратно, по умолчанию размер блока равен 512, чего достаточно в большинстве случаев.

В отличие от содержимого зашифрованных файлов, имена файлов могут быть зашифрованы блочным или поточным шифром. Блочный шифр позволяет скрывать точную длину имен файлов, тогда как поточный показывает её точь-в-точь, экономя при этом место на носителе (хоть и незначительное). Цепи полных путей файлов позволяет шифровать одинаковые имена файлов, находящихся в разных директориях, по-разному, исходя из полного пути к файлу. Если родительская директория будет переименована, то все нижележащие файлы и директории, будут также переименованы. Это может быть довольно затратной операцией, поэтому не рекомендуется использовать эту опцию, если предполагается частое переименование директорий большой вложенности.

Если включена опция "Инициирующий вектор для файлов", то каждый файл шифруется с произвольным 8-байтовым инициирующим вектором, который располагается внутри зашифрованного файла. Если опция отключена, то каждый файл шифруется одним и тем же инициирующим вектором, который может сделать ключ менее стойким к взлому. Включение этой опции делает файловую систему более защищённой ценой добавления всего лишь 8 байт к каждому файлу. Внешние цепи инициирующих векторов позволяют шифровать содержимое одинаковых блоков различных файлов по-разному, исходя из полного пути к файлу, соответственно, изменение пути к файлу будет менять и его зашифрованное содержимое.

Опция "Block MAC headers" позволяет хранить контрольную сумму каждого зашифрованного блока, чтобы повреждение или модификация зашифрованного файла могли быть детектированы EncFS (контрольная сумма — это 8 байт, добавляемых к каждому блоку). Можно использовать ещё 8 дополнительных произвольных байтов, чтобы два одинаковых открытых блока имели разную контрольную сумму. Опция накладывает дополнительные расходы на CPU, так как каждый блок должен быть проверен на соответствие своей контрольной сумме при каждом чтении или записи.

Поддерживается авторазмонтирование после определённого времени не использования (простоя), если зашифрованная файловая система не использовалась некоторое время (несколько минут), то она может быть автоматически размонтирована. Размонтирование не будет происходить, если открыт хотя бы один файл, даже на чтение.

При проведении сравнения EncFS с файловыми системами CryptoFS (также основанной на FUSE) и LUKS (реализованной на уровне ядра), файловые системы (CryptoFS и EncFS) показали лучшую производительность при размере файла и записи, близком к «родному» размеру страницы Linux-систем (4096 кбайт). Результаты обеих userspace-систем существенно отстают от результатов шифрования LUKS, как и предполагалось, использование различных абстракций FUSE и криптографических систем налагает дополнительную задержку на все операции чтения и записи. Однако, производительность EncFS оказалась несколько выше производительности CryptoFS.

Лицензия: GNU GPL

Домашняя страница

Автор: AUNA
Еще записи по теме
Vifm (Vi File Manager)
Vifm (Vi File Manager)
qshutdown
qshutdown
Zenwalk установка приложений. Часть №1
Zenwalk установка приложений. Часть №1
pidstat
pidstat
FreeArc
FreeArc
ObKey (Openbox Key Editor)
ObKey (Openbox Key Editor)
Оставьте комментарий!

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)

Рубрики
  • Hовости
  • Изучаем Linux
  • Обзоры Linux ПО
    • Hужное/полезное
    • Аудио и видео ПО
    • Графика
    • Офисное ПО
    • Интернет ПО
    • Образовательные
    • Игры
    • Администрирование
    • Системные утилиты
    • Прочие
    • Shareware / Demo
  • Дистрибутивы
  • Дополнительные материалы
Последние комментарии
AbiWord
  • Святой_Мученик_Linux » Некорректно отображает картинки в майкросовтовски х файлах doc. Картинки позиционируются одна на другую, поверх текста. В...
  • vs » К сожалению, AbiWord давно протух и толку от него ровно 0. Даже больше вреда. Сейчас...
tarsnap
  • Анонимус » В тексте опечатка "для использования для использования"
DarGUI / KDar
  • WinGamer » Можно ли забекапить всю систему windows этим архиватором?
cfiles
  • Дмитрий » так эт самое, а как например переименовать папку?
Profanity
  • zon » проше научится свой клиент написать чем разобратся куда что клацать для отправки получения месаг.
  • vovans » Тут не нужно ничего "клацать". Достаточно пару раз на хоткеи посмотреть.
noteshrink
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /noteshrink-c/ releases
Page dewarp
  • Аноним » Теперь есть плюсовая (не пайтон) версия: //github. com/ ImageProcessing - ElectronicPublications /pagedewarp/ releases
Strawberry Music Player
  • Rododendron » А как добавить радиостанции в плеер? Нигде найти не могу.
Форум
[18/11/2022 11:54:52]
vscode and c/c++
[31/08/2022 12:25:53]
Tor Browser
[26/08/2022 07:57:14]
Музыкальный калейдоскоп
[22/05/2022 15:45:40]
Стратегии RTS
[30/03/2022 09:05:20]
Заметки с синхронизацией
[01/03/2022 20:15:05]
Говорильня (дискуссионный клуб)
[13/02/2022 11:44:28]
[РЕШЕНО] права на запись в примонтированный образ диска (raw.img)
[07/02/2022 13:22:01]
Конвертировать текст набаранный в неправильной раскладке
[04/02/2022 20:35:22]
Редактор тегов
Облако меток
2D338 3D241 ALSA68 ASCII120 Android1 Arch Linux38 Audio416 Backup80 Benchmark78 Bluetooth2 C++969 CD48 Console1318 DJ-система17 DVD47 Debian28 DjVu22 Enlightenment19 FFmpeg191 FLTK29 FPS40 FREE155 FTP18 FVWM21 Fluxbox40 GIMP24 GNU26 GPS22 GTK1302 GUI801 Gambas11 Games686 Gentoo3 Gnome349 Gstreamer133 HDD122 HDR7 HTML62 Hex-редактор14 ICQ17 IP-сети25 IP-телефон22 IRC31 ISO39 IceWM22 ImageMagick56 JACK99 Jabber35 Java308 JavaScript115 KDE209 LAN29 LXDE37 LaTeX66 Live-CD70 Live-DVD55 Live-USB53 Lua61 MATE32 MEncoder31 MIDI91 MMORPG12 Mail42 Markdown53 Mono53 Mplayer75 MySQL2 OSS9 Open Source14 OpenGL301 Openbox89 P2P51 PDF133 PHP12 Pascal17 Perl102 Phonon27 PulseAudio17 Python759 QT894 RAW34 RPG101 RSS53 RTS42 Roguelike70 Ruby19 Rust15 SDL312 SVG39 Screencast32 Screenshot61 Script78 Slackware66 TOR17 TOX3 Tk39 Torrent67 Ubuntu69 VLC16 Vala64 Web629 WebKit72 WebUI34 WiFi47 Window Maker16 Wine8 XMPP35 Xfce70 Xine14 YouTube80 video4linux27 wxWidgets108 Автоматизация31 Администрирование335 Анонимная сеть47 Антивирус14 Апплет120 Аркада235 Архиватор11 Астрономия36 Аудио конвертер70 Аудио редактор50 Аудиоплеер184 Безопасность243 Бизнес-приложение4 Браузер87 Бродилка203 Бухгалтерия11 Веб-камера36 Видео148
© Zen Way, 2023. Работает на MaxSite CMS | Время: 0.1504 | SQL: 15 | Память: 8.76MB | Вход