Udgivelse af Yggdrasil 0.4, en privat netværksimplementering, der kører oven på internettet

Frigivelsen af ​​referenceimplementeringen af ​​Yggdrasil 0.4-protokollen er blevet offentliggjort, som giver dig mulighed for at implementere et separat decentralt privat IPv6-netværk oven på et almindeligt globalt netværk, som bruger end-to-end-kryptering for at beskytte fortroligheden. Alle eksisterende applikationer, der understøtter IPv6, kan bruges til at arbejde gennem Yggdrasil-netværket. Implementeringen er skrevet i Go og distribueret under LGPLv3-licensen. Linux, Windows, macOS, FreeBSD, OpenBSD og Ubiquiti EdgeRouter-platforme er understøttet.

Yggdrasil udvikler et nyt routingkoncept for at skabe et globalt decentraliseret netværk, hvor noder kan oprette forbindelse direkte til hinanden i mesh-netværkstilstand (for eksempel via Wi-Fi eller Bluetooth), eller interagere over eksisterende IPv6- eller IPv4-netværk (netværk på toppen af ​​netværket). Et karakteristisk træk ved Yggdrasil er selvorganiseringen af ​​arbejdet uden behov for eksplicit at konfigurere routing - information om ruter beregnes baseret på placeringen af ​​noden i netværket i forhold til andre noder. Enheder adresseres via en almindelig IPv6-adresse, som ikke ændres, hvis en node flytter sig (Yggdrasil bruger det ubrugte adresseområde 0200::/7).

Hele Yggdrasil-netværket ses ikke som en samling af forskellige undernetværk, men som et enkelt struktureret spændingstræ med en "rod" og hver knude med en forælder og et eller flere børn. En sådan træstruktur giver dig mulighed for at bygge en rute til destinationsknuden i forhold til kildenoden ved at bruge "locator"-mekanismen, som bestemmer den optimale vej til knudepunktet fra roden.

Træinformation er fordelt mellem noder og lagres ikke centralt. For at udveksle routinginformation bruges en distribueret hash-tabel (DHT), hvorigennem en node kan hente al information om ruten til en anden node. Netværket i sig selv giver kun ende-til-ende-kryptering (transitknudepunkter kan ikke bestemme indholdet), men ikke anonymitet (når de er forbundet via internettet, kan peers, med hvem der udføres direkte interaktion, bestemme den rigtige IP-adresse, så for anonymitet er det foreslået at forbinde noder via Tor eller I2P).

Det bemærkes, at på trods af at projektet er på alfa-udviklingsstadiet, er det allerede stabilt nok til daglig brug, men garanterer ikke bagudkompatibilitet mellem udgivelser. For Yggdrasil 0.4 understøtter fællesskabet et sæt tjenester, herunder en platform til hosting af Linux-containere til hosting af deres websteder, YaCy-søgemaskinen, Matrix-kommunikationsserver, IRC-server, DNS, VoIP-system, BitTorrent-tracker, forbindelsespunktkort, IPFS-gateway og proxy til at få adgang til Tor-, I2P- og clearnet-netværk.

I den nye version:

  • Et nyt routingskema er blevet implementeret, som ikke er kompatibelt med tidligere Yggdrasil-udgivelser.
  • Når der etableres TLS-forbindelser med værter, er offentlig nøglebinding (nøglefastgørelse) involveret. Hvis der ikke var nogen binding ved forbindelsen, vil den resulterende nøgle blive tildelt forbindelsen. Hvis der er etableret en binding, men nøglen ikke matcher den, vil forbindelsen blive afvist. TLS med nøglebinding er defineret som den anbefalede metode til at oprette forbindelse til peers.
  • Koden til routing og sessionsstyring er blevet fuldstændigt omdesignet og omskrevet, hvilket giver mulighed for øget gennemløb og pålidelighed, især for noder, der ofte skifter peer. Kryptografiske sessioner implementerer periodisk nøglerotation. Tilføjet understøttelse af Source-routing, som kan bruges til at omdirigere brugerens IPv6-trafik. Omdesignet DHT-arkitektur (distributed hash table) og tilføjet understøttelse af DHT-baseret routing. Implementeringen af ​​routingalgoritmer er blevet flyttet til et separat bibliotek.
  • IPv6 IP-adresser er nu genereret fra ed25519 offentlige nøgler i stedet for deres X25519 hash, hvilket vil få alle interne IP'er til at ændre sig, når de flyttes til Yggdrasil 0.4 udgivelsen.
  • Der er givet yderligere indstillinger til søgning efter Multicast-peers.

Kilde: opennet.ru

Tilføj en kommentar