Удобство облачных хранилищ файлов наподобие Dropbox и OneDrive омрачается лишь тем, что злоумышленники, спецслужбы или просто сотрудники хостинг-провайдера могут несанкционированно просматривать файлы в облаке. Но решение для конфиденциального хранения есть: целый ряд сервисов предлагает хранить файлы в зашифрованном виде. Некоторые называют это End-to-End Encryption, сквозным шифрованием, по аналогии с Signal и WhatsApp. Реклама гласит, что файлы шифруются еще на устройстве хозяина и отправляются в облако уже зашифрованными, а ключ шифрования есть только у владельца файлов. И никто, даже сотрудники сервиса, не может получить доступ к информации. Но так ли это на самом деле?
Наташа, мы сломали все шифрование. Честно
Исследователи с факультета прикладной криптографии ETH Zurich детально разобрали алгоритмы пяти популярных зашифрованных хранилищ: Sync.com, pCloud, Icedrive, Seafile и Tresorit. Оказалось, что разработчики каждого из этих сервисов допустили ошибки в реализации шифрования, позволяющие в той или иной степени манипулировать файлами и даже получать доступ к фрагментам незашифрованных данных. В двух других популярных хостингах, MEGA и Nextcloud, исследователи обнаружили дефекты раньше.
Во всех случаях атаки проводятся со стороны вредоносного сервера. Сценарий таков: злоумышленник либо взламывает серверы зашифрованного хостинга, либо, манипулируя роутерами по пути от клиента к серверу, заставляет компьютер жертвы подключиться к другому серверу, имитирующему официальный сервер зашифрованного хостинга. Если этот непростой трюк удастся, злоумышленник теоретически сможет:
- Sync.com — «подложить» жертве папки и файлы с инкриминирующей информацией, изменить имена файлов и метаданные хранящейся информации. Также взломанный сервер может выслать клиенту новые ключи шифрования и затем расшифровывать любые загруженные после этого момента файлы. А встроенная функция Share позволяет вредоносному серверу бесконтрольно расшифровывать файл, которым поделилась жертва, поскольку ключ расшифровки содержится в ссылке, передаваемой при обращении к серверу.
- pCloud — подложить жертве файлы и папки, произвольно перемещать файлы и менять местами имена разных файлов, удалять фрагменты файлов, дешифровывать файлы, загруженные после взлома.
- Seafile — принудить клиент использовать старую версию протокола, в которой проще подбирать пароли, менять местами или удалять фрагменты файлов, подложить жертве файлы и папки, модифицировать метаданные файлов.
- Icedrive — подложить жертве файлы, состоящие из фрагментов других файлов, уже загруженных в облако, изменить имя и положение файла в хранилище, изменить порядок следования фрагментов файла.
- Tresorit — манипулировать метаданными файла в хранилище, включая его авторство.
- Nextcloud — манипулировать ключами шифрования, что дает возможность расшифровать загруженные файлы.
- MEGA — восстановить ключи шифрования и таким образом расшифровать все файлы. Также возможно подложить жертве инкриминирующий файл.
Вредоносный сервер — это трудный в реализации, но не фантастический компонент атаки. После кибератак на Microsoft и Twilio возможность компрометации крупного легитимного сервиса нужно воспринимать как вполне реальную. Ну и конечно, сквозное шифрование по определению должно быть устойчиво к вредоносным действиям со стороны сервера.
Не вдаваясь в технические подробности, отметим, что авторы всех сервисов, кажется, старались реализовать честное сквозное шифрование и применять для этого общепризнанно стойкие алгоритмы вроде AES и RSA. Но шифрование файлов порождает много технических сложностей при организации совместной работы над документами. Преодолеть эти сложности и учесть все возможные атаки с модификацией ключей шифрования не удалось никому, хотя в Tresorit справились значительно лучше всех остальных.
Авторы исследования обращают внимание, что независимо друг от друга разработчики различных сервисов допустили очень похожие ошибки в реализации криптографии. Это означает, что в проблеме зашифрованного облачного хранилища есть очень нетривиальные криптографические нюансы. В этой индустрии пригодился бы хорошо проработанный и детально протестированный сообществом криптографов протокол, такой как TLS для веб-сайтов или Signal Protocol для мессенджеров.
Дорогие исправления
Наибольшая проблема с исправлением найденных ошибок в том, что нужно не просто обновить версии приложений и серверного ПО, но и — во многих случаях — заново шифровать сохраненные пользователями файлы. На эти огромные вычислительные затраты может пойти далеко не всякий хостинг. Более того, повторное шифрование может произойти только в сотрудничестве с каждым пользователем, а не в одностороннем порядке. Наверное, поэтому исправления появляются небыстро:
- Sync.com — не реагировали на письма исследователей полгода, вплоть до публикаций в прессе, затем проснулись, сообщили об исправлении проблемы с утечкой ключей при шеринге ссылок и пообещали исправить остальные дефекты, не называя сроков.
- Tresorit — обещали исправить проблему в 2025 году (но у них и острота проблемы невысока).
- Seafile — устранили проблему с понижением версии протокола и никак не прокомментировали остальные дефекты.
- Icedrive — решили не устранять обрисованные проблемы.
- pCloud — не реагировали на письма исследователей вплоть до публикаций в прессе, затем сообщили, что атаки являются теоретическими и не требуют немедленных действий.
- Nextcloud — устранили проблему и значительно переработали общий подход к сквозному шифрованию в версии 3.12. Исследований обновленной схемы шифрования пока не проводилось.
- MEGA — значительно снизили вероятность атаки с помощью проверок на стороне клиента.
Что делать пользователям
Найденные швейцарскими исследователями проблемы нельзя назвать чисто теоретическими, но это и не массовая, легко эксплуатируемая киберкриминалом угроза. Поэтому поспешные действия не нужны — есть время подумать и трезво оценить свою ситуацию:
- Насколько важные данные хранятся в вашем хранилище и насколько велик к ним интерес посторонних?
- Насколько много данных хранится в зашифрованном сервисе и легко ли сменить его на другой?
- Насколько важны функции совместной работы и шеринга файлов?
Если совместная работа не важна, а данные хранятся критические, то оптимальным будет перейти к локальному шифрованию файлов. Это можно делать разными способами, например хранить их в зашифрованном файле-контейнере или архиве с длинным паролем. При необходимости переноса данных на другое устройство в облачный хостинг можно выложить уже зашифрованный архив.
Если функции совместной работы и общий комфорт хочется сочетать с достаточными гарантиями безопасности, а данных в хостинге хранится не так уж много, стоит перенести данные в один из сервисов, которые лучше прошли испытания в горнилах ETH Zurich и адекватно отреагировали на поставленные перед ними вопросы безопасности. В первую очередь это Tresorit, но не стоит сбрасывать со счетов и MEGA с Nextcloud.
Если ни одно из этих решений вам не подходит, оставаться на других зашифрованных хостингах тоже можно, но с дополнительными предосторожностями: избегать хранения особо конфиденциальной информации, оперативно обновлять клиентские приложения, регулярно проверять свои облачные диски и удалять устаревшую или постороннюю информацию.
В любом случае нужно помнить, что наиболее вероятной атакой на ваши данные станет простая и банальная компрометация компьютера или смартфона инфостилером. Поэтому зашифрованный хостинг должен обязательно сочетаться с полноценной защитой всех смартфонов и компьютеров от вредоносного ПО.