Випуск Yggdrasil 0.4, реалізації приватної мережі, що працює поверх інтернету

 



ru.wikinews.org
хв

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-бенкетів.

Джерела ред. ]

Ця стаття містить матеріали зі статті « Випуск Yggdrasil 0.4, реалізації приватної мережі, що працює поверх інтернету », опублікованій OpenNET і яка поширюється на умовах ліцензії Creative Commons  Attribution (CC BY) - вказівка ​​автора, джерело та ліцензію .


The release of the reference implementation of the Yggdrasil 0.4 protocol has been published , which allows deploying a separate decentralized private IPv6 network on top of a regular WAN, which uses end-to-end encryption to protect confidentiality. Any existing applications that support IPv6 can be used to work through the Yggdrasil network. The implementation is written in Go and distributed under the LGPLv3 license. Linux, Windows, macOS, FreeBSD, OpenBSD and Ubiquiti EdgeRouter platforms are supported.


Yggdrasil is developing a new routing concept to create a global decentralized network, nodes in which can connect both directly to each other in a mesh network mode (for example, via Wi-Fi or Bluetooth), and interact over existing IPv6 or IPv4 networks (network over network) . A distinctive feature of Yggdrasil is the self-organization of work, without the need for explicit routing configuration - route information is calculated based on the location of the node in the network relative to other nodes. Devices are addressed through a regular IPv6 address, which does not change if a host moves (Yggdrasil uses the unused address range 0200::/7).


The entire Yggdrasil network is not viewed as a union of disparate subnets, but as a single structured spanning tree that has one "root" and each node has one parent and one or more children. This tree structure allows you to build a route to the destination node, relative to the source node, using the "locator" mechanism, which determines the optimal path to the node from the root.


Information about the tree is distributed among the nodes and is not stored centrally. A distributed hash table (DHT) is used to exchange routing data, with which a node can retrieve all information about the route to another node. The network itself provides only end-to-end encryption (transit nodes cannot determine the content), but not anonymity (when connected via the Internet, peer nodes with which direct interaction is carried out can determine the real IP address, therefore, for anonymity, it is suggested to connect nodes through Tor or I2P).


It is noted that despite the fact that the project is at the alpha development stage, it is already stable enough for daily use, but does not guarantee backward compatibility between releases. For Yggdrasil 0.4, a set of services are supported by the community , including a platform for hosting Linux containers for hosting their sites and the YaCy search engine, a Matrix communication server, an IRC server, DNS, a VoIP system, a BitTorrent tracker connection point map, a gateway to IPFS and a proxy for accessing Tor, I2P and clearnet networks.


In the new version:


New routing scheme not compatible with previous releases of Yggdrasil.

When establishing TLS connections with nodes, key pinning is involved. If there is no connection binding, the resulting key will be assigned to the connection. If the key does not match the binding, the connection will be rejected.

TLS is defined as the recommended method for connecting to key-binding peers.

The code for routing and session management has been completely redesigned and rewritten, which has increased throughput and reliability, especially for nodes that change peers frequently. In cryptographic sessions, periodic key rotation is implemented. Added support for Source routing, which can be used to redirect custom IPv6 traffic. Redesigned distributed hash table (DHT) architecture and added support for DHT-based routing. The implementation of routing algorithms is moved to a separate library.

IPv6 IP addresses are now generated from ed25519 public keys rather than their X25519 hash, which will change all internal IPs in the Yggdrasil 0.4 release.

Provided additional settings for searching for Multicast peers.

Sources [ edit ]


This article incorporates material from " Yggdrasil 0.4 Release, Implementation of a Private Network Running on Top of the Internet ", published by OpenNET and licensed under the Creative Commons  Attribution (CC BY) - attribution, source and license .

Просмотры:

Коментарі

Популярні публікації