Pull to refresh

Обзор вариантов шифрования данных в облаках для Windows

Reading time 4 min
Views 114K
imageВ связи с недавней неожиданной радостью от халявного ТБ на Облаке Mail.ru, быстро сменившейся разочарованием после прочтения его лицензионного соглашения, я решил провести небольшое исследование способов шифрования данных в облаках для Windows и собрать все достойные внимания варианты в одном месте.

Входные требования следующие:
  • Облачный клиент не умеет синхронизировать файлы поблочно.
  • Метод шифрования должен обеспечить возможность быстрого доступа к любому файлу на облаке для его обновления или дешифровки без необходимости передачи больших объемов паразитных данных.



Выбранные требования отметают возможность использования криптоконтейнеров Truecrypt'a и многофайловых архивов. Какие же варианты остаются?

1) Самое очевидное — это проприетарные программы, позиционируемые как средство для шифрования данных в облаке. Например, Boxcryptor, Cloudfogger и иже с ними. Все они работают по одному принципу: пофайлово шифруют данные у вас на диске, а потом с помощью библиотек Dokan или Eldos CBFS создают их виртуальное расшифрованное представление. При локальной работе файлы прозрачно расшифровываются, а в облако синхронизируются зашифрованными.

Недостатки данного подхода:
  • проприетарное ПО для шифрования
  • бесплатные версии этих сервисов имеют те или иные ограничения
  • субъективно: недостаточная производительность, особенно при редактировании видео. К тому же, я использую TrueCrypt в режиме шифрования всего диска, и такой оверхед «шифрование в шифровании» выглядит нелепо.


2) Порт encfs для Windows — encfs4win.
Кроме открытых исходников, преимущество данного подхода в том, что encf4win поддерживает ключ --reverse. В reverse-режиме, в отличие от стандартного, локальные данные остаются нетронутыми, а шифруется только их отображение на виртуальном диске. Для работы encfs4win требуется установка библиотеки Dokan версии >0.6.

Точка монтирования папки с вашими файлами на виртуальный зашифрованный диск «X:» создаётся командой:
encfs.exe --reverse D:\Archive\  X:


В экспертном режиме настройки нужно выбрать шифровать ли имена файлов, а также изменить размер ключа шифрования с 192 на 256 бит. После успешного монтирования в папке-источнике появится конфигурационный файл ".encfs6.xml", сохраняем его.
Теперь можно запускать синхронизацию зашифрованного представления файлов на диске «X:» с облаком. Символические ссылки в папке-источнике вроде бы обрабатываются корректно.

Для расшифровки из облака на другом компьютере достаточно положить в любую папку сохраненный ".encfs6.xml" и смонтировать её командой:
encfs.exe --reverse E:\some_folder\  X:

Тогда любые файлы, скопированные из облака на диск «X:», будут автоматически дешифрованы в E:\some_folder\

Недостатки подхода:
  • недопиленность порта encfs4win и отсутствие вменяемого GUI .
  • невозможно корректно размонтировать зашифрованный том из консоли, только по 'Ctrl-Break'.
  • в --reverse режиме encfs не поддерживает «per file IV chaining», что ослабляет шифрование. Думаю, для домашнего резервирования это не страшно.


3) Локальное шифрование в пофайловые запароленные архивы и их последующая синхронизация с облаком. В автоматизации этого подхода может помочь, к примеру, утилита CryptSync.


Главный недостаток такого подхода в необходимости хранить две копии файлов на локальном диске.


Приведенные выше решения дают нам только зашифрованное представление данных. Дальнейшая синхронизация может осуществляться любимым webdav-клиентом, либо официальным клиентом облака (при отсутствии поддержки webdav). Ниже рассмотрим варианты «всё-в-одном».


4) Duplicati — это открытая кроссплатформенная программа для резервного копирования. Её killer-фича — возможность полноценных инкрементальных бэкапов непосредственно в облако. Поддерживаются Google Drive, Skydrive, Amazon S3, Rackspace, Webdav, SFTP, FTP. На выбор предлагается шифрование встроенной библиотекой SharpAESCrypt или средствами GnuPG. Подробнее о внутреннем устройстве программы.
Среди многочисленных плюшек Duplicati для нас также важна возможность быстрого восстановления отдельного файла из облака. Резервные копии при создании автоматически разбиваются на блоки размером 10 МБ. Поэтому при восстановлении одиночного файла нужно будет передать ограниченное количество блоков.

Кроме всего прочего, Duplicati полностью конфигурируема через командную строку и поддерживает портативный режим.

Недостатки использования Duplicati:
  • Специфический wizard-style GUI.
  • Невозможность обновления отдельного файла на облаке, кроме как путём создания новой инкрементальной итерации всего архива.
  • Неудобно и долго восстанавливать одиночные файлы из GUI, особенно после нескольких инкрементальных итераций и при большом размере блока.
  • Пока что не поддерживается мастер-пароль, все данные о подключениях к облачным сервисам сохраняются в БД Sqllite, зашифрованной стандартным паролем «Duplicati_Key_42».


5) Замечательный webdav (и не только!) клиент CarotDav. Написан на VB.NET и полностью свободен для использования и модификации. По информации с сайта разработчика исходный код может быть предоставлен по запросу. Список реализованных стандартов впечатляет. Кроме webdav-облаков, поддерживаются SkyDrive, Dropbox, GoogleDrive, Box, SugarSync и FTP(S). Есть портативный режим, конфигурация может быть защищена мастер-паролем.

Для начала шифрования в настройках нового подключения вводим пароль и выбираем «Escape string», сигнатуру, на основании которой CarotDav определяет, что файл в облаке зашифрован и его надо расшифровать.
image
Теперь все залитые через это подключение файлы будут автоматически зашифровываться, а при скачивании — расшифровываться.
image
image

Tip!
Для сохранения оригинальной даты модификации CarotDav создает метку CreationDate для каждого сохраняемого на webdav-сервере файла методом PROPPATCH. Некоторые облака имеют неполную реализацию webdav-протокола, для них надо поставить галочку «Don't update property» на вкладке «Advanced» настроек соединения.


Недостатки:
  • возможны ошибки при работе с некоторым webdav облаками, решением может стать увеличение timeout соединения.
  • замечены проблемы с кириллицей и очень медленная работа со skydrive.
  • однопанельный интерфейс и отсутствие поддержки командной строки.




Резюме:
К сожалению, идеального варианта я не нашел. Для архивирования проектов с большим количеством мелких файлов я остановился на Duplicati. Для резервирования медиа-файлов сейчас использую CarotDav в надежде, что Encfs4win рано или поздно доведут до ума.
Tags:
Hubs:
+49
Comments 27
Comments Comments 27

Articles