Сквозное шифрование в облаках. Уязвимости — во всех сервисах
В наше время большинство пользователей хранят файлы в том или ином облачном хранилище: Google Drive, Яндекс.Диск, Dropbox, OneDrive и т. д. Благодаря низкой стоимости такие сервисы очень популярны. Их аудитория оценивается более чем в 4 млрд человек, а объём хранимых данных — порядка экзабайта. Почти все провайдеры шифруют файлы на своих серверах. Но если сам провайдер скомпрометирован, такая система не обеспечивает никакой защиты.
Поэтому отдельные сервисы реализовали сквозное шифрование (E2EE), когда не сервер, а пользователь контролирует ключи шифрования.
В основном, эти сервисы предлагают услуги для коммерческих клиентов. Например, MEGA, Nextcloud, Sync, Tresorit, Seafile, Icedrive и pCloud. К сожалению, реальность далека от рекламных заявлений. Независимое исследование показало, что все перечисленные провайдеры страдают от уязвимостей и архитектурных изъянов.
Хотя сервисы со сквозным шифрованием занимают небольшую долю на рынке хранения данных, некоторые из них используются государственными службами и общественными организациями. Например, Nextcloud используют в правительствах Германии и Сербии, а также организации Amnesty International. Сервис Sync использует правительство Канады, Канадский Красный Крест, штаты Вермонт и Северная Дакота. В списке клиентов Tresorit значатся SAP, Pfizer и Allianz. И так далее.
Поскольку многие важные организации используют облачные хранилища E2EE, анализ их безопасности становится насущной проблемой. Например, недавно были обнаружены уязвимости у двух самых популярных провайдеров: MEGA и Nextcloud. В связи с этим возникает вопрос: есть ли на рынке провайдеры с лучшей защитой?
Новое исследование отвечает на этот вопрос скорее отрицательно. Оно также показывает недостатки, которые характерны для всех провайдеров и которые создают уязвимости в их протоколах.
Иерархия ключей у всех исследованных провайдеров. Стрелки со звёздочками указывают на связь «один-ко-многим». Весь ключевой материал, который не является производным от чего-либо другого, неявно генерируется с помощью соответствующей функции генерации ключей, источник
На диаграмме ниже отражена общая сводка по уязвимостям и утечкам у провайдеров облачной криптографии:
†Только в консольном клиенте. В большинстве браузеров реализована адекватная проверка открытых ключей, что предотвращает атаку
*Только после инъекции папок
**Злоумышленник может создать новый файл только из фрагментов других файлов, поэтому атака не совсем полноценная
В таблице слева направо перечислены следующие уязвимости:
- Использование неаутентифицированных секретных ключей (или их частей)
- Использование неаутентифицированных публичных ключей
- Несанкционированная смена протокола в сторону более слабого
- Утечка ссылок на файлы
- Неаутентифицированное шифрование
- Неаутентифицированное разбиение файлов на части (chunking)
- Изменение имён файлов и самих файлов
- Изменение метаданных
- Инъекция файлов
- Инъекция папок
- Утечка оригинальных данных (расшифровка)
- Утечка метаданных
- Утечка структуры папок
Уязвимости различаются по степени серьёзности. Наиболее серьёзными можно назвать те, в которых вредоносный сервер (то есть злоумышленник на скомпрометированном сервере) может внедрить свои файлы, подделать данные файла или получить прямой доступ к расшифрованной информации. Примечательно, что многие из раскрытых атак одинаково действуют на нескольких сервисах. Это показывает общие проблемы в криптографических конструкциях.
В целом, исследователи выявили десять классов атак. Результаты опровергают маркетинговые заявления провайдеров и ставят под сомнение функции сквозного шифрования в их сервисах.
Статья «Облачные хранилища со сквозным шифрованием на практике. Сломанная экосистема» («End-to-End Encrypted Cloud Storage in the Wild: A Broken Ecosystem») от авторов из Швейцарской высшей технической школы Цюриха представлена на конференции ACM CCS 2024 в октябре 2024 года, а также опубликована на сайте «Облачные хранилища не работают» (https://brokencloudstorage.info/).