Пользователь
0,0
рейтинг
25 декабря 2013 в 15:57

Администрирование → Обзор вариантов шифрования данных в облаках для Windows из песочницы

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 рано или поздно доведут до ума.
@Vnr
карма
15,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (27)

  • +5
    Спасибо за обзор. Акутально к 2тб от Mail.ru
    • +1
      Уже к двум? Я что-то пропустил?
      • +2
        Не-не, опечатка!
        • 0
          А жаль. :(
  • 0
    Как я понял, может возникнуть проблема с .encfs6.xml, если его клиент облака тоже синхронизирует. (Конечно, можно ему запретить, но кто знает, будет ли реально действовать запрет?)
    • 0
      Никаких проблем возникнуть не должно, т.к. при синхронизации .encfs6.xml расшифруется сам в себя.
  • +2
    А по мейлру какие могут быть рекомендации?
  • 0
    Из обзора больше всего приглянулся CarotDav.
    Но, учитывая проблемы с webdav у Майл.ру-шного облака, не глючит ли данный клиент при работе с ним?
    • 0
      2 дня назад при снятой галочке «Don't update property» c mail.ru работал нормально. Сейчас, похоже, webdav они отключили: с webdav.cloud.mail.ru идет 301 Redirect на cloud.mail.ru.
      Поэтому из предложенных решений можно использовать первые 3 пункта, скармливая официальному клиенту mail.ru зашифрованные папку или диск.
  • –1
    Есть продвинутый вариант encfs4win — boxcryptor. Имеется бесплатная версия, которой хватает на все. Есть версия под андройд. Пользуюсь, доволен.
    • +1
      Boxcryptor никоим образом не связан с encfs. Реализация под windows использует Microsoft CryptoAPI.
  • +1
    Отсутствие доступа с мобильных устройств сильно снижает комфорт использования. А на больших устройствах можно бесплатно воспользоваться всяким разным типа WebDAV, который с помощью некоторых в свою очередь бесплатных программ тоже подцепят его как папочку или диск. Или с некоторых пор даже Bittorrent Sync. Всё бесплатно и объёмы все ваши.
    Если вы не хотите делиться информацией о себе (я тоже не хочу), то имеет смысл ничего в облако не лить из личного. Я лью немножечко личного — фотки с телефона автоматом сами туда прыгают. Но тоже можно отключить. Базы с паролями тоже там храню, чтобы если что, в отъезде можно было работать, если приспичит. Но они зашифрованы.

    В общем, я за битсинк. Время синхронизации в среднем секунд 30, не считая времени пересылки.
  • 0
    > локальные данные остаются нетронутыми, а шифруется только их отображение на виртуальном диске

    Не понял этот пункт. Получается, на жестком диске храниться две копии данных: локальная рабочая не зашифрованная копия, и пофайлово зашифрованные данные?
    • +1
      На сколько я понял, нет. Одна из копий данных — «виртуальная». То есть физически не существует. И можно выбирать какой части не существует, а какая есть: зашифрованная или нет. Что-то типа subst но с шифрованием/дешифрованием «на-лету».
      • 0
        Понятно, интересный вариант получается.
  • +1
    При размерах места в mail.ru прямо просится возможность делать к ним копию чуть не всего жесткого диска, с возможностью восстановить потом диск на голом железе.

    Тут либо возиться пофайлово (и отслеживать особенности ФС и разметки, такие, как файловые потоки, например, или где и как лежит загрузчик), либо поблочно (в идеале — только занятые блоки, конечно), и тогда ОСь, в принципе, уже не важна.

    Так вот эту копию без шифрования копировать — занятие либо для неслабонервных, либо для очень беспечных. А шифровать, получается, и нечем: нужна программа, подобная Ghost, но умеющая WebDav (что универчальнее в смысле выбора облака для хранения; впрочем, непонятно, WebDav уже в mail.ru умер, или это просто его колбасит из-за бета-статуса) и/или «родные» протоколы каждого из облаков (это, по идее, обещает более четкое общение с облаком, но универсальность теряем). При таком раскладе, конечно, хранить несколько копий бекапа смысла нет (ну, только если сохранять целый образ: представил, как выглядит череда томов «мой ПК на 21.12.13», «мой ПК на 28.12.13» и т.д. — но 1 Тб на такое не хватит).

    Пока вариант один: грузиться в LiveCD, сооружать велосипед из 1) виртуальной ФС с шифрованием на WebDav и 2) бекапера целого диска, и указания пункту второму делать копию диска на ФС пункта первого. Копирование времени сожрет — жуть, но как вариант… По крайней мере, подобных готовых решений я не встречал.
    • +1
      Посмотрите Acronis. Насчет стойкости шифрования там не знаю, а вот закрыть паролем образ он позволяет.
      Он, кстати, движется в сторону облачного хранения. Пока правда только свое облако использует, но если разработчики добавят вариант выбора любого облака в качестве места хранения, то это будет киллер фича.
      • 0
        Киллер-фича будет, если кто-то (Акронис тот же) даст 1 Тб в своем облаке навечно и бесплатно.

        Потому что я верю техникам mail.ru, но не верю менеджменту. Выпилят они облако через годик, и пофиг, что обещали «навечно» — и плакали бекапы :( А платить по тарифам dropbox за 1 Тб что-то не очень радует, я уж проще в www.backblaze.com/ пойду. Давно бы уже их использовал, но все же гнать данные через океан — как-то идеологически неверно, да и скорость при проверке была маловата.
        • 0
          Acronis архивы шифрует при помощи AES. А вот 1Тб облака стоит 24 т.р. в год :(
          Для домашних пользователей дают 5 гб бесплатно, Что является насмешкой над пользователями.

    • 0
      Такое ещё просится у SkyDriv'а, также, как это сделал Apple.
  • 0
    Насколько я понял, что в данном варианте все-равно используется клиент майл ру, а кто даст гарантию, что он в определенный момент не начнет внезапно синхронизировать «иные» папочки на компьютере, а не только явно указанные.

    Если уж параноить, то по полной, например отдельная за-tor-енная тачка, с доверенным софтом и os, с шифрование всего и вся без исключения.
  • 0
    Объясните пожалуйста, а зачем вам --reverse с encfs и почему бы просто не монтировать зашифрованный каталог из «облака» напрямую? Плюс на windows можно использовать Boxcryptor Classic как более удобный клиент encfs, — бесплатная версия поддерживает ограниченное подмножество возможностей encfs (нет поддержки шифрования имен, и только 1 «контейнер» за раз можно замонтировать), платная версия — 100% совместима с encfs, так что можно использовать как замену консольному encfs.

    Сам подобным образом шифрую данные в dropbox-е, отлично работает. На винде — BoxCryptor Classic, на Linux-е — encfs к тому-же каталогу, на андроиде — cryptonite как реализация encfs, либо BoxCryptor Classic опять-же, когда нужно быстро просто один файл посмотреть, и не нужно монтировать на долговременное использование.
    • +1
      Разница в скорости. В случае --reverse вы будите работать с файлами напрямую, а не через прокладку. Думаю, это может быть полезно для работы с видео и прочими тяжёлыми файлами. А уж клиент синхронизации будет работать с зашифрованным файлом и ему потери в скорости доступа менее существенны.
    • 0
      Сейчас попробовал смонитровать непосредственно из облака.
      net use X: \\webdav.yandex.ru@SSL\DavWWWRoot /USER:xxxx@yandex.ru *
      encfs.exe X:\Crypted\  Y:

      Ничего хорошего не получилось, копирование зависло, а потом encfs закрэшилась. Думаю, из-за сетевых таймаутов или кривой реализации webdav клиента Windows.

      " --reverse" мне нужен, т.к. я не хочу шифровать локальные данные. Для этого есть средства лучше и быстрее, тот же TrueCrypt.

      Boxcryptor — вариант неплохой, только я не уверен, что он полностью совместим с encfs. Нашел на их сайте такое — This version brings some “invisible” changes, most notably the replacement of EncFS with our own BoxCryptorFS.
      • 0
        Про BoxCryptor — там два разных продукта, на самом деле, а не один. BoxCryptor и BoxCryptor Classic. Между собой они не совместимы, первый использует свой формат, второй (classic) — совместим с encfs. Я говорил именно о classic. Его чуть сложнее найти у них на сайте, но он все так же поддерживатся и в том числе продается, если нужна полная версия. Разработчики вроде обещали, что classic никогда не забросят в плане поддержки.
  • 0
    Увы, так и не получилось подружить опцию reverse с Яндекс-диском.

    Для начала попробовал совместить шифруемые и нешифруемые данные — в синхронизируемой папке сделал две разных подпапки, в одну кидаю Junction на папки, которые не надо шифровать (работает отлично), во вторую собрался подключать полученный виртуальный диск.
    Вот только не нашёл, как узнать GUID этого виртуального тома, чтобы скормить его команде MOUNTVOL.

    Пошёл кривым окольным путём. Создал в шифруемой папке служебную папку, в которую и перенес Junction'ы. А на ту, что получилась в корне X:, сделал Junction в синхронизируемой папке. Клиент Я.Д, подумав, ругнулся на все подпапки «ошибка чтения» (проверил — даже если вместо создания Junction просто скопировать папку — всё равно не осиливает).

    Ладно, думаю, без нешифрованных файлов можно и обойтись (хотя лишаешься функции файлообменника).

    Задал в качестве синхронизируемой папки корень зашифрованного диска (X:/) — клиент заклинило в стадии «Обработка данных».
    Я подумал — а ведь он должен в указанную папку свои служебные файлы положить. Смотрю — никаких следов.
    Попробовал вручную скопировать файл на этот диск — фигвам. Что фар, что эксплорер сообщают «Параметр задан неверно».
    Это ж что получается — если даже на этой машине таки залить в облако зашифрованные файлы, то при попытке их вытащить на другой машине клиент не сможет их записать на виртуальный диск?

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