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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:encfs_cloud [2013/12/01 22:14]
[Замечания]
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
Строка 8: Строка 8:
 ======Создание необходимых каталогов===== ======Создание необходимых каталогов=====
 Создадим в каталоге пользователя директорию ~/<​cloud>/​.private,​ в которой будут храниться данные в зашифрованном виде, и точку монтирования шифрованной файловой системы ~/private: Создадим в каталоге пользователя директорию ~/<​cloud>/​.private,​ в которой будут храниться данные в зашифрованном виде, и точку монтирования шифрованной файловой системы ~/private:
-<code bash>​mkdir ~/<​cloud>/​.private ~/​private</​code>​+<code bash>​mkdir ​-p ~/<​cloud>/​.private ~/​private</​code>​
 где <​cloud>​ - ваше название каталога который настроен для синхронизации облака. где <​cloud>​ - ваше название каталога который настроен для синхронизации облака.
 Названия каталогов конечно могут быть своими,​ но для простоты последующей настройки советую назвать их именно так. Названия каталогов конечно могут быть своими,​ но для простоты последующей настройки советую назвать их именно так.
 ======Создаем шифрованную файловую систему EncFS===== ======Создаем шифрованную файловую систему EncFS=====
 Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов:​ Создаем шифрованную файловую систему EncFS для уже созданных нами каталогов:​
-<code bash>​encfs ~/<code>/​.private ~/​private</​code>​+<code bash>​encfs ~/<cloud>/​.private ~/​private</​code>​
 в процессе создания выбираем режим эксперта:​ "​x"​ - это для того что бы иметь возможность выбрать алгоритм шифрования имен "​Null"​ - таким образом,​ файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?​) FIXME в процессе создания выбираем режим эксперта:​ "​x"​ - это для того что бы иметь возможность выбрать алгоритм шифрования имен "​Null"​ - таким образом,​ файлы в облаке будут иметь привычные имена и не будут пересинхронизироваться при использовании на разных компьютерах.(?​) FIXME
  
Строка 29: Строка 29:
 Пути могут быть как относительно домашнего каталога,​ так и полные. Пути могут быть как относительно домашнего каталога,​ так и полные.
  
 +Если синхронизируемые папки находятся вне домашнего каталога,​ то придётся вместо <<​*>>​ прописать имя (логин) пользователя:​
 +<code bash>​example_user /​mnt/<​cloud>/​.private /​home/​example_user/​private -v allow_other</​code>​
 2. Редактируем файл <</​etc/​fuse.conf>>:​ 2. Редактируем файл <</​etc/​fuse.conf>>:​
 <code bash>​sudo nano /​etc/​fuse.conf</​code>​ <code bash>​sudo nano /​etc/​fuse.conf</​code>​
Строка 36: Строка 38:
 <code bash>​sudo usermod -a -G fuse $USER</​code>​ <code bash>​sudo usermod -a -G fuse $USER</​code>​
 ======Использование===== ======Использование=====
-Теперь,​ всякий раз при запуске системы,​ данные из ~/<​cloud>/​.private должны ​монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные. ​+Теперь,​ всякий раз при запуске системы,​ данные из ~/<​cloud>/​.private ​будут монтироваться в ~/private в расшифрованном виде. Пользователь должен работать с файлами расположенными именно в каталоге ~/private. Каталог c шифрованными данными сознательно сделан скрытым (в названии впереди добавлена точка) что бы случайно не ввести туда данные. ​ 
 +======Настройка синхронизации с другими компьютерами===== 
 +При настройке синхронизации с другим компьютером сначала настраиваем синхронизацию с облаком,​ синхронизируем все файлы и только затем настраиваем EncFS. Поскольку,​ файл <<​.encfs6.xml>>​ уже будет на месте, программа EncFS, при правильном указании каталогов,​ должна спросить у вас только пароль. 
 +<note warning>​Будьте готовы к тому, что при неправильных действиях вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех связанных с ним компьютерах.</​note>​
 ======Замечания===== ======Замечания=====
-<note warning>​0При настройке синхронизации шифрованной системы EncFS с новым компьютером на котором уже была настроена синхронизация с данным ​облаком, будьте готовы к тому что вновь созданный пустой каталог может привести к опустошению содержимого соответствующего каталога в облаке и на всех ​связанных ​с ним компьютерах. ​Что бы этого ​не произошлонадо ....  FIXME</note+  - Если включен автологин в систему в файле ​<</​etc/​lightdm/​lightdm.conf>>,​ то монтирование шифрованного каталога в <<​~/​private>>​ автоматически осуществляться не будет. Оно ​и понятно. Но не сразу ;-) 
-1. Если включен автологин в систему в файле <</etc/lightdm/lightdm.conf>>, то монтирование шифрованного каталога ​в <<​~/​private>>​ автоматически осуществляться не будет. Оно и понятно. Но не сразу ​;-)+  - В 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>​ 
 + 
 +======Теперь о реверсе===== 
 +Хранение локальных файлов в шифрованном виде может быть нецелесообразным, например, если домашний каталог и так шифруется,​ или, как у менязашифрован весь корень, или же вы вообще не собираетесь шифровать данные локально. Для ​такого случая есть интересная ​опция --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>​
  
-2. В ОС 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> ​ 
-3. В процессе настройки и эксплуатации может потребоваться отмонтировать шифрованную систему. Выполняется командой:​ 
-<code bash>​fusermount -u ~/​private</​code> ​ 
-4. При настройке синхронизации с другим компьютером скачиваем с облака через веб-интерфейс файл <<​encfs6.xml>>,​ добавляем к названию файла точку: <<​.encfs6.xml>>​ и заменяем им аналогичный файл в каталоге <<​~/<​cloud>/​.private>>,​ предварительно остановив синхронизацию и отмонтировав шифрованную файловую систему. 
-При настройке нового компьютера саму синхронизацию файлов следует запускать в последнюю очередь,​ иначе, например в случае с mail.ru, может потребоваться ещё удалять служебные файлы <<​.Mail.Ru_Cloud>>​ и <<​Mail.Ru_Cloud_$USER>>​ и перенастраивать синхронизацию с облаком. 
 ===== Ссылки ===== ===== Ссылки =====