Die Entwickler des Tor-Netzwerks haben die Version Arti 1.2.0 veröffentlicht, die den Tor-Client in der Programmiersprache Rust weiterentwickelt. Der Branch 1.x wird als für die Nutzung durch gewöhnliche Benutzer geeignet gekennzeichnet und bietet das gleiche Maß an Vertraulichkeit, Benutzerfreundlichkeit und Stabilität wie die Hauptimplementierung in C. Der Code wird unter den Lizenzen Apache 2.0 und MIT verteilt.
Im Gegensatz zur Implementierung in C, die ursprünglich als SOCKS-Proxy konzipiert wurde und später an andere Anforderungen angepasst wurde, entwickelt sich Arti von Anfang an in Form einer modularen, integrierbaren Bibliothek, die von verschiedenen Anwendungen genutzt werden kann. Darüber hinaus wird beim Entwickeln des neuen Projekts die gesamte frühere Erfahrung mit der Entwicklung von Tor berücksichtigt, was hilft, bekannte architektonische Probleme zu vermeiden und das Projekt modularer und effizienter zu gestalten. Sobald der Rust-Code ein Niveau erreicht, das eine vollständige Ersetzung der C-Variante ermöglicht, beabsichtigen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu verleihen und die Unterstützung der C-Implementierung einzustellen.
Als Grund für das Überarbeiten von Tor in Rust wird der Wunsch genannt, einen höheren Sicherheitsgrad des Codes durch die Verwendung einer Sprache zu erreichen, die sicheren Umgang mit Speicher garantiert. Nach Einschätzung der Tor-Entwickler wird die Verwendung von Rust ohne "unsafe"-Blöcke verhindern, dass mindestens die Hälfte aller typischen Schwachstellen im Projekt auftritt. Rust ermöglicht zudem eine schnellere Entwicklung als bei der Verwendung von C, dank der Ausdruckskraft der Sprache und strengen Garantien, die eine Doppelprüfung und das Schreiben überflüssigen Codes überflüssig machen.
Die Version Arti 1.2 zeichnet sich durch die Bereitstellung stabiler Unterstützung für Onion-Dienste aus. Mit Arti kann man jetzt nicht nur auf bestehende Onion-Dienste zugreifen, sondern auch eigene Onion-Dienste erstellen.
Die Arbeit an begleitenden Möglichkeiten zur Gewährleistung der Privatsphäre und dem Schutz von Onion-Diensten wurde begonnen, aber noch nicht abgeschlossen. Dazu gehören Protokolle zur Überlastungsverwaltung (RTT Congestion Control), Schutzmaßnahmen gegen DDoS-Angriffe, Bandbreitenregulierung, Client-Authentifizierung und der Mechanismus "Vanguard" zur Verhinderung der Identifikation von Guard-Knoten. Bis die Implementierung dieser Möglichkeiten abgeschlossen ist, wird die Erstellung von Onion-Diensten auf Basis von Arti für produktive Einsätze nicht empfohlen.
In der neuen Version wurde auch eine Schwachstelle im Code zur Verarbeitung von Nachrichten von Relais behoben, die durch das Versenden leerer DATA-Nachrichten verursacht wurde, die zum Einfügen von undefinierbaren Verkehrsanzeigern genutzt werden können. Dem Problem wurde ein niedriges Gefährdungsniveau zugewiesen, da DATA-Pakete nur für bereits geöffnete Streams akzeptiert werden.
Das Erreichen der Parität mit dem Kunden in C ist für Branch 2.0 geplant, in dem auch Bindungen für die Nutzung von Arti in Code verschiedener Programmiersprachen angeboten werden. Wenn der Rust-Code das Niveau erreicht, um die C-Version vollständig zu ersetzen, beabsichtigen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu verleihen und die Unterstützung für die Implementierung in C einzustellen. Die Unterstützung der C-Version wird schrittweise eingestellt, wobei die Möglichkeit einer sanften Migration bereitgestellt wird.
Quelle: opennet.ru
