Децентрализованный интернет-провайдер «Medium» отказывается от использования SSL в пользу нативного шифрования Yggdrasil +14



Mesh-сети — это всегда хорошо. А если они работают — ещё лучше!

Доброго дня, Сообщество!

В этой статье я расскажу, почему децентрализованный интернет-провайдер «Medium» отказывается от использования SSL и удостоверяющих центров в пользу нативного шифрования Yggdrasil — чем был обусловлен такой выбор, зачем использовались средства SSL до этого момента и как теперь жить.

Подробности — под катом.



Напомните мне — что такое «Medium»?


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

Полное наименование — Medium Internet Service Provider. Изначально проект задумывался как Mesh-сеть в Коломенском городском округе.

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

Больше информации по теме: «Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить»

Что?


Децентрализованный интернет-провайдер «Medium» отказывается от использования SSL и удостоверяющих центров в пользу нативного шифрования Yggdrasil — это значит, что теперь шифрование посредством использования SSL осуществляться не будет — вместо этого будет повсеместно использовано сквозное шифрование, предусмотренное спецификациями Yggdrasil.

Топология сети «Medium» с этого момента принимает следующий вид:



Зачем?


Сквозное шифрование внутри сети Yggdrasil необходимо для того, чтобы избежать атак вида Man in the middle, которые позволяют злоумышленнику прослушивать чужой трафик.

Yggdrasil использует Curve25519, XSalsa20 и Poly1305 для обмена ключами, шифрования и аутентификации.

Почему?


Вопрос о необходимости использования шифрования трафика средствами SSL был поднят ещё давно — в те времена, когда «Medium» использовал I2P в качестве основного транспорта.

На тот момент ситуация обстояла следующим образом
image

SSL был необходим для того, чтобы избежать прослушки трафика на роутере «Medium». Схожая проблема есть и у сети Tor — только в отношении выходных узлов.

Трафик шёл от I2P до роутера «Medium» зашифрованным, после — расшифровывался клиентом I2P на том же роутере и передавался клиенту.

Так как соединение между клиентом и роутером «Medium» не было защищено, было предложено использовать криптографический протокол шифрования трафика — SSL, расположенный на седьмом уровне сетевой модели OSI.

В дальнейшем сообщество сети «Medium» полностью отказалось от использования удостоверяющих центров и SSL в пользу нативного шифрования Yggdrasil, так как задумка децентрализованной сети с централизованными удостоверяющими центрами казалась крайне нелепой.



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

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

Мы в Telegram: @medium_isp

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (18):

  1. Carduelis
    /#20526633 / +4

    Да что ж такое, опять я подумал, что речь про meduim.com, и секунд 20 залипал над вопросом, как же они собираются отказываться-то?


    Может быть стоит добавить что-то в название? Хотя бы символ какой

  2. mmMike
    /#20526661 / -1

    За три месяца мы подняли в общей сложности 11 точек сети «Medium» в России и одну — в Латвии
    Yggdrasil is written in Go. The codebase is fairly small and easy to navigate.

    Табличка на https://yggdrasil-network.github.io/about.html повеселила…
    Решения вопроса взаимного доверия между двумя точками (ради чего собственно структура CA и используется) как то не нашел.


    НУ шифрование точка точка… ну и что?

    • Scondo
      /#20527081

      Ну и ничего.

      В условиях самоподписанных сертификатов SSL от точки-точка не отличается.

      А в условиях шифрования точка-точка до DNS-сервера и до конечного узла (при том что адрес есть открытый ключ) DNS становится примерно эквивалентен CA: я доверяю серверу(и это точно он!) который сказал что это имя связано с тем узлом (и узел — точно он).

      • mmMike
        /#20527111

        "Адрес есть открытый ключ" — это как?
        Насколько я понял используются curve25519 ed25519 (альтернатива стандартной реализации ECDH).
        Адрес (даже ip6) в принципе не может служить публичным ключом сам по себе в EC криптографии.
        Так где элемент доверия паре адрес+публичный ключ в децентрализированной сети?

        • Scondo
          /#20527875

          Ну я упростил, но адрес формируется на основе sha512 от открытого ключа.

          1. Begin with 0x02 as the first byte of the address, or 0x03 if it's a /64 prefix.
          2. Count the number of leading 1 bits in the NodeID.
          3. Set the second byte of the address to the number of leading 1 bits in the NodeID (8 bit unsigned integer, at most 255).
          4. Append the NodeID to the remaining bits of the address, truncating the leading 1 bits and the first 0 bit, to a total address size of 128 bits.

          The NodeID is a sha512sum of a node's public encryption key. Addresses are checked that they match NodeID, to prevent address spoofing. As such, while a 128 bit IPv6 address is likely too short to be considered secure by cryptographer standards, there is a significant cost in attempting to cause an address collision. Addresses can be made more secure by brute force generating a large number of leading 1 bits in the NodeID.

  3. saipr
    /#20526665 / +1

    «Medium» отказывается от использования удостоверяющих центров в пользу нативного шифрования Yggdrasil

    Т я не понимаю, при чем здесь УЦ? Они ничего не шифруют. Они всего навсего выдают сертификаты, которые затем "Medium" использовал в своихх целях (для SSL/TLS). Сейчас они стали использовать другую технологию, всего навсего. А К услугам УЦ они так или иначе продоолжают прибегать. Так что прав Carduelis что-то не то в названии.

  4. Scondo
    /#20527087

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

    • mmMike
      /#20527249

      Установка соединения идет по IP (ip4, ip6)?
      называть адресом имя хоста (32 байта EC), по моему, не корректно.
      Все равно не понятно где возникает элемент доверия тому, что адрес IP = имени хоста (которое сразу публичный ключ).
      Т.е. доверяем хосту DNS?
      В распределенной одноранговой системе заменяем доверие СА на доверие DNS хосту и… И что изменилось принципиально?

      • Scondo
        /#20527839

        Да, доверяем хосту DNS. Потому что CA там и был тот же самый, что и DNS.

        То есть в смысле узла доверия сейчас ничего не изменилось. Но добавилось гибкости в части выбора DNS.

        Ну и минус двойное шифрование.

  5. domix32
    /#20527355

    Но при этом фишинг вполне себе становится вариантом. Выглядит как утка, шифрует как утка, ворует пароли как утка.
    А на что становится похож трафик со стороны? Насколько оно будет устойчиво к фильтрации via DPI?
    События 3 августа в центре Москвы натолкнули на мысль, что неплохо было бы иметь какую-то локально поднимаемую меш-сеть. Способен ли Medium+Yggdrasil обеспечить соединение с сетью поверх локальных нод? То есть когда кучка народа врубает какой-нибудь Bluetooth/WiFi и по нему идет трафик до ближайшего выхода в большой интернет?

    • podivilov
      /#20527559

      Да, Вы всё правильно понимаете — Medium образует уровень L2, а Yggdrasil уже поверх Medium — L3.

  6. Revertis
    /#20527717

    Перечитал всю главную Yggdrassil'а, предыдущий пост и этот, но так и не понял, зачем это может понадобиться именно мне.
    1. Полезные ресурсы в той сети есть? Посмотрев на список доменов, понял, что как-то всё наколеночно, и непонятно зачем.
    2. Я могу использовать эту сеть для доступа к моему серверу с Андроид-девайса через мобильный интернет? Например, у меня там и почта и nextcloud и впн через него идёт. А эта сеть мне как-то в этом поможет?

    Кроме того, вся система ДНС у вас вывернута на изнанку. Подтверждается не владение доменом, а владение айпишником.

    • podivilov
      /#20527769

      Прочтите спецификации Yggdrasil и всё встанет на свои места. IPv6-адрес в Yggdrasil извлекается из приватного ключа, поэтому для подтверждения владения хостом, закреплённым за IPv6-адресом, этого более чем достаточно.

      Обратите внимание — DNS не копирует записи из внешних DNS, поэтому «подтверждение владения доменом» — это условность. Пользователь владеет доменом до тех пор, пока находится в сети его хост. Который закреплён за доменным именем.

      Если хост не отвечает более 72 часов — доменное имя освобождается и может быть зарегистрировано любым другим участником сети.

      Всё прозрачно — история изменений ведётся в Git, поэтому смухлевать едва ли получится. Кроме того, у нас есть и зеркалирующие, аутентично настроенные DNS-сервера.

      image

      • Revertis
        /#20527831

        Да, я имел ввиду именно эту информацию.
        Логика вывернута на изнанку. И домены выдаются по принципу «кто раньше встал, того и тапки». Считаете это правильным?

        И хотелось бы ещё ответов на другие мои вопросы.

        • podivilov
          /#20527841

          Да, мы считаем это правильным. Вы можете сейчас зарегистрировать домен yandex.ru? Почему — нет? Просто Яндекс сделал это первым. Здесь разве отличная от этого логика?

          Если у Вас есть аккаунт в Telegram, приглашаем Вас в нашу группу — @medium_group. Мы с радостью ответим на все Ваши вопросы.

    • Scondo
      /#20528427

      Ну если подключить сервер к yggdrasil в режиме оверлея — то можно, да.

      Это один из сценариев использования: нечто среднее между vpn и инетом. (интерфейс открыт всем желающим, но данные зашифрованы)