Хабрахабр

Что нам стоит Mesh построить: как децентрализованный интернет-провайдер «Medium» делает новый Интернет на базе Yggdrasil

Приветствую!

Наверняка для вас не будет большой новостью то, что «Суверенный Рунет» не за горами — закон вступает в силу уже 1 ноября этого года.

Также нет и методов, штрафов, планов, распределения обязанностей и ответственных — есть просто декларирование. К сожалению, как он будет (и будет ли?) работать — не совсем понятно: точных инструкций для операторов связи пока что в открытом доступе нет.

Однако и те не получили ответа ни о сведениях об оборудовании, ни самих образцов. Схожая ситуация наблюдалась и в отношении реализации планов «закона Яровой» — оборудование для закона не успели разработать в срок и ведущие операторы связи страны были вынуждены неоднократно обращаться к потенциальным производителям специализированного оборудования с соответствующими вопросами.

Главное — это то, что благодаря введению данного законопроекта сообщество энтузиастов начало развёртывание независимой телекоммуникационной среды в нашей стране. Но главное — не то, как скоро вступит в силу закон и какие нас ожидают изменения.

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

О чём закон?

Прежде чем приступить к технической части нашего проекта, мне необходимо оговориться о том, что же из себя представляет закон «О суверенном Рунете».

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

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

Звучит не очень правдоподобно.

Что такое «Medium»?

Medium (англ. Medium — «посредник», оригинальный слоган — Don't ask for your privacy. Take it back; также в английском слово medium значит «промежуточный») — российский децентрализованный интернет-провайдер, предоставляющий услуги доступа к сети Yggdrasil на безвозмездной основе.

Когда, где и зачем был создан «Medium»?

Изначально проект задумывался как Mesh-сеть в Коломенском городском округе.

«Medium» образован в апреле 2019 года в рамках создания независимой телекоммуникационной среды путём предоставления конечным пользователям доступа к ресурсам сети Yggdrasil посредством использования технологии беспроводной передачи данных Wi-Fi.

Что такое Yggdrasil и почему «Medium» использует его в качестве основного транспорта?

Yggdrasil — это самоорганизующаяся Mesh-сеть, имеющая возможность подключения роутеров как в режиме оверлея (поверх сети Интернет), так и непосредственно друг к другу через проводное или беспроводное соединение.

Главным отличием Yggdrasil от CjDNS является использование протокола STP (spanning tree protocol). Yggdrasil является продолжением проекта CjDNS.

По умолчанию все роутеры сети используют сквозное шифрование для передачи данных между другими участниками.

Выбор сети Yggdrasil как основного транспорта был обусловлен потребностью в увеличении скорости соединения (до августа 2019 года «Medium» использовал I2P).

Такая организация сети — самый действенный антидот против цензуры. Переход на Yggdrasil также предоставил участникам проекта возможность начать развёртывание Mesh-сети с топологией Full-Mesh.

Разбор полётов: на какие грабли мы уже успели наступить

«Опыт — сын ошибок трудных». За время разработки «Medium» мы успели разрешить множество проблем, возникавших на нашем пути.

Ошибка №1: инфраструктура открытых ключей

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

Проблема заключалась в том, что за роутером мог быть кто угодно — и нам очень не хотелось, чтобы этот «кто-то» мог слушать всё, что получают клиенты.

Первой нашей ошибкой было введение в действие инфраструктуры открытых ключей (PKI).

А удостоверяющие центры — это ещё одна лишняя проблема. Благодаря использованию 7 уровня сетевой модели OSI мы избавились от атак типа MITM, но обзавелись новой проблемой — необходимостью установки сертификатов корневых удостоверяющих центров. Ключевое слово здесь — «доверие».

А вдруг центр сертификации окажется скомпрометирован? Опять нужно кому-то доверять! И это — горькая правда. Как нам подсказывает товарищ Мерфи, — рано или поздно удостоверяющий центр действительно скомпрометируют.

Мы долго думали над разрешением и этой проблемы и в конечном итоге пришли к выводу, что необходимости в использовании PKI нет — достаточно использовать нативное шифрование Yggdrasil.

После внесения соответствующих корректив топология сети «Medium» приняла следующий вид:

Ошибка №2: централизованный DNS

Система доменных имён нам была необходима с самого начала, потому как громоздкие IPv6-адреса не то, чтобы смотрелись не очень — было неудобно их использовать в гиперссылках, да и отсутствие семантической составляющей являлось большим неудобством.

Мы создали несколько корневых DNS-серверов, которые хранили в себе копию перечня AAAA-записей, расположенного в репозитории на GitHub.

Однако проблема доверия никуда не делась — подмену IPv6-адреса на DNS-сервере его оператор мог осуществить в мгновение ока. При наличии определённой сноровки — даже почти незаметно для других.

Так как мы не используем HTTPS и, в частности, технологию HSTS, при подмене адреса в DNS можно было провести атаку подменой IPv6-адреса конечного сервера без каких-либо проблем.

Решение не заставило себя ждать: мы решили прибегнуть к использованию технологии EmerDNS — децентрализованного DNS.

Но в отличие от hosts: В каком-то смысле, EmerDNS подобен файлу hosts, где присутствуют записи обо всех известных сайтах.

  • Каждую строчку в EmerDNS может модифицировать только её владелец, и никто иной
  • Невозможность «вмешательства бога (супер-админа)» обеспечивается консенсусом майнеров
  • Этот файл у всех одинаков, что обеспечивается механизмом репликации блокчейна
  • К файлу приложен быстрый поисковик

Источник: «EmerDNS — альтернатива DNSSEC»

Ошибка №3: централизованное всё

Изначально слово «Интернет» подразумевало под собой не что иное, как interconnected networks или сеть сетей.

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

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

Но вернёмся к нашей проблеме — тенденцию к централизации задают операторы отдельных сервисов вроде социальных сетей, серверов электронной почты, мессенджеров и так далее.

«Medium» в этом плане практически ничем от большого Интернета не отличался до настоящего времени — большинство сервисов были централизованы и контролировались отдельными операторами.

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

В качестве социальных сетей — Mastodon и Hubzilla. В качестве системы для мгновенного обмена сообщениями мы используем Matrix. Для видеохостинга — PeerTube.

Конечно, большинство сервисов всё ещё централизованы и по-прежнему контролируются отдельными операторами, но главное — это то, что движение в сторону полной децентрализации есть и оно чувствуется всеми участниками сообщества.

Свободный Интернет в России начинается с Вас

Вы можете оказать посильную помощь становлению свободного Интернета в России уже сегодня. Мы составили исчерпывающий перечень того, чем именно вы можете помочь сети:

       Расскажите о сети «Medium» своим друзьям и коллегам
       Поделитесь ссылкой на эту статью в социальных сетях или персональном блоге
       Примите участие в обсуждении технических вопросов сети «Medium» на GitHub
       Создайте свой веб-сервис в сети Yggdrasil
       Поднимите свою точку доступа к сети «Medium»

Читайте также:

Мне нечего скрывать
Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить
Дорогая, мы убиваем Интернет

Есть вопросы? Присоединяйтесь к обсуждению в Telegram: @medium_general.

Небольшой презент для тех, кто дочитал до конца

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть