Wydanie Yggdrasil 0.4, implementacja sieci prywatnej działającej na szczycie internetu

Opublikowano wydanie referencyjnej implementacji protokołu Yggdrasil 0.4, który umożliwia wdrożenie oddzielnej zdecentralizowanej prywatnej sieci IPv6 na zwykłej sieci globalnej, która wykorzystuje szyfrowanie typu end-to-end w celu ochrony poufności. Do pracy w sieci Yggdrasil można używać wszelkich istniejących aplikacji obsługujących protokół IPv6. Implementacja napisana jest w Go i rozpowszechniana na licencji LGPLv3. Obsługiwane są platformy Linux, Windows, macOS, FreeBSD, OpenBSD i Ubiquiti EdgeRouter.

Yggdrasil opracowuje nową koncepcję routingu w celu stworzenia globalnej zdecentralizowanej sieci, której węzły mogą łączyć się bezpośrednio ze sobą w trybie sieci kratowej (na przykład przez Wi-Fi lub Bluetooth) lub wchodzić w interakcje za pośrednictwem istniejących sieci IPv6 lub IPv4 (sieć na na górze sieci). Cechą wyróżniającą Yggdrasil jest samoorganizacja pracy, bez konieczności jawnego konfigurowania routingu – informacje o trasach wyliczane są na podstawie lokalizacji węzła w sieci względem innych węzłów. Urządzenia adresowane są poprzez zwykły adres IPv6, który nie zmienia się w przypadku ruchu węzła (Yggdrasil wykorzystuje niewykorzystany zakres adresów 0200::/7).

Cała sieć Yggdrasil nie jest postrzegana jako zbiór odrębnych podsieci, ale jako pojedyncze strukturalne drzewo rozpinające z jednym „korzeniem”, a każdy węzeł ma jednego rodzica i jedno lub więcej dzieci. Taka struktura drzewiasta pozwala na zbudowanie trasy do węzła docelowego względem węzła źródłowego, wykorzystując mechanizm „lokatora”, który wyznacza optymalną ścieżkę do węzła od korzenia.

Informacje o drzewie są rozprowadzane pomiędzy węzłami i nie są przechowywane centralnie. Do wymiany informacji o routingu używana jest rozproszona tablica mieszająca (DHT), za pomocą której węzeł może pobrać wszystkie informacje o trasie do innego węzła. Sama sieć zapewnia jedynie szyfrowanie typu end-to-end (węzły tranzytowe nie mogą określić zawartości), ale nie anonimowość (podczas łączenia się przez Internet równorzędni, z którymi prowadzona jest bezpośrednia interakcja, mogą określić prawdziwy adres IP, więc dla anonimowości jest to zaproponowano łączenie węzłów poprzez Tor lub I2P).

Należy zauważyć, że pomimo tego, że projekt znajduje się w fazie rozwoju alfa, jest już wystarczająco stabilny do codziennego użytku, ale nie gwarantuje kompatybilności wstecznej pomiędzy wydaniami. W przypadku Yggdrasil 0.4 społeczność obsługuje zestaw usług, w tym platformę do hostowania kontenerów Linux do hostowania swoich witryn, wyszukiwarkę YaCy, serwer komunikacyjny Matrix, serwer IRC, DNS, system VoIP, moduł śledzący BitTorrent, mapę punktów połączeń, bramę IPFS i proxy umożliwiające dostęp do sieci Tor, I2P i Clearnet.

W nowej wersji:

  • Zaimplementowano nowy schemat routingu, który nie jest kompatybilny z poprzednimi wersjami Yggdrasil.
  • Podczas nawiązywania połączeń TLS z hostami zaangażowane jest wiązanie klucza publicznego (przypinanie klucza). Jeśli na połączeniu nie było powiązania, powstały klucz zostanie przypisany do połączenia. Jeśli ustanowiono powiązanie, ale klucz do niego nie pasuje, połączenie zostanie odrzucone. TLS z powiązaniem klucza jest zdefiniowany jako zalecana metoda łączenia się z urządzeniami równorzędnymi.
  • Kod do zarządzania routingiem i sesją został całkowicie przeprojektowany i napisany od nowa, co pozwoliło zwiększyć przepustowość i niezawodność, szczególnie w przypadku węzłów, które często zmieniają równorzędnych partnerów. Sesje kryptograficzne implementują okresową rotację kluczy. Dodano obsługę routingu źródłowego, którego można używać do przekierowywania ruchu IPv6 użytkowników. Przeprojektowana architektura rozproszonej tablicy mieszającej (DHT) i dodana obsługa routingu opartego na DHT. Implementacja algorytmów routingu została przeniesiona do osobnej biblioteki.
  • Adresy IPv6 są teraz generowane na podstawie kluczy publicznych ed25519, a nie ich skrótu X25519, co spowoduje zmianę wszystkich wewnętrznych adresów IP po przejściu do wersji Yggdrasil 0.4.
  • Udostępniono dodatkowe ustawienia wyszukiwania partnerów Multicast.

Źródło: opennet.ru

Dodaj komentarz