Die Veröffentlichung des OpenZiti 1.0-Tools wird vorgestellt, das es ermöglicht, in Anwendungen Mittel für verteilte Netzwerkinteraktionen und den Zugriff auf Dienste in einer isolierten Netzwerkumgebung zu integrieren. OpenZiti ermöglicht den Aufbau eines anwendungsbezogenen Overlay-Netzwerks, das über das gewöhnliche Internet läuft und Mesh-Routing verwendet, bei dem jeder Punkt im Netzwerk über benachbarte Punkte verbunden wird. Der Projektcode ist in Go geschrieben und wird unter der Apache 2.0-Lizenz vertrieben. Es werden Bindungen für die Sprachen C, Go, Python, Swift, Java, Node.js und C# (.NET) bereitgestellt, sowie ein Toolkit für die Integration in Anwendungen für die Android-Plattform.
Das OpenZiti-System ist ursprünglich für den Aufbau von Netzwerken ausgelegt, die Schutz und Isolation des Verkehrs in ungeschützten Umgebungen gewährleisten, in denen Knoten kompromittiert werden können (Zero Trust-Architektur). Die Technologie kann verwendet werden, um die Verbindung zu Anwendungen anstelle von VPN. Der Betrieb des Netzwerks erfolgt durch die Verwendung eines Prozesscontrollers, der die Netzwerkkonfiguration, die Authentifizierung und die Einrichtung von Diensten sowie von Knoten, die als Router fungieren dürfen, verwaltet und ein Mesh-Netz bildet, das Transitverkehr über sich hinweg leitet. Es können Dienste zur Lastenverteilung und zur Gewährleistung der Ausfallsicherheit hinzugefügt werden.

Der Zugriff auf das Overlay-Netzwerk erfolgt über spezielle Edge-Clients, die den Zugriff von einem externen Netzwerk auf das durch OpenZiti aufgebaute Overlay-Netzwerk erlauben. Es ist möglich, Tunnel und Proxys zu schaffen, die es ermöglichen, Verkehr aus einem regulären Netzwerk in das Overlay-Netzwerk und umgekehrt zu leiten, um von einem externen Netzwerk mit in dem Overlay-Netzwerk laufenden Anwendungen zu interagieren und auf bestehende Anwendungen zuzugreifen, die keine Unterstützung für das Overlay-Netzwerk integriert haben.
Der Zugriff auf das Netzwerk und der Erhalt von Daten von Server DNS ist nur nach erfolgreicher Authentifizierung und Autorisierung möglich – ohne entsprechende Berechtigungen kann der Kunde den Status des Dienstes nicht ermitteln und sich nicht damit verbinden. Der gesamte Datenverkehr wird durch mTLS (wechselseitige Authentifizierung, bei der Client und Server sich gegenseitig authentifizieren) und End-to-End-Verschlüsselung (ChaCha20-Poly1305) geschützt, das heißt, eine Kompromittierung der Netzwerkknoten ermöglicht keine Einsicht in den Datenverkehr der Anwendungen. Für die Verschlüsselung werden Funktionen der Bibliothek libsodium eingesetzt.
Zu den beliebten Anwendungen, die OpenZiti nutzen, gehören die Plattform für gemeinsamen Datenzugriff Zrok und das Ökosystem browZer für die Bereitstellung von Websites im Overlay-Netzwerk. Neben der Erstellung verteilter Netzwerkapplikationen eignet sich OpenZiti auch zum Aufbau privater Netzwerke, um den Zugang zu geschlossenen APIs, Websites oder Datenbanken zu organisieren, Infrastrukturen auf Kubernetes-Basis im Overlay-Netzwerk zu verbergen sowie zur Fernsteuerung externer Systeme und Geräte ohne die Konfiguration von Firewalls und die Nutzung von VPNs.
In der Version OpenZiti 1.0 wurde die Stabilität der API für Router und Controller sichergestellt (für Kunden wurde die Stabilität der API bereits vorher gewährleistet). Ab dieser Version wird die Rückwärtskompatibilität in der API und der Kommandozeilenoberfläche unterstützt, und im Falle von Funktionsentfernungen wird ein Verfahren zur vorherigen Einstufung dieser Funktionen als veraltet angewendet, wobei die tatsächliche Löschung nur bei einem signifikanten Versionswechsel erfolgt. In der neuen Version wurde auch unter Verwendung von Chaos-Tests zusätzliche Sicherheitstests durchgeführt, um die Robustheit des Netzwerks bei unvorhergesehenen Situationen und die Fähigkeit zur Rückkehr zum Normalbetrieb nach Ausfällen der Komponenten zu überprüfen.
Quelle: opennet.ru
