Правительства многих стран так или иначе ограничивают доступ граждан к информации и сервисам в интернете. Борьба с подобной цензурой – важная и непростая задача. Обычно простые решения не могут похвастать высокой надежностью или долговременной эффективностью. Более сложные методы преодоления блокировок обладают минусами с точки зрения удобства использования, низкой производительностью или не позволяют сохранить качество использования интернета на должном уровне.
Группа американских ученых из университета Иллинойса разработала новый метод преодоления блокировок, который основан на использовании технологии прокси, а также сегментировании пользователей по уровню доверия для эффективного выявления агентов, работающих на цензоров. Мы представляем вашему вниманию главные тезисы этой работы.
Описание подхода
Ученые разработали инструмент Salmon – это система прокси-серверов, управляемых волонтерами из стран без ограничений на использование интернета. Для того, чтобы защитить эти серверы от блокировок цензорами, система использует специальный алгоритм присвоения пользователям уровня доверия.
Метод предполагает разоблачение потенциальных агентов цензоров, которые представляются обычными пользователями, чтобы узнать IP-адрес прокси-сервера и заблокировать его. Кроме того, противодействие атакам Сивиллы осуществляется с помощью требований предоставить при регистрации в системе ссылку на действующий аккаунт в соцсети или получить рекомендацию пользователя с высоким уровнем доверия.
Как это работает
Предполагается, что цензор – это контролируемый государством орган, который обладает возможностью взять под контроль любой маршрутизатор внутри страны. Также предполагается, что задача цензора – заблокировать доступ к определенным ресурсам, а не вычислять пользователей для дальнейших арестов. Система никак не может предотвратить подобное развитие событий – у государства есть масса возможностей узнать о том, какими сервисами пользуются граждане. Один из них – использование honeypot-серверов для перехвата коммуникаций.
Также предполагается, что государство обладает значительными ресурсами, в том числе человеческими. Цензор может решать задачи, для которых требуются сотни и тысячи full-time сотрудников.
Еще несколько базовых тезисов:
- Задача системы – дать возможность обхода блокировок (т.е. Предоставить IP-адрес прокси-сервера) всем пользователям, живущим в регионах с онлайн-цензурой.
- Агенты/сотрудники цензурирующих интернет органов и ведомств могут пытаться подключиться к системе под видом обычных пользователей.
- Цензор может заблокировать любой прокси-сервер, адрес которого становится ему известен.
- Организаторы системы Salmon в таком случае понимают, что цензор каким-то образом узнал адрес сервера.
Все это подводит нас к описанию трех ключевых компонентов системы преодоления блокировок.
- Система высчитывает вероятность того, что пользователь – агент цензурирующих организаций. Пользователей, которые признаны такими агентами с высокой вероятностью, банят.
- У каждого пользователя есть уровень доверия, которое нужно заслужить. Прокси-серверы с наивысшим быстродействием выделены для пользователей с максимальными уровнями доверия. Кроме того, это позволяет отделить надежных, проверенных временем пользователей от новичков, ведь именно среди них с наибольшей вероятностью будут агенты цензоров.
- Пользователи с высоким уровнем доверия могут приглашать в систему новых пользователей. В итоге получается социальный граф надежных пользователей.
Все логично: цензору обычно нужно заблокировать прокси-сервер здесь и сейчас, он не будет ждать долгое время, чтобы попытаться «прокачать» аккаунты своих агентов в системе. Кроме того, понятно и что новые пользователи могут изначально получать разный уровень доверия – например, друзья и родственники создателей проекта с меньшей вероятностью будут сотрудничать с государствами-цензорами.
Уровни доверия: подробности реализации
Уровень доверия есть не только у пользователей, но и у прокси-серверов. Система присваивает пользователю с определенным уровнем сервер с таким же уровнем доверия. При этом уровень доверия пользователей может как повышаться, так и понижаться, а в случае серверов он только растет.
Каждый раз, когда цензоры блокируют сервер, с которым работал определенный пользователь, его уровень доверия понижается. Доверие повышается, если сервер не блокируют длительное время – с каждым новым уровень необходимое время удваивается: чтобы перейти с уровня n на n+1, нужно 2n+1 дней бесперебойной работы прокси-сервера. Путь до максимального, шестого, уровня доверия занимает более двух месяцев.
Необходимость ждать так долго, чтобы выяснить адреса самых качественных прокси-серверов – крайне эффективная мера противодействия цензорам.
Уровень доверия сервера – это минимальный уровень доверия, присвоенных ему пользователей. К примеру, если новый сервер в системе присваивается пользователям, среди которых минимальный рейтинг 2, то такой же получит и прокси. Если затем сервером станет пользоваться человек с рейтингом 3, но останутся и пользователи со второго уровня, то рейтинг сервера будет 2. Если же все пользователи сервера повысили уровень, то он повышается и для прокси. При этом сервер не может потерять уровень доверия, наоборот, если его заблокируют, то оштрафуют пользователей.
Пользователи с высоким уровнем доверия получают вознаграждения двух типов. Во-первых, серверы не одинаковы. Существуют минимальные требования по пропускной способности (100 Кбит/сек), но волонтер-владелец сервера может предлагать и больше – верхней границы нет. Система Salmon подбирает самые производительные сервера для пользователей с максимальным рейтингом.
Кроме того, пользователи с высоким уровнем доверия лучше изолированы от атак цензоров, ведь цензору нужно ждать месяцами, чтобы выяснить адрес прокси. В итоге вероятность блокировки серверов для людей с высоким риском в разы ниже, чем для обладателей низкого доверия.
Для того, чтобы подключить к лучшим прокси как можно больше заслуживающих того пользователей, создатели Salmon разработали рекомендательную систему. Пользователи с высоким рейтингом (L) могут приглашать своих друзей присоединиться к платформе. Приглашенные люди получают рейтинг L-1.
Рекомендательная система работает волнами. Первая волна приглашенных пользователей получает возможность пригласить своих друзей только спустя около четырех месяцев. Пользователи из второй и последующей волны должны ждать 2 месяца.
Модули системы
Система состоит из трех компонентов:
- клиент Salmon для Windows;
- серверная программа-демон, которую устанавливают волонтеры (версии для Windows и Linux);
- Сервер центрально директории, хранящий базу данных всех прокси-серверов и занимающийся распределением IP-адресов среди пользователей.
Интерфейс клиентского приложения системы
Для того, чтобы воспользоваться системой, человек должен создать аккаунт с помощью учетной записи на Facebook.
Заключение
На данный момент метод Salmon не получил широкого распространения, известно лишь о небольших пилотных проектах для пользователей в Иране и Китае. Несмотря на то, что это интересный проект, он в полной мере не обеспечивает анонимность, защиту волонтеров, и сами создатели признают, что он подвержен атакам с использованием honeypot-сервисов. Тем не менее реализация системы с уровнями доверия выглядит интересным экспериментом, который может иметь продолжение.
На сегодня все, спасибо за внимание!
Полезные ссылки и материалы от Infatica:
- Эксперимент: можно ли снизить негативные последствия DoS-атак с помощью прокси
- Исследование: создание устойчивого к блокировкам прокси-сервиса с помощью теории игр
- История борьбы с цензурой: как работает созданный учеными из MIT и Стенфорда метод flash proxy
- Как понять, когда прокси лгут: верификация физических локаций сетевых прокси с помощью алгоритма активной геолокации
- Как замаскироваться в интернете: сравниваем серверные и резидентные прокси
Комментарии (21)
zim32
24.06.2019 23:29Периодически назначать прокси только одному юзеру и если забанили, значит он агент. А чегоя может и сработает. Прямо вспоминается мафия, агенты под, прикрытием, ведро бетон река
dendron
25.06.2019 02:59А как учитывается современная китайская цензура с опережающим соединением? Разве нельзя сделать из каждого участника такой сети шпиона, причём без его ведома? И в очередной день (например в очередной съезд партии великого вождя) блокировать их разом, попутно проводя аресты «за предоставление нелицензионных услуг организатора размещения информации».
stantum
25.06.2019 13:32У меня возникло огромное сомнение в работоспособности данной системы. Цензор обладает не только большим человеческим ресурсом, но и терпением. Его агентам вовсе не обязательно сразу блокировать прокси. Они могут сидеть тихо, строить карту сети и приглашать других агентов.
Далее у них два варианта. Во-первых, можно банить прокси, у которых мала вероятность выдать агента. Например, которыми в последнее время агенты не пользовались. или пользовался агент, приглашенный обычным пользователем.
А во-вторых, можно разом закрыть доступ к большинству серверов, уничтожив тем смысл работы сети.Fedorkov
25.06.2019 15:47А во-вторых, можно разом закрыть доступ к большинству серверов, уничтожив тем смысл работы сети.
И далее спамить блокировками, чтобы пресечь приход новых пользователей через низшие уровни.
nehaev
25.06.2019 16:50+1Мне кажется, ключевой фичей такой системы должно быть как раз то, что она показывает каждому конкретному юзеру только небольшой фрагмент реального пула проксей. Причем, приглашенным юзерам она покажет тот же фрагмент, что и пригласившему их.
Пока цензоры будут строить карту проксей, система будет строить карту цензоров. Кто закончит быстрее — мне кажется это зависит от отношения количества проксей к количеству учеток цензоров. Если проксей гораздо больше — есть шанс на успех. Второй вопрос — где их столько взять. Может IPv6 как-то поможет?
A114n
25.06.2019 14:12Как здесь уже заметили, большинство ботов сидят в соцсетях годами. Иногда некоторые из них обнаруживаются во время важных политических событий — когда всей команде велят постить один и тот же текст или хэштэг. Но обнаруживаются именно случайно — если не поймать скриншотом этот момент, то после хайпа сообщение может быть удалено или просто потонет в истории, и никто не узнает, что это был бот. До следующего раза.
И это я даже не затрагиваю вопрос продажи «старого аккаунта», который 10 лет постил котиков, а на одиннадцатый вдруг принялся топить за святую инквизицию и золотой трон.
Есть ощущение, что эта группа учёных из Иллинойса до сих пор живёт году эдак в 2005-м.
Berkof
26.06.2019 08:20+1Какой-то хлам, а не система… Как только она станет хоть чуточку популярной — любой агент купить 10к учёток в лицекниге (для него ведь не беда потратить 5к$?), купить 10к прокси (а скорее просто запросит местные и ему выдадут… а те под прокси тупо обяжут провайдеров выделить 0.5% адресов и пробросить их на сервер безопасников)… и получит 10к аккаунтов в системе…
Имхо — чтобы эта штука хоть как-то заработала — нужно чтобы пользователь при регистрации платил денег, которые бы шли хостерам проксей… Типа хочешь хорошо работать — заплати денег, тебе купят отдельный прокси и будет хорошо работать… а бонусом — людей потихоньку на этот же сервер подцепят, если что-то заблочится — тебя перенесут на другой хороший прокси, ну и оплачивать выделенную (пусть и тонкую виртуалку) можно будет вскладчину. А тому же условному агенту уже не получится купить учёток — он тогда просто купит для системы ещё прокси серверов, пусть и получив возможность забанить их и ещё какие-то другие (прикол что сначала другие люди его серверами попользуются, потом он другим забанит сервер, а они пойдут на третьи прокси).
Firz
То есть цензорам нужно всего лишь подождать немного времени и у них будет такое количество аккаунтов и информации, что вычислить кто слил информацию о прокси станет невозможно.
nehaev
Вычислить все равно будет возможно при условии, что количество проксей в пуле сильно больше (желательно, на порядки), чем есть учеток в этой системе у цензора.
Fedorkov
Цензор может завести миллион учёток на виртуальных машинах.
nehaev
Если сделать это по уму, миллион виртуальных учеток завести не получится.
hokum13
Сейчас почти во всем «развитом» мире идут процессы стремящиеся к блокировкам тех или иных ресурсов. Где взять десятки миллиардов прокси? Это раз.
2 — с учетом дружбы властей (или даже blackhat-ов) с соц.сетями не составит труда регистрировать «цензоров» на обычные учетки, с десятилетиями котиков.
3 — нет необходимости даже приглашение получать. Достаточно знать того, кто может это приглашение выдать. После этого прослушать трафик и заблокировать IP, на который идет сомнительный.
4 — с учетом того, что рейтинг вырастает за 2 месяца — можно «откармливать» пользователей из пунктов 2 и 3, чтобы валить сразу наиболее доверенные сервера.
5 — правильно сказали выше, не нужно валить сервера по отдельности, нужно строить карту и валить сразу всю сеть. А когда начнется очередной «майдан» или очередной «it-специалист» откажется сотрудничать — вырубить всех сразу.
Проект строится на незнании противником секретной части (адресов proxy), что в корне не верно, т.к. если эти данные таки становятся противнику известны (4 способа выше, плюс прямой взлом координирующих серверов), то весь смысл защиты теряется. Правильнее строить сеть в открытую, с множеством хостов, но не позиционировать ее как средство обхода блокировок. Например сделать анонимную пиринговую социальную сеть (для просмотра котиков, конечно), построенную по принципам TOR-а, но хостящуюся на железках пользователей (возможно даже не круглосуточно).
Fedorkov
Кстати, пиринговая система уже есть, называется I2P.
hokum13
Ну т.е. нужно «отбелить» понятие, т.к. на него вылито слишком много грязи.
А в ней уже есть котики? Смысл в том, что обывателю не объяснить, почему блокировка (любая) — это плохо. А тех, кто это понимает, проще повесить на столбах, чем понять. Ну это же классика инквизиции.
Их мало. А т.к. там нет спиннеров (или чем там сейчас молодеж агитируют?) и котиков, то затащить туда миллионы сидов будет сложно.
С помощью ВК? Там уже сейчас целые бот-сети. Ближе к выборам увидите.
Fedorkov
Вы представляете себе затраты на раскрутку очередного конкурента ВК и ОК?
hokum13
Какая разница сколько это стоит, если без этого проект не взлетит? Опять же, когда взлетели FB и VK не было ни каких instagram-ов или/и wechat-ов. Тем не менее последние тоже взлетели.
Сейчас уже на фоточках и бесплатных СМС не взлететь. Но завтра модно станет заниматься круглосуточной трансляцией своей жизни и вот он шанс. А после завтра еще какой ерундой и вот он еще один шанс… Вопрос в мотивации и финансовых возможностях разработчиков.
Вот кстати решение, правда без котиков. А без котиков заставить пользователя запустить плагин будет сложно.
nehaev
Ваши пункты 3 и 4 исходят из того, что проксей будет мало. Но если их будет много, то такие атаки не сработают. Чем больше проксей, тем точнее можно вычислить цензоров. Одно дело, если каким-то прокси пользовался миллион человек и его заблокировали, и совсем другое, если им пользовалось всего 10 человек.
Пункты 2 и 5 исходят из того, что цензор сможет зарегить большое количество учеток в системе. Насколько я понимаю, авторы проекта собираются верифицировать юзеров, т.е. нарегить виртуалов будет не так просто. Если сделать, чтобы приглашенным юзерам выдавались только прокси, которые уже видел пригласивший их — ущерб от блокировки будет минимальным, а вычислить и перебанить "цензоров", наоборот, довольно легко.