Доброго дня, Сообщество!
В этой статье я расскажу, почему децентрализованный интернет-провайдер «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 в качестве основного транспорта.
SSL был необходим для того, чтобы избежать прослушки трафика на роутере «Medium». Схожая проблема есть и у сети Tor — только в отношении выходных узлов.
Трафик шёл от I2P до роутера «Medium» зашифрованным, после — расшифровывался клиентом I2P на том же роутере и передавался клиенту.
Так как соединение между клиентом и роутером «Medium» не было защищено, было предложено использовать криптографический протокол шифрования трафика — SSL, расположенный на седьмом уровне сетевой модели OSI.
В дальнейшем сообщество сети «Medium» полностью отказалось от использования удостоверяющих центров и SSL в пользу нативного шифрования Yggdrasil, так как задумка децентрализованной сети с централизованными удостоверяющими центрами казалась крайне нелепой.
Читайте также:
Всё, что вы хотели знать о децентрализованном интернет-провайдере «Medium», но боялись спросить
Дорогая, мы убиваем Интернет
Децентрализованный интернет-провайдер «Medium» — три месяца спустя
Мы в Telegram: @medium_isp
Комментарии (18)
mmMike
20.08.2019 10:59-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
20.08.2019 12:20Ну и ничего.
В условиях самоподписанных сертификатов SSL от точки-точка не отличается.
А в условиях шифрования точка-точка до DNS-сервера и до конечного узла (при том что адрес есть открытый ключ) DNS становится примерно эквивалентен CA: я доверяю серверу(и это точно он!) который сказал что это имя связано с тем узлом (и узел — точно он).mmMike
20.08.2019 12:31"Адрес есть открытый ключ" — это как?
Насколько я понял используются curve25519 ed25519 (альтернатива стандартной реализации ECDH).
Адрес (даже ip6) в принципе не может служить публичным ключом сам по себе в EC криптографии.
Так где элемент доверия паре адрес+публичный ключ в децентрализированной сети?Scondo
20.08.2019 15:11Ну я упростил, но адрес формируется на основе sha512 от открытого ключа.
- Begin with 0x02 as the first byte of the address, or 0x03 if it's a /64 prefix.
- Count the number of leading 1 bits in the NodeID.
- Set the second byte of the address to the number of leading 1 bits in the NodeID (8 bit unsigned integer, at most 255).
- 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.
saipr
20.08.2019 11:00+1«Medium» отказывается от использования удостоверяющих центров в пользу нативного шифрования Yggdrasil
Т я не понимаю, при чем здесь УЦ? Они ничего не шифруют. Они всего навсего выдают сертификаты, которые затем "Medium" использовал в своихх целях (для SSL/TLS). Сейчас они стали использовать другую технологию, всего навсего. А К услугам УЦ они так или иначе продоолжают прибегать. Так что прав Carduelis что-то не то в названии.
Scondo
20.08.2019 12:22Наверное надо упомянуть что в Yggdrasil адреса формируются из открытых ключей шифрования. Таким образом подключение к узлу с заданным адресом не просто зашифровано, но относительно гарантированно что это один и тот же узел и не произошло подмены.
mmMike
20.08.2019 12:59Установка соединения идет по IP (ip4, ip6)?
называть адресом имя хоста (32 байта EC), по моему, не корректно.
Все равно не понятно где возникает элемент доверия тому, что адрес IP = имени хоста (которое сразу публичный ключ).
Т.е. доверяем хосту DNS?
В распределенной одноранговой системе заменяем доверие СА на доверие DNS хосту и… И что изменилось принципиально?Scondo
20.08.2019 15:02Да, доверяем хосту DNS. Потому что CA там и был тот же самый, что и DNS.
То есть в смысле узла доверия сейчас ничего не изменилось. Но добавилось гибкости в части выбора DNS.
Ну и минус двойное шифрование.
domix32
20.08.2019 13:27Но при этом фишинг вполне себе становится вариантом. Выглядит как утка, шифрует как утка, ворует пароли как утка.
А на что становится похож трафик со стороны? Насколько оно будет устойчиво к фильтрации via DPI?
События 3 августа в центре Москвы натолкнули на мысль, что неплохо было бы иметь какую-то локально поднимаемую меш-сеть. Способен ли Medium+Yggdrasil обеспечить соединение с сетью поверх локальных нод? То есть когда кучка народа врубает какой-нибудь Bluetooth/WiFi и по нему идет трафик до ближайшего выхода в большой интернет?podivilov Автор
20.08.2019 14:09Да, Вы всё правильно понимаете — Medium образует уровень L2, а Yggdrasil уже поверх Medium — L3.
Revertis
20.08.2019 14:41Перечитал всю главную Yggdrassil'а, предыдущий пост и этот, но так и не понял, зачем это может понадобиться именно мне.
1. Полезные ресурсы в той сети есть? Посмотрев на список доменов, понял, что как-то всё наколеночно, и непонятно зачем.
2. Я могу использовать эту сеть для доступа к моему серверу с Андроид-девайса через мобильный интернет? Например, у меня там и почта и nextcloud и впн через него идёт. А эта сеть мне как-то в этом поможет?
Кроме того, вся система ДНС у вас вывернута на изнанку. Подтверждается не владение доменом, а владение айпишником.podivilov Автор
20.08.2019 14:49Прочтите спецификации Yggdrasil и всё встанет на свои места. IPv6-адрес в Yggdrasil извлекается из приватного ключа, поэтому для подтверждения владения хостом, закреплённым за IPv6-адресом, этого более чем достаточно.
Обратите внимание — DNS не копирует записи из внешних DNS, поэтому «подтверждение владения доменом» — это условность. Пользователь владеет доменом до тех пор, пока находится в сети его хост. Который закреплён за доменным именем.
Если хост не отвечает более 72 часов — доменное имя освобождается и может быть зарегистрировано любым другим участником сети.
Всё прозрачно — история изменений ведётся в Git, поэтому смухлевать едва ли получится. Кроме того, у нас есть и зеркалирующие, аутентично настроенные DNS-сервера.
Revertis
20.08.2019 15:01Да, я имел ввиду именно эту информацию.
Логика вывернута на изнанку. И домены выдаются по принципу «кто раньше встал, того и тапки». Считаете это правильным?
И хотелось бы ещё ответов на другие мои вопросы.podivilov Автор
20.08.2019 15:03Да, мы считаем это правильным. Вы можете сейчас зарегистрировать домен yandex.ru? Почему — нет? Просто Яндекс сделал это первым. Здесь разве отличная от этого логика?
Если у Вас есть аккаунт в Telegram, приглашаем Вас в нашу группу — @medium_group. Мы с радостью ответим на все Ваши вопросы.
Carduelis
Да что ж такое, опять я подумал, что речь про meduim.com, и секунд 20 залипал над вопросом, как же они собираются отказываться-то?
Может быть стоит добавить что-то в название? Хотя бы символ какой