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

Опубліковано випуск еталонної реалізації протоколу 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-бенкетів.

Джерело: opennet.ru

Додати коментар або відгук