Release av Yggdrasil 0.4, en privat nätverksimplementering som körs ovanpå Internet

Utgivningen av referensimplementeringen av Yggdrasil 0.4-protokollet har publicerats, vilket gör att du kan distribuera ett separat decentraliserat privat IPv6-nätverk ovanpå ett vanligt globalt nätverk, som använder end-to-end-kryptering för att skydda konfidentialitet. Alla befintliga applikationer som stöder IPv6 kan användas för att arbeta genom Yggdrasil-nätverket. Implementeringen är skriven i Go och distribueras under LGPLv3-licensen. Linux, Windows, macOS, FreeBSD, OpenBSD och Ubiquiti EdgeRouter-plattformar stöds.

Yggdrasil utvecklar ett nytt routingkoncept för att skapa ett globalt decentraliserat nätverk, där noder kan ansluta direkt till varandra i mesh-nätverksläge (till exempel via Wi-Fi eller Bluetooth), eller interagera över befintliga IPv6- eller IPv4-nätverk (nätverk på toppen av nätverket). En utmärkande egenskap hos Yggdrasil är självorganiseringen av arbetet, utan behov av att uttryckligen konfigurera routing - information om rutter beräknas baserat på platsen för noden i nätverket i förhållande till andra noder. Enheter adresseras via en vanlig IPv6-adress, som inte ändras om en nod flyttas (Yggdrasil använder det oanvända adressintervallet 0200::/7).

Hela Yggdrasil-nätverket ses inte som en samling disparata subnätverk, utan som ett enda strukturerat spännträd med en "rot" och varje nod har en förälder och ett eller flera barn. En sådan trädstruktur låter dig bygga en rutt till destinationsnoden, i förhållande till källnoden, med hjälp av "locator"-mekanismen, som bestämmer den optimala vägen till noden från roten.

Trädinformation fördelas mellan noder och lagras inte centralt. För att utbyta routinginformation används en distribuerad hashtabell (DHT), genom vilken en nod kan hämta all information om rutten till en annan nod. Nätverket i sig tillhandahåller endast end-to-end-kryptering (transitnoder kan inte bestämma innehållet), men inte anonymitet (när de är anslutna via Internet kan kamrater med vilka direkt interaktion utförs bestämma den verkliga IP-adressen, så för anonymitet är det föreslås att ansluta noder via Tor eller I2P).

Det noteras att trots att projektet är på alfautvecklingsstadiet är det redan tillräckligt stabilt för daglig användning, men garanterar inte bakåtkompatibilitet mellan utgåvor. För Yggdrasil 0.4 stöder communityn en uppsättning tjänster, inklusive en plattform för att vara värd för Linux-behållare för värd för deras webbplatser, YaCy-sökmotorn, Matrix-kommunikationsserver, IRC-server, DNS, VoIP-system, BitTorrent-spårare, anslutningspunktskarta, IPFS-gateway och proxy för åtkomst till Tor-, I2P- och clearnet-nätverk.

I den nya versionen:

  • Ett nytt routingschema har implementerats som inte är kompatibelt med tidigare Yggdrasil-släpp.
  • När du upprättar TLS-anslutningar med värdar, är bindning av publik nyckel (nyckelnålning) involverad. Om det inte fanns någon bindning vid anslutningen kommer den resulterande nyckeln att tilldelas anslutningen. Om en bindning har upprättats, men nyckeln inte matchar den, kommer anslutningen att avvisas. TLS med nyckelbindning definieras som den rekommenderade metoden för att ansluta till peers.
  • Koden för routing och sessionshantering har gjorts om och skrivits om, vilket möjliggör ökad genomströmning och tillförlitlighet, särskilt för noder som ofta byter kamrater. Kryptografiska sessioner implementerar periodisk nyckelrotation. Tillagt stöd för källrouting, som kan användas för att omdirigera användarens IPv6-trafik. Omdesignad DHT-arkitektur (distributed hash table) och lagt till stöd för DHT-baserad routing. Implementeringen av routingalgoritmer har flyttats till ett separat bibliotek.
  • IPv6 IP-adresser genereras nu från publika ed25519-nycklar snarare än deras X25519-hash, vilket gör att alla interna IP-adresser ändras när de flyttas till Yggdrasil 0.4-versionen.
  • Ytterligare inställningar har tillhandahållits för att söka efter Multicast-peers.

Källa: opennet.ru

Lägg en kommentar