Для начала расскажу что такое CDN. CDN – это content delivery network – в переводе сеть доставки контента. Предположим, у вас хранится 10 000 фильмов, но вам будет дорого и невыгодно доставлять их своими силами (не имея особой архитектуры), нужно балансировать нагрузку и платить за трафик. CDN готов взять это на себя, они уже реализовали надежную инфраструктуру. 


Примеры крупных CDN: Cloudflare, Akamai, Fastly, AWS CloudFront, Google Cloud CDN, Microsoft Azure CDN, jsdelivr.


Мессенджерам тоже необходимо пропускать через свои сервера огромный объем данных (особенно зашифрованным) – вот как они используют CDN:


Начнем с Signal, по умолчанию они используют CDN для вообще всех медиа вложений. Что это означает по факту – поставщик контента видит вашу связь с Signal, ваш IP и зашифрованное вложение. А также IP получателя (когда тот скачает это вложение). Выходит, имея спецслужбы или кто еще доступ к логам CDN – не нужно взламывать шифрование Signal или их сервера чтобы понять кто с кем общается (напоминаю, что Signal старается это скрыть через sealed sender).


Что уже было: 15-летний исследователь находил уязвимость которая позволяла любому человеку проверить в каком датацентре закешировался файл, этот датацентр был расположен в ближайшем к пользователю месте для оптимизации, что раскрывало примерную локацию получателя. Почитайте подробнее в оригинале, дата публикации – январь 2025:


https://gist.github.com/hackermondev/45a3cdfa52246f1d1201c1e8cdef6117


Какие есть варианты атак при логах CDN:


  1. Отправка изображений и других вложений. Имея доступ к CDN можно узнать что некий пользователь Signal отправил медиа и некий пользователь Signal его получил.
  2. Аватарки. При открытии чата аватарка автоматически загрузится даже если автозагрузка медиа выключена полностью в настройках.
  3. Даты самого общения – когда пришло первое медиа, когда последнее.
  4. Использовать аватарки и медиа для целеноправленной деанонимизации – Signal в отчетах показывал что ФБР они отдают лишь дату последнего подключения.


К сожалению почти все мессенджеры используют CDN. Возьмем еще в пример SimpleX – там используются XFTP сервера для управления файлами, но с важными оговорками. SimpleX было предложено решение в виде партнерства с FLUX и выбор случайных серверов для доставки и получения медиа и сообщений. Пример – отправляете медиа, оно доходит до сервера SimpleX, через него идет к Flux и оттуда уже происходит получение. Это используется чтобы предотвратить корреляцию. Но даже если автоприем изображений выключен, аватарки все равно загружаются автоматически. https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html


Автор статьи: @chekist42