id: Гость   вход   регистрация
текущее время 15:38 14/06/2021
создать
просмотр
редакции
ссылки

10.09 // ConScript: мобилизация через JavaScript или анонимность по призыву


Для защиты своей анонимности и неотслеживаемости передаваемых данных в интернете пользователи нередко прибегают к помощи анонимных сетей, таких как Tor. Особенно остро такая потребность возникает в случае необходимости организовать утечку секретных документов для последующей публикации если факт передачи и личность добровольного информатора общественности необходимо скрыть хотя бы на время. Однако, в таком случае уровень анонимности, обеспечиваемый сетями реального времени (Tor и др.), может оказаться недостаточным. Даже не самый могущественный противник может с некоторой заметной вероятностью, по крайней мере частично, отслеживать активность пользователя в таких сетях, прибегая к низкозатратным атакам анализа трафика.


Для высокого уровня анонимности существуют сети с передачей небольших сообщений с задержками по времени (такие как системы ремейлеров) и основанные на проверяемом смешивании в DC-сетях (такие как Dissent). Авторы протокола Dissent* помимо того, что в очередной раз подчеркнули повышенную теоретическую стойкость специализированных протоколов, обратили внимание на то, что на практике анонимность при их применении будет близка к нулю из-за малого числа пользователей как по количеству, так и по времени нахождения в анонимной сети, что делает множество анонимности чрезвычайно малым и уязвимым к простейшему анализу трафика.


В самом деле, такие системы на практике сталкиваются с рядом неизбежных проблем:

  1. Использование средств повышенной анонимности сложно, поэтому мало кто захочет разбираться в способах работы с ними.
  2. Системы повышенной анонимности функционально ограничены и предназначены только для редких сценариев применения. Возможно, даже у технически грамотного пользователя потребность в использовании такой системы будет возникать крайне редко (включая случаи "раз в несколько лет").
  3. Сам факт использования систем повышенной анонимности, несмотря на трудности, перечисленные в п. 1 — 2 может свидетельствовать о повышенной мотивации пользователя к сокрытию своих данных, в отличие от более разнообразных повседневных сценариев использования сетей наподобие Tor.

Таким образом, прослушивающая сторона может составить список всех доступных её наблюдению пользователей сетей повышенной анонимности и сопоставить факты их редких сеансов связи с интересующими её событиями, например утечкой документов, сведениями о возможности установления контактов, что позволит подтвердить имеющиеся подозрения. Отсутствие массовости использования практически сводит на нет анонимность любого теоретически стойкого протокола.


Можно ли обеспечить массовость использования сетей повышенной анонимности? Исследователи Генри Корригэн-Гиббс (Стэнфордский Университет) и Брайен Форд (Йельский Университет) в своей новой публикации "Conscript Your Friends into Larger Anonymity Sets with JavaScript" нашли достаточно необычное, парадоксальное и отчасти вызывающее решение этой проблемы. Они решили ввести в анонимные сети группу "обычных" пользователей. От них не требуется никаких умственных усилий, кроме как абстрактного желания поддержать анонимность в интернете. Также необходимо наличие дружественных, но необязательно доверяемых веб-сайтов, согласных разместить у себя JavaScript для поддержки анонимных сетей. Хотя теоретически такой скрипт может выполняться вообще без ведома пользователя, авторы предлагают использовать хотя бы уведомительный характер при его применении: пользователю на странице выводится предупреждении об использовании его компьютера для целей поддержки анонимности с возможностью отказа. Другим вариантом является упоминание в тексте о правилах пользования сайтом. Загружаемый с сайта JavaScript генерирует в браузере пользователя шифрованное пустое сообщение для анонимной сети, которое играет роль покрывающего трафика. Несмотря на сложности в реализации криптографии на JavaScript, авторы указывают, что им удалось добиться генерации таких сообщений c приемлемым уровнем безопасности за интервалы времени не более десятков миллисекунд даже на мобильных устройствах при незначительном повышении энергопотребления по сравнению с некоторыми видами веб-серфинга для различных распространённых на данный момент браузеров и операционных систем.


Доверие к сайту в этой схеме не требуется: сайт может быть злонамеренным, следящим или отдающим злонамеренный JavaScript. В этом случае покрывающее сообщение или не сможет попасть в анонимную сеть, или определить факт отправки зашифрованного покрывающего сообщения или какого-либо ещё контента от пользователя смогут лишь сами конечные узлы сети (не знающие адрес пользователя), но не злонамеренный сайт или прослушивающая сторона. Целью протокола является то, что злонамеренные сотрудничающие веб-сайты не смогут принять в нём участие в сколь-нибудь опасной роли.


Другая группа — это продвинутые пользователи, которые хотят на выбор по желанию отправлять покрывающие или реальные анонимные сообщения в соответствующие сети посредством сотрудничающих веб-сайтов. У них в браузере должен быть установлен специальный плагин, который и выполняет подготовку сообщения. Первоначально плагин полностью собирает полученный с сотрудничающего сайта JavaScript. Он должен побайтово совпадать с версией, встроенной в плагин и синхронизированной заранее до актуального состояния. Если полученный с сайта JavaScript отличается, то плагин воспринимает его как несовместимый или злонамеренный и передаёт ему на отправку пустое покрывающее зашифрованное сообщение. Если JavaScript совпадает, то плагин может передать ему реальное зашифрованное сообщение продвинутого пользователя для отправки через этот сайт в сеть повышенной анонимности.


Этот проект авторы назвали ConScript, что удачно описывает в одном созвучии две идеи: использование JavaScript для нетрадиционных целей повышения анонимности в сети и увеличения множества анонимов за счёт покрывающих сообщений путём призыва к помощи в повышении анонимности всех посетителей сотрудничающих сайтов (Conscript переводится как "призывать, мобилизовывать").


Для этой задачи важным является то, что ни сотрудничающие сайты (которые могут использовать выслеживание или подмену JavaScript), ни прослушивающая сторона не могут отличить зашифрованные пустые покрывающие сообщения от истинных сообщений продвинутых пользователей. Это могут сделать только конечные узлы анонимной сети, которые не знают адреса отправителя. Для этой цели сообщения должны удовлетворять условию адаптивной неразличимости второго порядка к атакам с подобранным шифртекстом (IND-CCA2 условие). Широко распространённое шифрование RSA-OAEP удовлетворяет этому требованию, как и многие другие элементы протоколов, используемые в сетях повышенной анонимности. Это открывает широкие перспективы создания неразличимых покрывающих множеств пользователей для самых редких и экзотических протоколов анонимной связи, анонимного голосования и др. Однако, следует помнить, что не все протоколы подходят для такого использования. Так, например протоколы ремейлеров, которые отправляют сообщения по мере накопления пула, не подходят — наблюдатель может заметить, что слишком много сообщений в пуле пустые и по определению момента наполнения пула перед его переотправкой выделить реальные сообщения. Универсальным способом различения продвинутых и обычных покрывающих пользователей являются попытки определить факт скачивания и установки ConScript-плагина, так что продвинутые пользователи должны позаботиться об этом заранее. Возможен факт передачи в закрытом сообществе такого плагина полностью оффлайновым способом через портативный носитель информации. Остаётся также открытым вопрос атак на браузер пользователя (через тот же самый JavaScript), которые через наличие уязвимостей смогут определить по крайней мере сам факт наличия плагина.


Тем не менее, столь необычный взгляд на использование небезопасных и уязвимых технологий (JavaScript в браузере) заслуживает внимания. Продвинутые пользователи могут поставить и настроить в системе редко используемый изолированный профиль для отправки сообщений, нуждающихся в сильной анонимности, не ограничивая себя в изобретательности и защите, но пользуясь неразличимостью и покрывающим трафиком от рядовых пользователей, даже ничего не понимающих в анонимных сетевых технологиях. При желании, сами продвинутые пользователи также могут попытаться прикинуться в качестве принадлежащих к группе обычных пользователей — удалить следы использования плагина в системе и получить возможность сильной отрицаемости в использовании анонимных сетей. Для этого необходима широкая поддержка проекта ConScript множеством популярных сайтов и проработка согласования ConScript с анонимными сетями доставки сообщений таким образом, чтобы злоумышленник посредине, знающий лишь публичные ключи узлов анонимной сети (и возможно лишь часть закрытых ключей, принадлежащих своим подконтрольным узлам) не мог различать, перенаправлять пустые и реальные сообщения или предсказывать направление сообщений обычных и продвинутых пользователей.


* См. также их fileработу и fileслайды "Dissent in Numbers: Making Strong Anonymity Scale".


Источник: arXiv.org: Cryptography and Security archive