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

    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

    Only registered users can participate in poll. Log in, please.

    Альтернативное голосование: нам важно знать мнение тех, кто не имеет полноправного аккаунта на Хабре

    Medium
    52.42
    Go Medium!
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 20

      +7

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


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

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

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


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

          0
          Ну и ничего.

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

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

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

              0
              Ну я упростил, но адрес формируется на основе 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.
          +1
          «Medium» отказывается от использования удостоверяющих центров в пользу нативного шифрования Yggdrasil

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    Это один из сценариев использования: нечто среднее между vpn и инетом. (интерфейс открыт всем желающим, но данные зашифрованы)
                      0
                      Всё верно!
                    0
                    Так от чесночной маршрутизации отказались? Её нет нативно — нужно поднимать I2P поверх Yggdrasil?
                      0
                      На самом деле вопрос в том, какую задачу ставить перед собой.

                      Если задача — обеспечить анонимность, то можно поднимать I2P поверх Yggdrasil.
                      Если задача — просто получить доступ к данным/сервисам, то Yggdrasil хватает.

                      Одна из идей, которые стояли за Cjdns и Yggdrasil: анонимность нужна не всем и быстродействие важнее (а чесночный роутинг с искусственными дополнительными узлами очевидно снижает быстродействие).

                    Only users with full accounts can post comments. Log in, please.