Выпуск Yggdrasil 0.4, реализации приватной сети, работающей поверх интернета
5 июля 2021 года
Опубликован выпуск эталонной реализации протокола Yggdrasil 0.4, позволяющего поверх обычной глобальной сети развернуть отдельную децентрализованную приватную IPv6-сеть, для защиты конфиденциальности в которой применяется сквозное шифрование. Для работы через сеть Yggdrasil могут использоваться любые существующие приложения, поддерживающие IPv6. Реализация написана на языке Go и распространяется под лицензией LGPLv3. Поддерживаются платформы Linux, Windows, macOS, FreeBSD, OpenBSD и Ubiquiti EdgeRouter.
Yggdrasil развивает новую концепцию маршрутизации для создания глобальной децентрализованной сети, узлы в которой могут соединяться как напрямую между собой в режиме mesh-сети (например, через Wi-Fi или Bluetooth), так и взаимодействовать поверх существующих IPv6 или IPv4 сетей (сеть поверх сети). Отличительной особенностью Yggdrasil является самоорганизация работы, без необходимости явной настройки маршрутизации - информация о маршрутах рассчитывается отталкиваясь от расположения узла в сети относительно других узлов. Устройства адресуются через обычный адрес IPv6, который не меняется в случае перемещения узла (в Yggdrasil задействован неиспользуемый диапазон адресов 0200::/7).
Вся сеть Yggdrasil рассматривается не как объединение разрозненный подсетей, а как единое структурированное остовное дерево, у которого имеется один "корень", а каждый узел имеет одного родителя, а также одного или нескольких потомков. Подобная древовидная структура позволяет построить маршрут к узлу назначения, относительно узла источника, используя механизм "locator", определяющий оптимальный путь к узлу от корня.
Информация о дереве распределяется между узлами и не хранится централизованно. Для обмена данными о маршрутизации применяется распределённая хэш-таблица (DHT), при помощи которой узел может извлечь всю информацию о маршруте к другому узлу. Сама по себе сеть обеспечивает лишь сквозное шифрование (транзитные узлы не могут определить содержимое), но не анонимность (при подключении через интернет, одноранговые узлы, с которыми осуществляется прямое взаимодействие, могут определить реальный IP-адрес, поэтому для анонимности предлагается подключать узлы через Tor или I2P).
Отмечается, что несмотря на нахождение проекта на стадии альфа-разработки, он уже достаточно стабилен для ежедневного использования, но не гарантирует обратную совместимость между выпусками. Для Yggdrasil 0.4 сообществом поддерживается набор сервисов, включая платформу для размещения Linux-контейнеров для хостига своих сайтов и поисковую систему YaCy, коммуникационный сервер Matrix, IRC-сервер, DNS, систему VoIP, BitTorrent-трекер карту точек подключения, шлюз в IPFS и прокси для обращения к сетям Tor, I2P и clearnet.
В новой версии:
- Новая схема маршрутизации, не совместимая с прошлыми выпусками Yggdrasil.
- При установке TLS-соединений с узлами задействована привязка открытых ключей (key pinning). Если привязка при соединении отсутствует полученный ключ будет закреплён за соединением. Если ключ не соответствует привязке, соединение будет отвергнуто.
- TLS определён как рекомендованный метод подключения к пирам с привязкой ключей.
- Полностью переработан и переписан код для маршрутизации и управления сеансами, что позволило увеличить пропускную способность и надёжность работы, особенно для узлов, часто меняющих пиры. В криптографических сеансах реализована периодическая ротация ключей. Добавлена поддержка маршрутизации по источнику (Source routing), которая может использоваться для перенаправления пользовательского IPv6 трафика. Переработана архитектура распределённой хэш-таблицы (DHT) и добавлена поддержка маршрутизации на основе DHT. Реализация алгоритмов маршрутизации вынесена в отдельную библиотеку.
- IP-адреса IPv6 теперь формируются из открытых ключей ed25519, а не их хэша X25519, что приведёт к смене всех внутренних IP в выпуске Yggdrasil 0.4.
- Предоставлены дополнительные настройки для поиска Multicast-пиров.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.