✔Облако под защитой. Тестируем Cryptomator и другие шифрующие ФС - «Новости»
Действительно конфиденциальные облака
Существуют облачные провайдеры, которые ничего не знают и не хотят знать о том, какой именно контент хранят на их серверах пользователи. Широко известен провайдер Mega, официальная политика которого такова: «Данные в сервисе Mega зашифрованы на стороне клиента с использованием алгоритма AES. Поскольку Mega не знает ключей шифрования загружаемых файлов, расшифровать и просмотреть их содержимое невозможно. Следовательно, компания Mega не может нести ответственность за содержимое загруженных файлов». В то же время Mega часто используют для того, чтобы поделиться файлами, для чего генерируется ссылка; в ссылке содержится ключ, позволяющий расшифровать содержимое файла. Это позволяет правообладателям отслеживать нелегальный контент и требовать у Mega его удалить.
Подведем итог. Популярные облачные провайдеры (Google, Apple, Microsoft, Dropbox, Amazon) согласны хранить твои файлы, фотографии и документы, и эти данные действительно зашифрованы; вопрос лишь в том, кто контролирует ключи шифрования. Для большей части данных ключи шифрования находятся в руках у самих облачных сервисов, а это значит, что доступ к содержимому как для них самих, так и для взломщика, получившего доступ к твоим учетным данным, совершенно прозрачен. Именно эту проблему — контроль ключей шифрования — мы и будем решать.
Вариант решения: костыль OneDrive Personal Vault
OneDrive Personal Vault — в переводе названный «личный сейф OneDrive» — дополнительный уровень защиты, который Microsoft предлагает подписчикам на Office 365 (без подписки в «личный сейф» можно поместить только три файла). В рекламе говорится: «Личный сейф OneDrive защищен средствами проверки личности, благодаря чему вы можете сохранять в облаке самые важные файлы, не беспокоясь о возможности несанкционированного доступа к ним». Microsoft предлагает хранить в нем самые важные документы — «цифровые копии своего паспорта, водительского удостоверения и других важных документов». Обещается «повышенная безопасность»: по мнению компании, «личный сейф усиливает и без того надежную защиту OneDrive с помощью шифрования файлов, отслеживания подозрительных действий, поиска вирусов, обнаружения программ‑шантажистов и восстановления данных».
Очень много красивых слов, которые вызывают доверие и желание защитить важные данные. Фактически же нам предлагается обычная «запароленная папка», для доступа к которой тебе потребуется ввести пароль от учетной записи (тот же самый пароль, который используется для доступа к основному хранилищу OneDrive) и пройти проверку по методу двухфакторной аутентификации (ту же самую проверку, которая нужна… ну, ты понял).
Мы исследовали безопасность «личного сейфа OneDrive» и не обнаружили никаких дополнительных механизмов защиты или контроля доступа. В статье «Анализ данных из учетных записей Microsoft» есть упоминание о том, что для входа в «сейф» не требуется даже повторной авторизации, достаточно обычного токена доступа в OneDrive.
Вывод: «личный сейф OneDrive» имеет отношение к маркетингу, рекламе и зарабатыванию денег, но не имеет ни малейшего отношения к реальной безопасности твоих данных. Все файлы, которые ты поместишь в «личный сейф», будут точно так же доступны и Microsoft, и любому злоумышленнику, получившему доступ к твоей учетной записи.
Вариант решения: криптоконтейнер в облаке
До появления криптографических файловых систем широко известным в узких кругах был такой вариант защиты данных от любопытных глаз: данные сохраняют внутрь файла криптоконтейнера, который, в свою очередь, помещают в синхронизируемую с облаком папку. Этот вариант дает действительно непробиваемую защиту, однако и недостатков у него хватает.
Нестабильная синхронизация — основная проблема этого решения. Как правило, файл, содержащий криптоконтейнер, достаточно объемный, и синхронизировать его нужно не целиком, а по блокам. В то же время блочная синхронизация появилась в облачных сервисах не так давно, причем в некоторых из них она доступна только для платных пользователей. В отсутствие блочной синхронизации при каждом добавлении или изменении файла в криптоконтейнере весь контейнер целиком должен будет синхронизироваться с облаком; это медленно и неудобно.
Вторая проблема — неудобство использования на нескольких устройствах: подключить криптоконтейнер в облаке к смартфону или планшету будет трудно, а пользоваться им возможно только в ручном режиме. В этот же пункт запишем неудобство инкрементного резервного копирования контейнера.
Наконец, максимальный размер файла в разных облачных сервисах также ограничен и варьируется между 5 Гбайт и 250 Гбайт в зависимости от типа учетной записи и, собственно, провайдера.
Все эти проблемы решает шифрование каждого файла в отдельности — и именно этим занимаются криптографические файловые системы.
Правильный вариант: криптографические файловые системы
Решить проблему приватности и безопасности сохраняемых в облаке (и не только) файлов позволяет класс продуктов, который можно охарактеризовать термином «криптографические файловые системы». В отличие от шифрования диска (к примеру, LUKS, VeraCrypt или BitLocker), криптографические файловые системы шифруют и расшифровывают данные «на лету» на уровне отдельных файлов и папок, сохраняя при этом прозрачность доступа для самого пользователя. Цель и смысл существования криптографических файловых систем — защитить файлы от несанкционированного доступа, если злоумышленник получит физический доступ к твоему диску либо взломает твою облачную учетную запись.
С целью синхронизации в облако подойдет далеко не каждая криптографическая файловая система. Так, популярная среди пользователей Linux система eCryptFS (о ней мы еще поговорим) поддерживается только в Linux; о существовании клиентов для Windows, а тем более для мобильных платформ мне неизвестно. Файловая система EncFS, работающая по принципу FUSE, обладает чуть более широкой совместимостью, но удобной синхронизации с облаком с мобильных устройств не будет все равно. Схожими недостатками обладают и другие файловые системы FUSE, которых для Linux существует довольно много. Эти ограничения обходят, пожалуй, только два проекта: бесплатный (для десктопных ОС), доступный в исходных кодах Cryptomator и платный, доступный по подписке Boxcryptor.
Cryptomator или eCryptFS?
Подойдет ли eCryptFS, если тебе не нужна поддержка других ОС? Или же выбор в любом случае делать в пользу Cryptomator? Это вопрос спорный, у той и другой ФС есть сильные и слабые стороны.
Совместимость
Как уже упоминалось, eCryptFS есть в Linux и отсутствует на других платформах. Cryptomator доступен практически на всех распространенных десктопных и мобильных платформах.
Ограничения на длину имен файлов и папок
В большинстве современных ОС ты можешь использовать имена файлов длиной до 255 знаков ASCII (при использовании символов Unicode — меньше). Криптографические файловые системы могут либо оставить имена как есть (злоумышленник увидит названия файлов), либо зашифровать имена файлов и папок (при этом максимальная длина имени файла будет меньше; для eCryptFS — 143 символа ASCII), либо использовать дополнительные ухищрения, сохраняя оригинальное длинное имя файла в метаданных шифрования или, как делает Cryptomator, в отдельном файле. Забегая вперед, добавлю, что файлы с длинными именами Cryptomator помещает в отдельные папки, в которых создает файлы contents.c9r (содержимое файла) и name.c9s (его имя в зашифрованном виде).
Скорость работы
Скорость доступа к зашифрованным папкам будет ниже, чем к обычным; это в какой‑то мере ожидаемо. Однако в большинстве современных криптографических файловых систем скорость доступа к зашифрованным файлам падает катастрофически. Это связано не столько с самим фактом шифрования (аппаратное ускорение AES практически не замедляет работу), сколько с накладными расходами. Для каждого файла нужно создать заголовок (eCryptFS) или файл‑компаньон (Cryptomator), в котором будут сохранены метаданные шифрования; когда его открываешь, соответственно, этот заголовок или отдельный файл нужно прочитать и обработать. Если речь идет об одном крупном файле — падение производительности относительно невелико, но при работе с множеством мелких (а фотографии и документы относятся как раз к таким) скорость доступа падает в разы. От этого страдают как eCryptFS, так и Cryptomator; последний даже в несколько большей степени, если речь идет о множестве мелких файлов с длинными именами (напомню, для таких файлов создаются отдельные папки и файлы‑компаньоны).
Возможность сменить пароль
В той реализации шифрования eCryptFS, которую используют популярные сетевые хранилища (в частности, Synology) невозможно быстро (без перешифровки файлов) сменить пароль шифрования. В то же время в самой файловой системе механизм смены пароля предусмотрен; через wrapped-passphrase пароль шифрования всей папки можно успешно сменить. Производители сетевых хранилищ не используют этот механизм. Так, в Synology DSM в качестве ключа шифрования берется пароль пользователя, а в качестве wrapping passphrase — фиксированный пароль 1Cryptomator CLI, распространяемый в виде файла JAR, для запуска которого требуется уже установленная Java 11. Насколько удобно будет использовать такой инструмент в скриптах и на виртуальных серверах «Амазона», можешь представить сам.
Особенности Cryptomator
Создание зашифрованной папки в Cryptomator выглядит предельно просто. Вводим название контейнера, выбираем место (по умолчанию предлагается выбор между облачными провайдерами — в моем случае это Dropbox и OneDrive, но поддерживаются и iCloud Drive, и Google Drive — и любой папкой на диске) и указываем пароль. Создаем (или не создаем) ключ восстановления.
Все, контейнер (зашифрованный мастер‑ключ и небольшой файл с метаданными) создан. Теперь его можно смонтировать. Для замеров производительности я использовал локальную папку.
Если создать зашифрованную папку в Dropbox, то в облаке будет примерно следующее.
Эти файлы позволят смонтировать папку на других устройствах, в том числе на смартфоне, если ты установишь туда приложение Cryptomator. Сам же облачный сервис твоих файлов не увидит — точнее, увидит их зашифрованные версии.
Собственно, это то, ради чего все и затевалось: Dropbox хранит твои файлы, но не может их расшифровать. Ты же сможешь установить на телефон приложение Cryptomator (приложение Dropbox для доступа к зашифрованной папке не нужно, достаточно создать привязку в приложении Cryptomator), ввести пароль от зашифрованной папки — и данные станут тебе доступны.
О том, как привязать и использовать зашифрованные папки с облачными провайдерами, рассказано в документации. Выглядит это примерно как на скриншоте.
Функций у Cryptomator на мобильных устройствах не так много; например, в приложении для iOS нет штатного способа настроить синхронизацию фотоальбома с зашифрованной папкой (в приложении для Android такая возможность присутствует). Тем не менее доступ к важным файлам сохраняется, а на компьютере таких ограничений нет. Если же ты хочешь использовать сквозное шифрование для синхронизации фотографий — посмотри в сторону сервиса Mega.
Интересная особенность Cryptomator — обфускация структуры каталогов. Частично это чисто техническое решение (для файлов с длинными именами создаются отдельные каталоги с двумя файлами — содержимым зашифрованного файла и его зашифрованным именем), отчасти же сделано сознательно, чтобы затруднить возможность идентификации по числу и размеру файлов в каталоге. Я протестировал эту возможность; выглядит она так.
Содержимое незашифрованной папки:
| WELCOME.rtf
|
---2016
+---07
|
IMG_2016_07_01_16_14_5600.jpg
|
IMG_2016_07_01_16_11_3900.jpg
|
IMG_2016_07_01_16_11_4400.jpg
|
IMG_2016_07_01_16_10_0700.jpg
|
IMG_2016_07_01_16_14_1500.jpg
|
+---01
|
IMG_2016_01_03_12_22_0900.jpg
|
IMG_2016_01_03_12_22_0200.jpg
|
IMG_2016_01_03_12_22_1100.jpg
|
IMG_2016_01_03_12_21_5300.jpg
|
+---04
|
IMG_2016_04_21_16_04_1500.jpg
|
+---05
|
IMG_2016_05_01_14_34_0600.jpg
|
IMG_2016_05_01_14_34_1000.jpg
|
IMG_2016_05_01_14_34_0200.jpg
|
---06
IMG_2016_06_03_18_01_0200.jpg
IMG_2016_06_03_18_00_4000.jpg
А вот как выглядит та же папка, но в зашифрованном виде (здесь приведена только часть листинга):
| IMPORTANT.rtf
| masterkey.cryptomator
| vault.cryptomator
|
---d
+---4H
|
---TD3CWCFSTS7VUHGVTBDFPQZVO223U3
|
+---0g9J-_jgFO_kMhu1urXobjwY.c9r
|
|
dir.c9r
|
|
|
+---cqTUhWxKgUxOKYRyEaLj5HRE.c9r
|
|
dir.c9r
|
|
|
+---m-DSWVeYyPogxkeGjpBFImj5.c9r
|
|
dir.c9r
|
|
|
+---ppPxaJGVhLPK8J0RmJ-But8t.c9r
|
|
dir.c9r
|
|
|
---v086lvJ5yXGfctveff6UvvVO.c9r
|
dir.c9r
|
+---77
+---JQ
+---NX
|
---E6PMXLIKCAKKERUMB3RVNKOOMYTESS
|
9l0EohTQJFHu7TioBlynQT16F9Oru9QngQ_2l4Vjm8FD83GSFPF_DfquoMPr.c9r
|
RrAwURAxq94yNNEiviSFgHCX9EXA9DgS9wQlg2i7U-tA3Gq3y_8fZgka1IXS.c9r
|
vIQ-JTS2L-J8D9UkeWairkOd6FMwHlJAT6G1j9BztwVH5eCKWJs-h3o6xF2Y.c9r
|
zchERCt2nRER1FT0q8PFTlnrVPPPRDHN8geUF59BQdbBK_PgfWpP867IjII8.c9r
...
В версии для Windows Cryptomator работает по принципу fused file system через WebDAV либо подсистему Dokany, которую предлагается дополнительно установить после установки Cryptomator. Стоит ли это делать? Я протестировал Cryptomator в нескольких конфигурациях на одном и том же контейнере; результат — ниже.
Для начала на быстром SSD (Samsung 970 Evo Plus) в локальной папке был создан пустой контейнер. Вот результат теста CrystalDiskMark.
Обрати внимание: в качестве тестового устройства назначена папка, а не блочный накопитель, который добавляет в систему Cryptomator при создании зашифрованной папки.
После этого та же папка была смонтирована через Dokany; бенчмарк получился такой.
Отмечу, что в этом случае CrystalDiskMark удалось завершить все тесты лишь с третьей попытки; в двух первых проходили только первые два теста, а на месте остальных были нули.
Далее я переместил зашифрованную папку в Ramdisk, чтобы исключить влияние SSD на результаты тестирования. Для начала — скорость самого рамдиска.
Повторяю тест через WebDAV.
Особой разницы не наблюдаю. Теперь то же самое, но через Dokany. Бенчмарк получился, как видишь, не очень.
Мой вывод: в Windows 10 смысла в использовании Cryptomator через Dokany нет. Скорость существенно ниже, надежность — катастрофически ниже, чем при использовании WebDAV.
Наконец, в режиме WebDAV я замерил среднюю скорость копирования мелких файлов (фотоальбом объемом 7 Гбайт, порядка 5600 фотографий): запись — 120 Мбайт/с, чтение — 132 Мбайт/с. Для зашифрованной папки вполне прилично, но, конечно же, несравнимо со скоростью работы даже зашифрованного BitLocker диска.
Cryptomator: достоинства и недостатки
Итак, Cryptomator настроен и протестирован. Подведем итог, перечислив сильные и слабые стороны решения. К плюсам Cryptomator я отнесу следующее:
- Работает на компьютерах (Windows, macOS, Linux) и мобильных устройствах (Android, iOS), при этом на компьютерах — бесплатно.
- Доступен в исходниках.
- Есть приложения для всех популярных платформ: для доступа к зашифрованным файлам достаточно установить и настроить соответствующее приложение.
- Поддерживаются длинные имена файлов (бич, преследующий eCryptFS и многие другие криптографические файловые системы).
- Можно как моментально сменить пароль шифрования, так и уничтожить все зашифрованные файлы, сделав данные недоступными: для этого достаточно удалить файл с мастер‑ключом.
- Полностью автономное шифрование: можно скопировать зашифрованную папку на другой диск, после чего смонтировать ее установленным или портативным вариантом Cryptomator.
- Безопасное резервное копирование: для создания и поддержания резервных копий (в том числе инкрементных) нет необходимости расшифровывать данные и монтировать зашифрованные сетевые папки.
- Возможны инкрементные резервные копии: время последней модификации каждого файла доступно без ключа шифрования.
- Зашифрованные файлы можно скопировать куда угодно: на любой встроенный или внешний диск, отформатированный в любой файловой системе, на любой NAS любого производителя, в любой облачный сервис, на удаленный сервер по любому поддерживаемому протоколу.
- Шифруются как сами данные, так и имена папок и файлов. Для сокрытия структуры каталогов используется обфускация.
В минусы запишу следующие пункты:
- Стабильность и скорость работы в Windows 10 через Dokany оставляет желать лучшего.
- С использованием WebDAV скорость работы выше и достигает приемлемых величин, оставаясь, впрочем, не очень высокой.
- Избыточность: поскольку шифрование имен файлов в файловых системах, работающих по принципу fused, всегда служит своеобразным «костылем», Cryptomator создает отдельные папки и файлы‑компаньоны для файлов с длинными именами. Если таких файлов у тебя много, то доступ к ним будет очень медленным.
- Не предусмотрен способ синхронизировать фотоальбомы с мобильных устройств в зашифрованную папку.
Cryptomator или Boxcryptor?
Хотелось бы написать полноценный обзор‑исследование всех популярных криптографических файловых систем, но ограничения по времени и объему заставляют урезать осетра, так что сравнение с Boxcryptor получилось довольно поверхностным.
Boxcryptor — это сервис, решающий принципиально те же задачи, которые решает Cryptomator. При этом, в отличие от Cryptomator, Boxcryptor доступен по подписке. Бесплатная версия сервиса существует, но требует регистрации учетной записи, при этом чрезвычайно функционально ограничена: например, в ней невозможно зашифровать имена файлов, а привязать можно только один облачный сервис. Есть ли смысл использовать платный сервис Boxcryptor, если существует бесплатный Cryptomator? И наоборот, отказываешься ли ты от чего‑то важного, пользуясь бесплатным продуктом вместо доступного по подписке сервиса? Проведу короткое сравнение, но прежде рекомендую ознакомиться с, так сказать, официальными материалами:
Boxcryptor против Cryptomator производителя Boxcryptor;
Cryptomator против Boxcryptor разработчиков Cryptomator.
Стоимость. Подожди, Cryptomator же вроде бы бесплатный? Так, да не так: бесплатны приложения для десктопных платформ, а за мобильные приложения (iOS, Android) потребуется заплатить 9,99 доллара/евро. Впрочем, Boxcryptor все равно дороже: за первый после бесплатного уровень сервиса просят 36 евро в год (бесплатный же уровень довольно сильно ограничен).
Возможность шифрования Camera Roll. Синхронизация фотографий с облаком. Плюс в пользу Boxcryptor: в мобильных приложениях реализована поддержка шифрования синхронизированных фотографий, причем в приложении для iOS даже присутствует поддержка Files с генерацией уменьшенных версий изображений на лету. Разработчики сервиса посвятили этому целую статью. Cryptomator поддерживает синхронизацию фотографий с облаком только в приложении для Android; в iOS поддержка отсутствует.
Открытый исходный код. +1 в пользу Cryptomator.
Требуется учетная запись. Большой и жирный +1 Cryptomator, который не требуется регистрировать у разработчиков просто для того, чтобы он работал. А вот Boxcryptor требует регистрации учетной записи, которая при этом активно используется: ключ шифрования мастер‑ключа хешируется не на компьютере пользователя, а на серверах Boxcryptor (что, кстати, создает некоторую неуверенность в будущем проекта: а что случится, если сервер закроется?).
Политика защиты конфиденциальности. И снова +1 в пользу Cryptomator, разработчики которого не получают и не хранят никакой информации о своих пользователях. Boxcryptor утверждает, что он Zero Knowledge Provider, но в то же время собирает и хранит следующую информацию:
- Email address
- First and last name
- Country
- Etc.
Keys and Additional Values
Additionally, we store keys and values that are necessary for encrypting and decrypting processes. Of course, these values are protected carefully as well.
- Private RSA key (encrypted with the user’s password)
- Public RSA key
- AES keys (encrypted with the user’s password / wrapping key)
- Hash of the password hash
- Number of KDF iterations used in the key and password hash derivation functions
- Salt (used to salt the password key and the password hash server side)
- Password hash salt
- If a company uses the Master Key: Password Key (encrypted with the company’s public RSA key)
Честно говоря, не очень хочется разбираться, какие именно из этих ключей могут быть использованы для восстановления доступа к зашифрованным данным при утечке. В случае с Cryptomator делать этого и не нужно: никакие ключи на внешних серверах не хранятся.
Двухфакторная аутентификация. Казалось бы, ее поддержку нужно записать в плюсы Boxcryptor, но при использовании Cryptomator двухфакторная аутентификация не поддерживается просто потому, что нет и однофакторной: учетная запись требуется только для Boxcryptor.
Стабильность работы. +1 в пользу Boxcryptor: проект старше и лучше отлажен.
Шифрование имен файлов и папок. Есть в обоих продуктах, но в Boxcryptor — только за деньги. Еще +1 в пользу Cryptomator.
Ограничения на число устройств и облачных сервисов. У Boxcryptor есть ограничения в зависимости от выбранного плана; у Cryptomator таких ограничений нет. Еще +1 в пользу Cryptomator.
Обфускация структуры файловой системы. И снова +1 в пользу Cryptomator. Этот пункт, пожалуй, стоит пояснить развернуто. Существуют продукты, которые создают определенную структуру каталогов, и в каждом из них могут быть свои подкаталоги и/или определенное количество файлов. Анализ файловой структуры, таким образом, может помочь атакующему догадаться, что используется та или иная программа.
Возможность коллаборации через ссылки на файлы (без указания пароля): а вот здесь +1 получает Boxcryptor. В Boxcryptor есть возможность организовать совместную работу над документом несколькими пользователями, при этом ни один из них не должен будет разглашать свой пароль.
Таким образом, Cryptomator выигрывает с разгромным счетом при использовании в домашних условиях за единственным исключением: синхронизация фотографий. Boxcryptor, с другой стороны, позволяет компаниям организовать совместную работу над документами, предлагает более стабильное и отлаженное приложение, синхронизацию фотографий и интеграцию с Files в iOS.
Заключение
Нуждаются ли твои данные в дополнительной защите — решать тебе. Вероятно, нуждаются, но не все. Вероятно, ты захочешь защитить цифровые копии документов (паспорта, водительские права) и какие‑то еще данные, доступ к которым может потребоваться в неожиданный момент и в неожиданном месте.
«Личный сейф OneDrive» способен успокоить нервы технически малограмотных пользователей; как‑то особенно защитить (а тем более зашифровать) твои данные он не может. Известный способ с криптоконтейнером в облаке по‑прежнему работает и по‑прежнему безопасен, однако проигрывает в удобстве более современным вариантам, в роли которых выступают криптографические облачные системы.
Самых распространенных вариантов сегодня два: появившийся чуть раньше платный сервис Boxcryptor и проект с открытым исходным кодом Cryptomator. Оба продукта решают одну и ту же задачу, но делают это по‑разному. Результат моего исследования достаточно однозначен: если брать для себя, бери Cryptomator — это бесплатно, удобно и безопасно. Компаниям может больше подойти Boxcryptor, но только в том случае, если необходимо организовать совместную работу над документами через облачные сервисы.