Uitgave van Yggdrasil 0.4, een private netwerkimplementatie die bovenop internet draait

De release van de referentie-implementatie van het Yggdrasil 0.4-protocol is gepubliceerd, waarmee u een afzonderlijk gedecentraliseerd particulier IPv6-netwerk kunt inzetten bovenop een regulier mondiaal netwerk, dat end-to-end-codering gebruikt om de vertrouwelijkheid te beschermen. Alle bestaande applicaties die IPv6 ondersteunen kunnen worden gebruikt om via het Yggdrasil-netwerk te werken. De implementatie is geschreven in Go en gedistribueerd onder de LGPLv3-licentie. Linux-, Windows-, macOS-, FreeBSD-, OpenBSD- en Ubiquiti EdgeRouter-platforms worden ondersteund.

Yggdrasil ontwikkelt een nieuw routeringsconcept om een ​​wereldwijd gedecentraliseerd netwerk te creëren, waarbij knooppunten rechtstreeks met elkaar kunnen verbinden in mesh-netwerkmodus (bijvoorbeeld via Wi-Fi of Bluetooth), of kunnen communiceren via bestaande IPv6- of IPv4-netwerken (netwerk op bovenkant van netwerk). Een onderscheidend kenmerk van Yggdrasil is de zelforganisatie van het werk, zonder de noodzaak om de routering expliciet te configureren - informatie over routes wordt berekend op basis van de locatie van het knooppunt in het netwerk ten opzichte van andere knooppunten. Apparaten worden aangesproken via een regulier IPv6-adres, dat niet verandert als een knooppunt beweegt (Yggdrasil gebruikt het ongebruikte adresbereik 0200::/7).

Het hele Yggdrasil-netwerk wordt niet gezien als een verzameling ongelijksoortige subnetwerken, maar als een enkele gestructureerde spanningsboom met één ‘wortel’ en elk knooppunt met één ouder en één of meer kinderen. Met zo'n boomstructuur kunt u een route naar het bestemmingsknooppunt bouwen, relatief ten opzichte van het bronknooppunt, met behulp van het "locator" -mechanisme, dat het optimale pad naar het knooppunt vanaf de root bepaalt.

Boominformatie wordt verdeeld over knooppunten en wordt niet centraal opgeslagen. Om route-informatie uit te wisselen wordt gebruik gemaakt van een gedistribueerde hashtabel (DHT), waarmee een knooppunt alle informatie over de route naar een ander knooppunt kan opvragen. Het netwerk zelf biedt alleen end-to-end-codering (transitknooppunten kunnen de inhoud niet bepalen), maar geen anonimiteit (bij verbinding via internet kunnen peers waarmee directe interactie wordt uitgevoerd het echte IP-adres bepalen, dus voor anonimiteit is het voorgesteld om knooppunten via Tor of I2P te verbinden).

Opgemerkt wordt dat ondanks dat het project zich in de alfa-ontwikkelingsfase bevindt, het al stabiel genoeg is voor dagelijks gebruik, maar geen achterwaartse compatibiliteit tussen releases garandeert. Voor Yggdrasil 0.4 ondersteunt de community een reeks services, waaronder een platform voor het hosten van Linux-containers voor het hosten van hun sites, de YaCy-zoekmachine, Matrix-communicatieserver, IRC-server, DNS, VoIP-systeem, BitTorrent-tracker, verbindingspuntkaart, IPFS-gateway en proxy voor toegang tot Tor-, I2P- en clearnet-netwerken.

In de nieuwe versie:

  • Er is een nieuw routeringsschema geïmplementeerd dat niet compatibel is met eerdere releases van Yggdrasil.
  • Bij het tot stand brengen van TLS-verbindingen met hosts is er sprake van openbare sleutelbinding (key pinning). Als er geen binding was bij de verbinding, wordt de resulterende sleutel aan de verbinding toegewezen. Als er een binding tot stand is gebracht, maar de sleutel komt er niet mee overeen, wordt de verbinding afgewezen. TLS met sleutelbinding wordt gedefinieerd als de aanbevolen methode om verbinding te maken met peers.
  • De code voor routering en sessiebeheer is volledig opnieuw ontworpen en herschreven, waardoor een grotere doorvoer en betrouwbaarheid mogelijk zijn, vooral voor knooppunten die vaak van peer wisselen. Cryptografische sessies implementeren periodieke sleutelrotatie. Ondersteuning toegevoegd voor bronroutering, die kan worden gebruikt om IPv6-verkeer van gebruikers om te leiden. Opnieuw ontworpen architectuur voor gedistribueerde hashtabellen (DHT) en ondersteuning toegevoegd voor op DHT gebaseerde routering. De implementatie van routeringsalgoritmen is verplaatst naar een aparte bibliotheek.
  • IPv6 IP-adressen worden nu gegenereerd op basis van openbare sleutels van ed25519 in plaats van hun X25519-hash, waardoor alle interne IP-adressen zullen veranderen bij de overstap naar de Yggdrasil 0.4-release.
  • Er zijn aanvullende instellingen beschikbaar voor het zoeken naar Multicast-peers.

Bron: opennet.ru

Voeg een reactie