Erste stabile Veröffentlichung von Arti, der offiziellen Implementierung von Tor in Rust

Die Entwickler des anonymen Tor-Netzwerks haben die erste stabile Version (1.0.0) des Arti-Projekts erstellt, das einen in Rust geschriebenen Tor-Client entwickelt. Die Version 1.0 ist für die Verwendung durch allgemeine Benutzer geeignet und bietet das gleiche Maß an Datenschutz, Benutzerfreundlichkeit und Stabilität wie die Haupt-C-Implementierung. Auch die angebotene API zur Nutzung der Arti-Funktionalität in anderen Anwendungen wurde stabilisiert. Der Code wird unter den Lizenzen Apache 2.0 und MIT vertrieben.

Im Gegensatz zur C-Implementierung, die zunächst als SOCKS-Proxy konzipiert und dann auf andere Bedürfnisse zugeschnitten wurde, wird Arti zunächst in Form einer modularen, einbettbaren Bibliothek entwickelt, die von verschiedenen Anwendungen genutzt werden kann. Darüber hinaus werden bei der Entwicklung eines neuen Projekts alle bisherigen Tor-Entwicklungserfahrungen berücksichtigt, was bekannte Architekturprobleme vermeidet und das Projekt modularer und effizienter macht.

Der Grund für das Umschreiben von Tor in Rust war der Wunsch, durch die Verwendung einer speichersicheren Sprache ein höheres Maß an Codesicherheit zu erreichen. Laut Tor-Entwicklern werden mindestens die Hälfte aller vom Projekt überwachten Schwachstellen in einer Rust-Implementierung beseitigt, wenn der Code keine „unsicheren“ Blöcke verwendet. Dank der Ausdruckskraft der Sprache und strenger Garantien, die es Ihnen ermöglichen, keine Zeit mit doppelten Überprüfungen und dem Schreiben unnötigen Codes zu verschwenden, wird Rust es auch ermöglichen, schnellere Entwicklungsgeschwindigkeiten als mit C zu erreichen.

Basierend auf den Ergebnissen der Entwicklung der ersten Version rechtfertigte sich die Verwendung der Rust-Sprache. Beispielsweise wurde festgestellt, dass in jeder Phase weniger Fehler im Rust-Code gemacht wurden als bei einer vergleichbaren Entwicklung in C – die Fehler, die während des Entwicklungsprozesses auftauchten, bezogen sich hauptsächlich auf Logik und Semantik. Der übermäßig anspruchsvolle Rustc-Compiler, von manchen als Nachteil bezeichnet, erwies sich tatsächlich als Segen, denn wenn der Code kompiliert und die Tests besteht, steigt die Wahrscheinlichkeit seiner Korrektheit erheblich.

Die Arbeit an der neuen Variante bestätigte auch eine Steigerung der Entwicklungsgeschwindigkeit, was nicht nur auf die Tatsache zurückzuführen ist, dass die Funktionalität auf Basis einer vorhandenen Vorlage neu erstellt wurde, sondern auch auf die ausdrucksstärkere Semantik von Rust, praktische Funktionsbibliotheken und die Verwendung der Code-Sicherheit von Rust Fähigkeiten. Einer der Nachteile ist die große Größe der resultierenden Assemblys – da die Standard-Rust-Bibliothek nicht standardmäßig auf Systemen mitgeliefert wird, muss sie in den zum Download angebotenen Paketen enthalten sein.

Die Version 1.0 konzentriert sich hauptsächlich auf die grundlegende Arbeit in der Client-Rolle. In Version 1.1 ist geplant, Unterstützung für Plug-in-Transport und Bridges zur Umgehung von Blockierungen zu implementieren. Von Version 1.2 wird erwartet, dass sie Onion-Dienste und damit verbundene Funktionen unterstützt, etwa das Protokoll zur Überlastungskontrolle (RTT Congestion Control) und den Schutz vor DDoS-Angriffen. Für den 2.0-Zweig ist die Erreichung der Parität mit dem C-Client geplant, der auch Bindungen für die Verwendung von Arti im Code in verschiedenen Programmiersprachen anbieten wird.

In den nächsten Jahren wird sich die Arbeit auf die Implementierung der für den Betrieb von Relays und Verzeichnisservern erforderlichen Funktionalität konzentrieren. Wenn der Rust-Code ein Niveau erreicht, das die C-Version vollständig ersetzen kann, beabsichtigen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu geben und die Pflege der C-Implementierung einzustellen. Die C-Version wird schrittweise auslaufen, um eine reibungslose Migration zu ermöglichen.

Source: opennet.ru

Kommentar hinzufügen