Независимая телекоммуникационная среда Medium: как сообщество разрабатывает «Интернет 2.0»
Привет, Хабр!
Интернет — это всегда хорошо. Но ещё лучше, когда контроль над ним осуществляется сообществом, а не государством и корпорациями.
В этой публикации я расскажу о том, как и зачем сообщество энтузиастов разрабатывает Medium — децентрализованную альтернативу существующему на данный момент Интернету.
Так как процесс разработки до некоторого времени был в большей степени закрытым, у некоторых из пользователей вполне закономерно сформировалось двоякое мнение о сети.
Метаморфозы, которые претерпел проект за всё время его становления, неискушённому человеку в действительности могут показаться чрезвычайно странными.
Поэтому в публикации также представлена своего рода «работа над ошибками» — исчерпывающий перечень ошибок, с которыми мы столкнулись во время разработки Medium.
TL;DR
24 апреля 2019 года на свет появился проект, целью которого стало создание независимой телекоммуникационной среды на территории Российской Федерации.
Мы назвали его Medium, что в переводе с английского означает «посредник» (один из возможных вариантов перевода — «промежуточный»), — это слово отлично подходит для обобщения концепции нашей сети.
Наша общая цель — развёртывание Mesh-сети на уровне L2 и поддержка развития оверлейных Mesh-сетей на уровне L3 (например, мы принимаем активное участие в разработке программного обеспечения для сети Yggdrasil).
Карта сети Medium на примере города Коломна
Что из себя представляет Medium?
Medium (англ. Medium — «посредник», оригинальный слоган — Don’t ask for your privacy. Take it back; также в английском слово medium значит «промежуточный») — независимая телекоммуникационная среда, предоставляющая услуги доступа к сети Yggdrasil на безвозмездной основе.
Что такое Yggdrasil?
Yggdrasil — это распределённая Mesh-сеть, которая работает в оверлей-режиме и позволяет сделать «интернет поверх интернета».
Образован в апреле 2019 года в рамках создания независимой телекоммуникационной среды путём предоставления конечным пользователям доступа к ресурсам сети Yggdrasil посредством использования технологии беспроводной передачи данных Wi-Fi.
Yggdrasil является сетевым транспортом, который использует Medium для обеспечения связности между т.н. «сетевыми островками» — группами устройств, объединённых друг с другом посредством использования сетевых протоколов B.A.T.M.A.N. и 801.11s.
Топология сети Medium
Предпосылки к созданию независимой телекоммуникационной среды
1 ноября 2019 года закон о «суверенном интернете» вступил в силу.
Это значит, что:
Операторы связи будут обязаны установить государственное оборудование на точках обмена трафиком внутри страны и линиях связи, пересекающих границу РФ
Будет реализована возможность «централизованного управления» Рунетом
Обмен трафиком между операторами связи будет осуществляться только через точки обмена, внесённые в специальный реестр, порядок включения в который будет определён правительством РФ
Будет реализовано ограничение доступа к запрещённым в РФ интернет-ресурсам
Будет создана «национальная система доменных имен»
К сожалению, как он будет (и будет ли?) работать — не совсем понятно: точных инструкций для операторов связи пока что в открытом доступе нет. Также нет и методов, штрафов, планов, распределения обязанностей и ответственных — есть просто декларирование.
Схожая ситуация наблюдалась и в отношении реализации планов «закона Яровой» — оборудование для закона не успели разработать в срок и ведущие операторы связи страны были вынуждены неоднократно обращаться к потенциальным производителям специализированного оборудования с соответствующими вопросами. Однако и те не получили ответа ни о сведениях об оборудовании, ни самих образцов.
Но главное — не то, что закон уже вступил в силу. Главное — это то, что благодаря введению данного законопроекта сообщество энтузиастов начало развёртывание независимой телекоммуникационной среды в нашей стране.
Почему такое название, которое очень легко перепутать с medium.com?
Ответ: Так как мы строим Mesh-сеть на уровне L2 посредством использования беспроводных протоколов B.A.T.M.A.N. и 802.11s, вполне логично было придумать название, так или иначе связанное с беспроводными технологиями.
В случае с нашей сетью — мы приняли решение остановиться на таком названии, потому что оно отлично описывало суть проекта.
Во-первых, «medium» можно перевести с английского языка как «посредник» (или «промежуточный») — каждый оператор сети в своём роде является посредником между конечным пользователем и самой сетью. Кстати, внутри сообщества операторов сети мы неофициально называем медиумами.
Во-вторых, согласно Википедии, «медиум — чувствительное физическое лицо, которое, как считают последователи спиритуализма, служит связующим звеном между двумя мирами: материальным и духовным». Действительно: это определение очень хорошо вписывается в нашу концепцию сети!
Неоднократно упоминалось, что неискушенному человеку легко спутать нашу сеть с ресурсом medium.com по причине схожести названия. Это действительно так, но в сообществе мы не считаем это острой проблемой — например, участники сети Yggdrasil уже давно знают, что Medium — это про mesh, а не про блоги.
Тем более, мы не являемся коммерческой организацией и согласно с десятым принципом нашего манифеста «возможность независимого развития проекта значительно важнее возможности получения прибыли от осуществляемой Сообществом деятельности».
Сфера нашей деятельности не пересекается с той, в которой преуспел medium.com. Да и было бы нецелесообразно создавать ещё одну блог-платформу со схожим названием. Однако так как мы преследуем иные цели, было решено оставить это название в память о первоначальной задумке проекта.
Не боитесь гонений со стороны фсб/ркн и т.п. организаций?
Ответ: Мы активно сотрудничаем с РосКомСвободой и уже направляли обращение в Минкомсвязи. Даже ответ получили. Вот только он оказался не совсем полезным — там содержится только выписка из свода законов. В данный момент мы ожидаем дополнительного ответа.
В дефолт-сити я что-то не нашел энтузиастов (ну или на карте у вас они не отмечены). Полтора человека не в счет.
Ответ: Да, к сожалению, на данный момент в Москве нет активных точек. Мы планируем исправить эту ситуацию в ближайшее время.
Не планируете ли продавать свои железки для организации сети «из коробки»?
Ответ: В дальнейшей перспективе это естественный вариант развития событий. На данный момент мы работаем над генератором прошивок OpenWRT под оборудование, совместимое с 802.11s.
Не нашёл никаких технических деталей.
Yggdrasil мне известен, но что представляет собой вам проект Medium? nic.medium не работает, на гитхабе никакой инфы нет.
Ответ: Yggdrasil работает уже поверх существующей сети на уровне L3. Medium — это сетевая инфраструктура, поверх которой работает Yggdrasil. Medium использует разные протоколы для организации топологии partial mesh — B.A.T.M.A.N. и 802.11s. Для того, чтобы «связать» все узлы сети Medium и используется Yggdrasil.
Насколько легальна эта затея и какие могут возникнуть последствия?
Ответ: Это совершенно легально и никаких последствий возникнуть не должно. Мы тесно сотрудничаем с РосКомСвободой (у которой, к слову, очень богатая судебная практика в сфере информационных технологий) и консультировались с ней по этому поводу.
Этот вопрос уже обсуждался как участниками сообщества, так и нами — и мы не обнаружили никаких проблем с безвозмездным предоставлением услуг подвижной радиосвязи децентрализованным интернет-провайдером Medium на территории РФ.
И напоследок:
Где гарантии, что пира не посадят, как Богатова?
Ответ: Пир обеспечивает связность внутри сети Yggdrasil. Если вы специально не установите там прокси в большой Интернет, и не расскажете всем о нём, то ничего вам не грозит.
Из небезызвестного произведения Ильи Ильфа и Петрова
«Полное спокойствие может дать человеку только страховой полис, — ответил Остап, не замедляя хода. — Так вам скажет любой агент по страхованию жизни. Лично мне вы больше не нужны. Вот государство, оно, вероятно, скоро вами заинтересуется.»
Работа над ошибками
«Опыт — сын ошибок трудных». За время разработки сети Medium мы успели разрешить множество проблем, возникавших на нашем пути.
Ошибка №1: инфраструктура открытых ключей
Одной из главных проблем на момент проектирования сети была возможность проведения MITM-атаки. Трафик между роутером оператора и устройством клиента никаким образом не шифровался, потому как расшифровка основного трафика производилась непосредственно на роутере оператора.
Проблема заключалась в том, что за роутером мог быть кто угодно — и нам очень не хотелось, чтобы этот «кто-то» мог слушать всё, что получают клиенты.
Благодаря использованию 7 уровня сетевой модели OSI мы избавились от атак типа MITM, но обзавелись новой проблемой — необходимостью установки сертификатов корневых удостоверяющих центров. А удостоверяющие центры — это ещё одна лишняя проблема. Ключевое слово здесь — «доверие».
Опять нужно кому-то доверять! А вдруг центр сертификации окажется скомпрометирован? Как нам подсказывает товарищ Мерфи, — рано или поздно удостоверяющий центр действительно скомпрометируют. И это — горькая правда.
Мы долго думали над разрешением и этой проблемы и в конечном итоге пришли к выводу, что необходимости в использовании PKI нет — достаточно использовать нативное шифрование Yggdrasil.
После внесения соответствующих корректив топология сети Medium приняла следующий вид
Ошибка №2: централизованный DNS
Система доменных имён нам была необходима с самого начала, потому как громоздкие IPv6-адреса не то, чтобы смотрелись не очень — было неудобно их использовать в гиперссылках, да и отсутствие семантической составляющей являлось большим неудобством.
Мы создали несколько корневых DNS-серверов, которые хранили в себе копию перечня AAAA-записей, расположенного в репозитории на GitHub.
Это дело выглядело вот так
Однако проблема доверия никуда не делась — подмену IPv6-адреса на DNS-сервере его оператор мог осуществить в мгновение ока. При наличии определённой сноровки — даже почти незаметно для других.
Так как мы не используем HTTPS и, в частности, технологию HSTS, при подмене адреса в DNS можно было провести атаку подменой IPv6-адреса конечного сервера без каких-либо проблем.
Решение не заставило себя ждать: мы решили прибегнуть к разработке собственной реализации DNS-серверов.
Первой реализацией стал Wyrd — децентрализованная реализация DNS, которая являла из себя своеобразный краулер, обходящий все узлы сети Yggdrasil, попутно собирая соотношения «название узла» — «IPv6-адрес» и формируя из этого базу данных доменных имён.
Второй реализацией стал Doppler — гораздо более простая реализация сервера доменных имён.
Его принцип действия предельно прост: из IPv6-адреса узла сети Yggdrasil генерируется строка в формате Base32.
Изначально слово «Интернет» подразумевало под собой не что иное, как interconnected networks или сеть сетей.
Со временем Интернет перестал ассоциироваться у людей с чем-то академическим и стал более обыденным понятием, так как его влияние широко распространилось на жизнь обычных людей.
То есть, изначально Интернет был децентрализован. Сейчас это уже тяжело назвать децентрализацией, несмотря на то, что концепция сохранилась и по наше время — вот только самые большие узлы обмена трафиком контролируют большие компании. А большие компании, в свою очередь, контролирует государство.
Но вернёмся к нашей проблеме — тенденцию к централизации задают операторы отдельных сервисов вроде социальных сетей, серверов электронной почты, мессенджеров и так далее.
Medium в этом плане практически ничем от большого Интернета не отличался до настоящего времени — большинство сервисов были централизованы и контролировались отдельными операторами.
Теперь же мы решили взять курс на полную децентрализацию — чтобы жизненно важные сервисы могли продолжать работу вне зависимости от того, довелось ли приключиться сбою на центральном сервере оператора или нет.
Конечно, большинство сервисов всё ещё централизованы и по-прежнему контролируются отдельными операторами, но главное — это то, что движение в сторону полной децентрализации есть и оно чувствуется всеми участниками сообщества.
Ошибка №4: называть себя интернет-провайдером, по сути таковым не являясь
Очень долгое время мы ошибочно называли Medium интернет-провайдером.
Некоторые из наблюдателей выдвигали предположения, что это — маркетинговая уловка. Но на самом деле всё было куда проще — на стадии зарождения проекта нам было было необходимо добавить к названию сети Medium пару слов, чтобы хоть как-либо отличаться от одноимённой блоговой платформы и не вводить людей в заблуждение.
По этой причине мы долгое время называли себя интернет-провайдером и только когда пользователь ValdikSS сделал нам замечание по этому поводу, мы пересмотрели своё отношение к такому названию и планомерно, шаг за шагом стали от него отказываться.
Во время этих перипетий многие наблюдатели могли замечать несуразные проблемы, возникавшие на ровном месте: ссылки, которые вели в никуда, устаревшие названия проекта и проч.
Но главное — это то, что мы признали свою ошибку и исправились.
Настоящее время
В настоящее время сеть жива и активно развивается.
Мы прилагаем все усилия для того, чтобы развернуть в России по-настоящему независимую телекоммуникационную среду.