Выпуск 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

Дадаць каментар