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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:encfs_cloud [2013/12/02 11:31]
[Использование]
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>​
 ======Замечания===== ======Замечания=====
   - Если включен автологин в систему в файле <</​etc/​lightdm/​lightdm.conf>>,​ то монтирование шифрованного каталога в <<​~/​private>>​ автоматически осуществляться не будет. Оно и понятно. Но не сразу ;-)   - Если включен автологин в систему в файле <</​etc/​lightdm/​lightdm.conf>>,​ то монтирование шифрованного каталога в <<​~/​private>>​ автоматически осуществляться не будет. Оно и понятно. Но не сразу ;-)
-  - В ОС Xubuntu 13.04 при монтировании EncFS в файловом менеджере ​Thunar ​появляется съемное устройство <<​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>​
-  - При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облакомсинхронизируем все файлы и только затем настраиваем ​EncFSПо скольку, файл <<.encfs6.xml>>​ уже будет на месте, программа ​EncFS, ​при правильном указании каталогов, должна спросить у вас только пароль. + 
-<note warning>При будьте готовы ​к тому, ​что при неправильных действиях вновь созданный ​пустой каталог может привести к опустошению содержимого ​соответствующего каталога в облаке и на всех связанных ​с ним компьютерах.</​note>​+======Теперь о реверсе===== 
 +Хранение локальных файлов в шифрованном виде может быть нецелесообразным, например, если домашний каталог и так шифруется, ​или, как у меня, зашифрован весь ​корень, или же вы вообще не собираетесь шифровать данные ​локально. Для такого случая есть интересная опция --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>​ 
 ===== Ссылки ===== ===== Ссылки =====