Die Veröffentlichung des OpenZiti 1.0-Toolkits wurde vorgestellt, das es ermöglicht, in Anwendungen Mittel für verteilte Netzwerkinteraktionen und den Zugriff auf Dienste in isolierten Netzwerkumgebungen zu integrieren. OpenZiti bietet die Möglichkeit, ein anwendungs-spezifisches Overlay-Netzwerk zu implementieren, das über das reguläre Internet funktioniert und Mesh-Routing verwendet, bei dem jeder Punkt im Netzwerk über benachbarte Punkte verbunden ist. Der Code des Projekts ist in Go geschrieben und steht unter der Apache 2.0-Lizenz zur Verfügung. Es werden Bindings für die Sprachen C, Go, Python, Swift, Java, Node.js und C# (.NET) bereitgestellt, sowie Tools zur Integration mit Anwendungen auf der Android-Plattform.
Das OpenZiti-System ist ursprünglich für den Aufbau von Netzwerken konzipiert, die den Schutz und die Isolierung des Datenverkehrs in unsicheren Umgebungen gewährleisten, in denen Knoten kompromittiert sein können (Zero Trust-Architektur). Die Technologie kann zur Organisation der Kommunikation mit Anwendungen anstelle von VPN. Der Netzwerkbetrieb erfolgt durch den Einsatz eines Controller-Prozesses, der die Netzwerk-Konfiguration, die Authentifizierung und die Einrichtung von Diensten steuert, sowie Knoten, die die Erlaubnis haben, als Router zu fungieren und ein Mesh-Netzwerk zu bilden, das den Transitverkehr über sich leitet. Es ist möglich, Dienste zur Lastenverteilung und Gewährleistung der Ausfallsicherheit hinzuzufügen.

Der Zugriff auf das Overlay-Netzwerk erfolgt über spezielle Edge-Clients, die einen Zugriff von einem externen Netzwerk auf das durch OpenZiti erstellte Overlay-Netzwerk ermöglichen. Tunnel und Proxys können erstellt werden, um den Datenverkehr aus dem regulären Netzwerk ins Overlay und umgekehrt zu leiten, sodass eine Interaktion von einem externen Netzwerk mit in der Overlay-Netzwerk laufenden Anwendungen und der Zugriff auf bestehende Anwendungen möglich ist, die keine Unterstützung für das Overlay-Netzwerk implementiert haben.
Der Zugriff auf das Netzwerk und der Erhalt von Daten mit Server DNS ist nur nach der obligatorischen Autorisierung und Authentifizierung möglich — ohne entsprechende Berechtigungen kann der Client weder die Verfügbarkeit eines Dienstes feststellen noch sich mit diesem verbinden. Der gesamte Datenverkehr wird durch mTLS (Mutual Authentication, bei der sich Client und Server gegenseitig authentifizieren) und End-to-End-Verschlüsselung (ChaCha20-Poly1305) geschützt, d.h. die Kompromittierung von Knoten im Netzwerk erlaubt keinen Zugriff auf den Datenverkehr der Anwendungen. Für die Verschlüsselung werden Funktionen der Bibliothek libsodium verwendet.
Unter den populären Anwendungen, die OpenZiti nutzen, sind die Plattform zur gemeinsamen Datennutzung Zrok und das Ökosystem browZer zur Bereitstellung von Websites im Overlay-Netzwerk zu erwähnen. Neben der Erstellung verteilter Netzwerk-Anwendungen ist OpenZiti auch für den Aufbau privater Netzwerke zur Organisation des Zugangs zu geschlossenen APIs, Websites oder Datenbanken geeignet, um Infrastrukturen, die auf Kubernetes basieren, im Overlay-Netzwerk zu verbergen, sowie für die Fernsteuerung externer Systeme und Geräte ohne die Konfiguration von Firewalls und die Verwendung von VPNs.
Mit der Veröffentlichung von OpenZiti 1.0 wurde die Stabilität der API für Router und Controller sichergestellt (für Kunden wurde die API-Stabilität bereits zuvor garantiert). Ab dieser Version wird die Abwärtskompatibilität in der API und der Befehlszeilenschnittstelle unterstützt, und wenn Funktionen entfernt werden müssen, findet zunächst ein Prozess der Abwertung dieser Funktionen statt und die tatsächliche Entfernung erfolgt nur bei einer signifikanten Änderung der Versionsnummer. In der neuen Version wurde auch zusätzlicher Test mit Simulation verschiedener Netzwerkkomponentenausfälle (Chaos-Testing) durchgeführt, um die Robustheit des Netzwerks im Falle von Notfällen und die Fähigkeit zur Rückkehr zur normalen Funktion nach Wiederherstellung ausgefallener Komponenten zu gewährleisten.
Quelle: opennet.ru
