Die Entwickler des Tor-Netzwerks haben die Version Arti 1.2.0 veröffentlicht, die den Tor-Client in Rust weiterentwickelt. Die Version 1.x ist als für reguläre Benutzer geeignet eingestuft und bietet das gleiche Maß an Datenschutz, Benutzerfreundlichkeit und Stabilität wie die Hauptimplementierung in C. Der Code wird unter den Lizenzen Apache 2.0 und MIT bereitgestellt.
Im Gegensatz zur C-Implementierung, die ursprünglich als SOCKS-Proxy konzipiert und später an verschiedene Bedürfnisse angepasst wurde, wird Arti von Anfang an als modulare, einbettbare Bibliothek entwickelt, die von verschiedenen Anwendungen genutzt werden kann. Zudem fließen bei der Entwicklung des neuen Projekts alle bisherigen Erfahrungen aus der Tor-Entwicklung ein, um bekannte architektonische Probleme zu vermeiden und das Projekt modularer und effizienter zu gestalten. Sobald der Rust-Code das Niveau erreicht hat, um die C-Variante vollständig zu ersetzen, planen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu verleihen und die Betreuung der Implementierung in C einzustellen.
Ein Grund für die Neuschreibung von Tor in Rust ist der Wunsch, ein höheres Maß an Code-Sicherheit zu erreichen, indem eine Sprache verwendet wird, die eine sichere Speicherverwaltung gewährleistet. Die Entwickler von Tor schätzen, dass die Nutzung von Rust ohne »unsafe«-Blöcke ermöglichen wird, mindestens die Hälfte aller typischen Schwachstellen im Projekt zu vermeiden. Rust bietet zudem die Möglichkeit, eine höhere Entwicklungs Geschwindigkeit als mit C zu erreichen, dank der Ausdruckskraft der Sprache und strengen Garantien, die es ermöglichen, Zeit für doppelte Überprüfungen und überflüssigen Code zu sparen.
Die Veröffentlichung von Arti 1.2 ist bemerkenswert, da sie stabile Unterstützung für Onion-Dienste implementiert. Mit Arti ist es nun möglich, sich nicht nur mit bestehenden Onion-Diensten zu verbinden, sondern auch eigene Onion-Dienste zu erstellen.
Die Implementierung begleitender Funktionen zur Gewährleistung der Privatsphäre und zum Schutz von Onion-Diensten, wie das RTT Congestion Control-Protokoll, DDoS-Schutzmaßnahmen, Bandbreitenmanagement, Kundenautorisierung und der 'Vanguard'-Mechanismus zur Verhinderung der Identifizierung von Guard-Knoten, hat begonnen, ist jedoch noch nicht abgeschlossen. Bis die Umsetzung dieser Funktionen abgeschlossen ist, wird die Erstellung von Onion-Diensten auf Basis von Arti für produktive Implementierungen nicht empfohlen.
In der neuen Version wurde auch eine Schwachstelle im Code zur Verarbeitung von Nachrichten von Relays behoben, die durch die Möglichkeit verursacht wurde, leere DATA-Nachrichten zu senden, die verwendet werden können, um undefinierte Verkehrsanzeigen einzuschleusen. Das Problem wurde als geringes Risiko eingestuft, da DATA-Pakete nur für bereits geöffnete Streams akzeptiert werden.
Die Angleichung an den Kunden in C wird in Version 2.0 angestrebt, in der auch Bindungen zur Verwendung von Arti in Code verschiedener Programmiersprachen vorgeschlagen werden. Wenn der Rust-Code das Niveau erreicht, um die C-Variante vollständig zu ersetzen, beabsichtigen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu verleihen und die Unterstützung der Implementierung in C schrittweise einzustellen. Die Unterstützung der C-Version wird schrittweise eingestellt, wobei die Möglichkeit einer sanften Migration angeboten wird.
Quelle: opennet.ru
