Die Version 0.4 der Referenzimplementierung des Yggdrasil-Protokolls wurde veröffentlicht, das es ermöglicht, ein separates, dezentrales privates IPv6-Netzwerk über das herkömmliche globale Netzwerk zu betreiben. Dieses Netzwerk verwendet End-to-End-Verschlüsselung zum Schutz der Privatsphäre. Alle bestehenden Anwendungen, die IPv6 unterstützen, können über das Yggdrasil-Netzwerk genutzt werden. Die Implementierung ist in der Programmiersprache Go geschrieben und wird unter der Lizenz LGPLv3 veröffentlicht. Unterstützte Plattformen sind Linux, Windows, macOS, FreeBSD, OpenBSD und Ubiquiti EdgeRouter.
Yggdrasil entwickelt ein neues Routing-Konzept zur Schaffung eines globalen dezentralen Netzwerks, in dem sich Knoten sowohl direkt in einem Mesh-Netzwerk (z. B. über Wi-Fi oder Bluetooth) als auch über bestehende IPv6- oder IPv4-Netze (Netzwerk über Netzwerk) verbinden können. Ein herausragendes Merkmal von Yggdrasil ist die Selbstorganisation der Betriebsabläufe, ohne dass eine explizite Konfiguration des Routings erforderlich ist – die Informationen über Routen werden basierend auf der Position des Knotens im Netzwerk im Verhältnis zu anderen Knoten berechnet. Geräte werden über eine herkömmliche IPv6-Adresse angesprochen, die sich bei einer Bewegung des Knotens nicht ändert (in Yggdrasil wird ein ungenutzter Adressbereich 0200::/7 verwendet).
Das gesamte Yggdrasil-Netzwerk wird nicht als eine Ansammlung von separaten Subnetzen, sondern als ein einheitlicher strukturiertes Spannbaum betrachtet, der einen „Wurzelknoten“ hat, wobei jeder Knoten einen Elternknoten und einen oder mehrere Nachfolger hat. Diese baumartige Struktur ermöglicht es, einen Pfad zu einem Zielknoten relativ zum Quellknoten zu erstellen, wobei ein Mechanismus namens „Locator“ verwendet wird, der den optimalen Weg zum Knoten vom Wurzelknoten bestimmt.
Information über das Netzwerk wird zwischen den Knoten verteilt und nicht zentral gespeichert. Für den Datenaustausch bezüglich der Routing-Informationen wird eine verteilte Hash-Tabelle (DHT) verwendet, mit der ein Knoten alle Informationen über den Weg zu einem anderen Knoten abrufen kann. Das Netzwerk selbst bietet lediglich End-to-End-Verschlüsselung (Transitknoten können den Inhalt nicht erkennen), jedoch keine Anonymität (bei einer Verbindung über das Internet können Peer-Knoten, mit denen eine direkte Interaktion stattfindet, die tatsächliche IP-Adresse ermitteln; deshalb wird empfohlen, die Knoten über Tor oder I2P zu verbinden, um Anonymität zu gewährleisten).
Es wird darauf hingewiesen, dass das Projekt sich trotz der Alpha-Entwicklungsphase bereits in einem stabilen Zustand für den täglichen Gebrauch befindet, jedoch keine Rückwärtskompatibilität zwischen den Versionen garantiert. Für Yggdrasil 0.4 wird von der Community eine Reihe von Diensten unterstützt, einschließlich einer Plattform zur Bereitstellung von Linux-Containern für das Hosting eigener Websites, einer Suchmaschine YaCy, Kommunikationsmittel. der Server Matrix, IRC-Server, DNS, VoIP-System, BitTorrent-Tracker, eine Karte der Anschlussstellen, ein Gateway zu IPFS und ein Proxy für den Zugriff auf die Netzwerke Tor, I2P und das Clearnet.
In der neuen Version:
- Ein neues Routing-Schema wurde implementiert, das mit früheren Versionen von Yggdrasil nicht kompatibel ist.
- Bei der Einrichtung von TLS-Verbindungen zu Knoten wird die Schlüsselbindung (Key Pinning) verwendet. Fehlt die Bindung während der Verbindung, wird der erhaltene Schlüssel an die Verbindung gebunden. War die Bindung gesetzt, der Schlüssel passt jedoch nicht, wird die Verbindung abgelehnt. TLS mit Schlüsselbindung wird als empfohlene Methode zur Verbindung mit dem Netzwerk bezeichnet.
- Der Code für Routing und Sitzungsmanagement wurde vollständig überarbeitet und neu geschrieben, was die Bandbreite und Zuverlässigkeit erheblich erhöht hat, insbesondere für Knoten, die häufig die Peers wechseln. In kryptographischen Sitzungen wurde eine periodische Schlüsselrotation implementiert. Die Unterstützung für Source Routing wurde hinzugefügt, um den Benutzer-IPv6-Verkehr umzuleiten. Die Architektur der verteilten Hash-Tabelle (DHT) wurde überarbeitet, und die Unterstützung für DHT-basiertes Routing wurde hinzugefügt. Die Implementierung der Routing-Algorithmen wurde in eine separate Bibliothek ausgelagert.
- IP-Adressen IPv6 werden jetzt aus den öffentlichen ed25519-Schlüsseln und nicht aus ihrem X25519-Hash generiert, was zu einer Änderung aller internen IPs nach dem Wechsel auf die Version Yggdrasil 0.4 führt.
- Zusätzliche Einstellungen zur Suche nach Multicast-Peers wurden bereitgestellt.
Quelle: opennet.ru
