Iroh 1.0 macht aus dem Internet einen sicheren Localhost

vor 2 Tage 2

Mit der Veröffentlichung von Version 1.0 hat das Entwicklerteam von n0 seinen modularen Networking-Stack Iroh als stabil freigegeben. Das Projekt zielt auf einen grundlegenden Paradigmenwechsel bei der Vernetzung von Geräten ab: Anstatt IP-Adressen als primäres Adressierungsschema zu nutzen, setzt Iroh auf kryptografische Schlüssel.

In der heutigen Netzwerkinfrastruktur sind IP-Adressen flüchtig und oft hinter Firewalls oder NAT-Routern verborgen. Dies erschwert den direkten Datenaustausch zwischen Endgeräten, da oft zentrale Relay-Server notwendig sind, um Verbindungen zu vermitteln. Iroh löst dieses Problem mit dem Konzept „Dial-by-Key“: Ein Gerät wird über seinen öffentlichen kryptografischen Schlüssel identifiziert.

Dieser Schlüssel dient als persistente Identität, unabhängig davon, ob das Gerät gerade über WLAN, 5G oder ein VPN mit dem Internet verbunden ist. Iroh übernimmt dabei die Aufgabe, das Zielgerät im Netzwerk zu finden, und ermöglicht so eine Kommunikation, die sich für die Anwendung wie eine direkte Verbindung verhält – wie bei einem lokalen Host, aber über das Internet hinweg.

Um die Latenz zu minimieren und Bandbreite zu sparen, versucht Iroh, direkte Verbindungen zwischen Endpunkten aufzubauen. Dazu nutzt das Framework Techniken wie „Hole-Punching“ (NAT-Traversal), um eine Verbindung durch Firewalls und NAT-Router hindurch aufzubauen, ohne dass manuelle Portfreigaben erforderlich sind. Laut n0 können so in der Praxis etwa 95 Prozent des Datenverkehrs direkt zwischen den Geräten fließen. Das soll die Abhängigkeit von zentralen Infrastrukturen reduzieren und so die Egress-Kosten senken.

Sollte ein direktes Hole-Punching fehlschlagen, nutzt das System automatisch ein offenes Ökosystem von Relay-Servern als Fallback. Iroh basiert auf dem QUIC-Protokoll und umfasst unter anderem eine authentifizierte Verschlüsselung und Stream-Priorisierung. Ferner entfällt das „Head-of-Line-Blocking“, das bei TCP-Verbindungen zu Verzögerungen führen kann.

Iroh implementiert zudem „Multipath QUIC“. Das Framework kann mehrere Netzwerkpfade gleichzeitig verwalten. Wechselt ein Gerät beispielsweise von einem WLAN-Netzwerk in ein Mobilfunknetz, kann Iroh die Verbindung über den neuen Pfad aufrechterhalten, die Sitzung bricht nicht ab.

Zudem erlaubt die Architektur die Einbindung sogenannter „Custom Transports“. Entwickler können unter der einheitlichen Dial-by-Key-Abstraktion alternative Transportwege wie Bluetooth Low Energy (BLE) oder zukünftig LoRa integrieren.

Mit der Version 1.0 garantiert das Entwicklerteam die Stabilität sowohl des Netzwerkformats als auch der APIs. So können Iroh-v1-Endpoints – ungeachtet der verwendeten Programmiersprache oder Minor-Version – untereinander kommunizieren. Damit lässt sich Iroh produktiv in verteilten Systemen nutzen.

Nach einer zwischenzeitlichen Pause hat das Projekt zudem die Unterstützung für FFI-Bindings (Foreign Function Interface) wieder aufgenommen. Neben der Kernimplementierung in Rust werden nun offiziell Python, Node.js, Swift und Kotlin unterstützt. Dank der Kompatibilität mit WebAssembly (WASM) lässt sich Iroh zudem in Browser-Umgebungen ausführen.

Detaillierte Informationen zu Iroh finden sich im Blogbeitrag zur Version 1.0 sowie auf der GitHub-Projektseite.

(fo)

Gesamten Artikel lesen