Проект Salmon: как эффективно противостоять интернет-цензуре с помощью прокси с уровнями доверия пользователям

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!



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

Группа американских ученых из университета Иллинойса разработала новый метод преодоления блокировок, который основан на использовании технологии прокси, а также сегментировании пользователей по уровню доверия для эффективного выявления агентов, работающих на цензоров. Мы представляем вашему вниманию главные тезисы этой работы.

Описание подхода


Ученые разработали инструмент Salmon – это система прокси-серверов, управляемых волонтерами из стран без ограничений на использование интернета. Для того, чтобы защитить эти серверы от блокировок цензорами, система использует специальный алгоритм присвоения пользователям уровня доверия.

Метод предполагает разоблачение потенциальных агентов цензоров, которые представляются обычными пользователями, чтобы узнать IP-адрес прокси-сервера и заблокировать его. Кроме того, противодействие атакам Сивиллы осуществляется с помощью требований предоставить при регистрации в системе ссылку на действующий аккаунт в соцсети или получить рекомендацию пользователя с высоким уровнем доверия.

Как это работает


Предполагается, что цензор – это контролируемый государством орган, который обладает возможностью взять под контроль любой маршрутизатор внутри страны. Также предполагается, что задача цензора – заблокировать доступ к определенным ресурсам, а не вычислять пользователей для дальнейших арестов. Система никак не может предотвратить подобное развитие событий – у государства есть масса возможностей узнать о том, какими сервисами пользуются граждане. Один из них – использование honeypot-серверов для перехвата коммуникаций.

Также предполагается, что государство обладает значительными ресурсами, в том числе человеческими. Цензор может решать задачи, для которых требуются сотни и тысячи full-time сотрудников.

Еще несколько базовых тезисов:

  • Задача системы – дать возможность обхода блокировок (т.е. Предоставить IP-адрес прокси-сервера) всем пользователям, живущим в регионах с онлайн-цензурой.
  • Агенты/сотрудники цензурирующих интернет органов и ведомств могут пытаться подключиться к системе под видом обычных пользователей.
  • Цензор может заблокировать любой прокси-сервер, адрес которого становится ему известен.
  • Организаторы системы Salmon в таком случае понимают, что цензор каким-то образом узнал адрес сервера.

Все это подводит нас к описанию трех ключевых компонентов системы преодоления блокировок.

  1. Система высчитывает вероятность того, что пользователь – агент цензурирующих организаций. Пользователей, которые признаны такими агентами с высокой вероятностью, банят.
  2. У каждого пользователя есть уровень доверия, которое нужно заслужить. Прокси-серверы с наивысшим быстродействием выделены для пользователей с максимальными уровнями доверия. Кроме того, это позволяет отделить надежных, проверенных временем пользователей от новичков, ведь именно среди них с наибольшей вероятностью будут агенты цензоров.
  3. Пользователи с высоким уровнем доверия могут приглашать в систему новых пользователей. В итоге получается социальный граф надежных пользователей.

Все логично: цензору обычно нужно заблокировать прокси-сервер здесь и сейчас, он не будет ждать долгое время, чтобы попытаться «прокачать» аккаунты своих агентов в системе. Кроме того, понятно и что новые пользователи могут изначально получать разный уровень доверия – например, друзья и родственники создателей проекта с меньшей вероятностью будут сотрудничать с государствами-цензорами.

Уровни доверия: подробности реализации


Уровень доверия есть не только у пользователей, но и у прокси-серверов. Система присваивает пользователю с определенным уровнем сервер с таким же уровнем доверия. При этом уровень доверия пользователей может как повышаться, так и понижаться, а в случае серверов он только растет.

Каждый раз, когда цензоры блокируют сервер, с которым работал определенный пользователь, его уровень доверия понижается. Доверие повышается, если сервер не блокируют длительное время – с каждым новым уровень необходимое время удваивается: чтобы перейти с уровня 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
  • Как понять, когда прокси лгут: верификация физических локаций сетевых прокси с помощью алгоритма активной геолокации
  • Как замаскироваться в интернете: сравниваем серверные и резидентные прокси
Источник: https://habr.com/ru/company/infatica/blog/457442/


Интересные статьи

Интересные статьи

В этой статье я расскажу, что такое Лексоранги, как ими пользуются в Jira, и как ими воспользовались мы для эффективной сортировки списков и перетаскивания элементов в нашем мобильном...
Вывод нового релиза проекта в продакшн требует тщательного соблюдения баланса между скоростью развёртывания и надёжностью решения. В компании Slack ценят быстрые итерации, короткие циклы обратной...
Вы работаете по вечерам? А в обед? В выходные? Иногда? Насколько «иногда»? А я работаю. Есть всякие красивые высказывания на счет внеурочной работы, например – я работаю, чтобы жить, а не живу...
В отзывах о Слёрме Kubernetes звучала фраза: «Kubernetes оказался проще, чем я думал». Сейчас уже не звучит, мифа о сложности k8s больше нет. Он перешел в разряд инструментов easy to learn, hard ...
Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода: - можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавле...