Veröffentlichung von Yggdrasil 0.4, einer Implementierung eines privaten Netzwerks, das über das Internet arbeitet.

Die Ausgabe der Referenzimplementierung des Yggdrasil-Protokolls 0.4 wurde veröffentlicht, das es ermöglicht, ein separates, dezentrales privates IPv6-Netzwerk über ein herkömmliches globales Netzwerk bereitzustellen, wobei zur Wahrung der Privatsphäre End-to-End-Verschlüsselung verwendet wird. Alle bestehenden Anwendungen, die IPv6 unterstützen, können über das Yggdrasil-Netzwerk betrieben werden. Die Implementierung ist in der Programmiersprache Go geschrieben und wird unter der LGPLv3-Lizenz verteilt. 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 Knoten sowohl direkt untereinander im Mesh-Netzwerkmodus (z. B. über WLAN oder Bluetooth) verbunden sind, als auch über bestehende IPv6- oder IPv4-Netzwerke interagieren (Netzwerk über Netzwerk). Ein wesentliches Merkmal von Yggdrasil ist die Selbstorganisation des Betriebs ohne die Notwendigkeit einer expliziten Routernutzung - Informationen über Routen werden basierend auf der Position des Knotens im Netzwerk im Verhältnis zu anderen Knoten berechnet. Geräte werden über eine reguläre IPv6-Adresse adressiert, die sich bei einer Verschiebung des Knotens nicht ändert (in Yggdrasil wird der ungenutzte Adressbereich 0200::/7 verwendet).

Das gesamte Yggdrasil-Netzwerk wird nicht als Zusammenfassung verstreuter Subnetze betrachtet, sondern als ein einheitlicher, strukturiertes Spannbaum, der einen "Wurzelknoten" hat, während jeder Knoten einen Elternknoten sowie einen oder mehrere Nachkommen hat. Diese baumartige Struktur ermöglicht es, eine Route zu einem Zielknoten im Verhältnis zu einem Quellknoten zu erstellen, indem der "Locator"-Mechanismus verwendet wird, der den optimalen Weg zum Knoten vom Wurzelknoten aus bestimmt.

Die Informationen über den Baum werden zwischen den Knoten verteilt und nicht zentral gespeichert. Für den Austausch von Routing-Daten wird eine verteilte Hash-Tabelle (DHT) verwendet, mit deren Hilfe ein Knoten alle Informationen über den Weg zu einem anderen Knoten abrufen kann. Das Netzwerk selbst stellt lediglich End-to-End-Verschlüsselung bereit (Transitknoten können den Inhalt nicht bestimmen), gewährleistet jedoch keine Anonymität (bei der Verbindung über das Internet können Peer-to-Peer-Knoten, mit denen eine direkte Interaktion stattfindet, die echte IP-Adresse bestimmen. Daher wird vorgeschlagen, Knoten über Tor oder I2P zu verbinden, um Anonymität zu gewährleisten.)

Es wird festgestellt, dass das Projekt trotz des sich im Alpha-Entwicklungsstadium befindenden Status bereits ausreichend stabil für den täglichen Gebrauch ist, jedoch keine Rückwärtskompatibilität zwischen den Versionen garantiert. Für Yggdrasil 0.4 wird von der Community ein Serviceset unterstützt, einschließlich einer Plattform zur Bereitstellung von Linux-Containern für das Hosting eigener Websites, der Suchmaschine YaCy, Kommunikationsplattformen Server Matrix, IRC-Server, DNS, VoIP-System, BitTorrent-Tracker für Verbindungspunkte, Gateway zu IPFS und Proxy für den Zugriff auf die Netzwerke Tor, I2P und 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 Key Pinning verwendet. Wenn das Pinning bei der Verbindung nicht vorhanden war, wird der erhaltene Schlüssel an die Verbindung gebunden. Wenn das Pinning eingerichtet wurde, der Schlüssel jedoch nicht übereinstimmt, wird die Verbindung abgelehnt. TLS mit Key Pinning wird als empfohlene Methode zur Verbindung mit Yggdrasil definiert.
  • Der Code für Routing und Sitzungsmanagement wurde vollständig überarbeitet und neu geschrieben, was die Bandbreite und Zuverlässigkeit insbesondere für Knoten, die häufig Peers wechseln, erhöht hat. In kryptografischen Sitzungen wurde eine regelmäßige Schlüsselrotation implementiert. Es wurde Unterstützung für Source-Routing hinzugefügt, die verwendet werden kann, um den IPv6-Verkehr der Benutzer umzuleiten. Die Architektur der verteilten Hash-Tabelle (DHT) wurde überarbeitet und die Unterstützung für DHT-basiertes Routing hinzugefügt. Die Implementierung der Routing-Algorithmen wurde in eine separate Bibliothek ausgelagert.
  • IP-Adressen IPv6 wird jetzt aus den öffentlichen Schlüsseln ed25519 generiert, nicht aus ihrem Hash X25519, was zu einer Änderung aller internen IP-Adressen nach dem Upgrade auf Yggdrasil 0.4 führen wird.
  • Zusätzliche Einstellungen für die Suche nach Multicast-Peers wurden bereitgestellt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4