Используем EncFS для "прозрачного" шифрования данных в облаках Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:encfs_cloud [2013/12/02 11:44]
[Замечания]
wiki:encfs_cloud [2017/11/09 17:03] (текущий)
[Теперь о реверсе]
Строка 1: Строка 1:
 ====== Используем EncFS для "​прозрачного"​ шифрования данных в облаках ====== ====== Используем EncFS для "​прозрачного"​ шифрования данных в облаках ======
 {{:​wiki:​angel_penguin.png?​200 |}}Облачные хранилища становятся всё доступней,​ однако многие справедливо опасаются держать в них приватные данные. Описываемый в статье способ шифрует данные не только в облаке,​ но и расположенные локально. Для разблокировки шифрованных данных будет использоваться пароль пользователя операционной системы. Это нужно учитывать при смене пароля,​ а также для обеспечения возможной синхронизации с другими своими компьютерами. {{:​wiki:​angel_penguin.png?​200 |}}Облачные хранилища становятся всё доступней,​ однако многие справедливо опасаются держать в них приватные данные. Описываемый в статье способ шифрует данные не только в облаке,​ но и расположенные локально. Для разблокировки шифрованных данных будет использоваться пароль пользователя операционной системы. Это нужно учитывать при смене пароля,​ а также для обеспечения возможной синхронизации с другими своими компьютерами.
-Для решения нашей задачи используем программу EncFS (Шифрованная виртуальная файловая система) и пакет libpam-encfs (модуль для автоматического монтирования файловых систем EncFS использущий механизм модуля PAM)+Для решения нашей задачи используем программу EncFS (Шифрованная виртуальная файловая система) и пакет libpam-encfs (модуль для автоматического монтирования файловых систем EncFS использующий механизм модуля PAM)
  
 Всё описанное ниже тестировалось на ОБЛАКО@mail.ru Всё описанное ниже тестировалось на ОБЛАКО@mail.ru
Строка 13: Строка 13:
 ======Создаем шифрованную файловую систему EncFS===== ======Создаем шифрованную файловую систему EncFS=====
 Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов:​ Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов:​
-<code bash>​encfs ~/<code>/​.private ~/​private</​code>​+<code bash>​encfs ~/<cloud>/​.private ~/​private</​code>​
 в процессе создания выбираем режим эксперта:​ "​x"​ - это для того что бы иметь возможность выбрать алгоритм шифрования имен "​Null"​ - таким образом,​ файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?​) FIXME в процессе создания выбираем режим эксперта:​ "​x"​ - это для того что бы иметь возможность выбрать алгоритм шифрования имен "​Null"​ - таким образом,​ файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?​) FIXME
  
Строка 40: Строка 40:
 Теперь,​ всякий раз при запуске системы,​ данные из ~/<​cloud>/​.private будут монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные. ​ Теперь,​ всякий раз при запуске системы,​ данные из ~/<​cloud>/​.private будут монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные. ​
 ======Настройка синхронизации с другими компьютерами===== ======Настройка синхронизации с другими компьютерами=====
-При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком,​ синхронизируем все файлы и только затем настраиваем EncFS. По скольку,​ файл <<​.encfs6.xml>>​ уже будет на месте, программа EncFS, при правильном указании каталогов,​ должна спросить у вас только пароль.+При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком,​ синхронизируем все файлы и только затем настраиваем EncFS. Поскольку,​ файл <<​.encfs6.xml>>​ уже будет на месте, программа EncFS, при правильном указании каталогов,​ должна спросить у вас только пароль.
 <note warning>​Будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.</​note>​ <note warning>​Будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.</​note>​
 ======Замечания===== ======Замечания=====
Строка 46: Строка 46:
   - В ubuntu при монтировании EncFS в файловом менеджере появляется съемное устройство <<​private>>​. А, допустим в Debian 7 XFCE, смонтированная система никак себя не обнаруживает. Об успешном монтировании можно судить или по наличию файла <<​.encfs6.xml>>​ в точке монтирования,​ или командами <code bash>df -h | grep encfs</​code>​ или <code bash>cat /etc/mtab | grep encfs</​code>​   - В ubuntu при монтировании EncFS в файловом менеджере появляется съемное устройство <<​private>>​. А, допустим в Debian 7 XFCE, смонтированная система никак себя не обнаруживает. Об успешном монтировании можно судить или по наличию файла <<​.encfs6.xml>>​ в точке монтирования,​ или командами <code bash>df -h | grep encfs</​code>​ или <code bash>cat /etc/mtab | grep encfs</​code>​
   - В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой:​ <code bash>​fusermount -u ~/​private</​code>​   - В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой:​ <code bash>​fusermount -u ~/​private</​code>​
 +
 +======Теперь о реверсе=====
 +Хранение локальных файлов в шифрованном виде может быть нецелесообразным,​ например,​ если домашний каталог и так шифруется,​ или, как у меня, зашифрован весь корень,​ или же вы вообще не собираетесь шифровать данные локально. Для такого случая есть интересная опция --reverse. Что бы её использовать меняем местами как в настройках,​ так и в голове понятия ​ SOURCE и  TARGET. Теперь источником будут обычные нешифрованные данные,​ а в точке монтирования ​ TARGET PATH будут шифрованные данные.
 +
 +Таким образом меняется команда создания шифрованной файловой системы:​
 +
 +<code bash>​encfs --reverse ~/private ~/<​cloud>/​.private</​code>​
 +
 +И строка в файле «/​etc/​security/​pam_encfs.conf» меняется соответственно:​
 +
 +<code bash>* private <​cloud>/​.private -v allow_other</​code>​
 +<note important>​Для расшифровки синхронизированных данных на другом (новом) компьютере необходимо хранить файл encfs6.xml из каталога с нешифрованными данными.</​note>​ После окончания синхронизации - загрузки всех шифрованных данных на новый компьютер,​ приостанавливаем синхронизацию. Расшифровываем данные с помощью файла encfs6.xml и пароля во временный каталог:​
 +<code bash>​ENCFS6_CONFIG=~/​temp_dir/​.encfs6.xml encfs ~/<​cloud>/​.private ~/​temp_dir/​private</​code>​
 +Копируем расшифрованные данные из временного каталога на своё постоянное место хранения:​
 +<code bash>cp -r ~/​temp_dir/​private ~/​private</​code>​
 +Очищаем каталог ~/<​cloud>/​.private от шифрованных данных любым известным вам способом. И создаем новую шифрованную файловую систему с использованием сохраненного файла encfs6.xml:
 +<code bash>​ENCFS6_CONFIG=~/​temp_dir/​.encfs6.xml encfs --reverse ~/private ~/<​cloud>/​.private</​code>​
 +Проверяем наличие шифрованных данных в нужном каталоге и возобновляем синхронизацию с облаком. ​
 +======Сведения о безопасности encfs=====
 +<note warning>​Согласно аудиту безопасности,​ выполненному Taylor Hornby (Defuse Security), текущая реализация Encfs уязвима или потенциально уязвима нескольким типам атак. Например,​ атакующий с правами чтения/​записи шифрованных данных может понизить стойкость шифрования последующих данных без уведомления законного пользователя,​ или может использовать временной анализ для получения информации.
 +
 +Пока эти проблемы не будут устранены,​ encfs не должна рассматриваться безопасной для важных данных в случаях,​ где эти атаки возможны.</​note>​
 +
 ===== Ссылки ===== ===== Ссылки =====