Die Entwickler des Tor-Projekts haben die Version Arti 1.4.0 veröffentlicht, einen Tor-Client, der in rust geschrieben ist. Der Branch 1.x wurde als für normale Benutzer geeignet gekennzeichnet und bietet das gleiche Niveau an Datenschutz, Benutzerfreundlichkeit und Stabilität wie die Hauptimplementation in C. Der Gleichstand mit dem C-Client ist für den Branch 2.0 vorgesehen. Sobald der Rust-Code das Niveau erreicht hat, das in der Lage ist, die C-Variante vollständig zu ersetzen, beabsichtigen die Entwickler, Arti zum Hauptprojekt von Tor zu machen und die Unterstützung für die C-Implementierung schrittweise einzustellen. Der Code wird unter den Lizenzen Apache 2.0 und MIT verbreitet.
Arti wird ursprünglich als modulare, integrierbare Bibliothek entwickelt, die von verschiedenen Anwendungen genutzt werden kann. Bei der Gestaltung von Arti wurde die frühere Erfahrung in der Tor-Entwicklung berücksichtigt, wodurch bekannte architektonische Probleme vermieden wurden, die mit der Tatsache verbunden sind, dass die C-Implementierung ursprünglich als SOCKS-Proxy konzipiert wurde und später für andere Bedürfnisse angepasst wurde.
Neben der Modernisierung der Architektur war ein Grund für die Neuschreibung von Tor in Rust der Wunsch, die Sicherheit des Codes durch die Verwendung einer Sprache zu erhöhen, die einen sicheren Umgang mit dem Speicher gewährleistet. Laut den Entwicklern von Tor wird die Verwendung der Sprache Rust ohne 'unsafe'-Blöcke dazu beitragen, mindestens die Hälfte aller typischen Schwachstellen im Projekt zu vermeiden. Darüber hinaus wird angenommen, dass Rust die Entwicklungsgeschwindigkeit aufgrund der Ausdruckskraft der Sprache und strenger Garantien erhöht, die es ermöglichen, Zeit für doppelte Überprüfungen und das Schreiben überflüssigen Codes zu sparen.
In der neuen Version wurde die neue RPC-Schnittstelle fertiggestellt, die das Kontrollprotokoll über den TCP-Port ersetzt, der über den Parameter ControlPort festgelegt wird. RPC kann verwendet werden, um Anwendungen und Dienste mit Arti zu integrieren, ohne dass die Bibliothek mit der Funktionalität von Arti in die Anwendung eingebaut werden muss.
Die wichtigsten Unterschiede des neuen Protokolls:
- Verwendung des JSON-Formats anstelle eines spezifischen Formats, das seinen eigenen Parser erfordert;
- Einfache Erweiterbarkeit des Protokolls. Formalisierung, wie der Client und der Server die Verarbeitung nicht unterstützter Nachrichten, Parameter und Daten handhaben sollten;
- Mechanismus zur Bestimmung der Verfügbarkeit von RPC;
- Unterstützung der gleichzeitigen Übertragung mehrerer Anfragen in einer Netzwerkverbindung;
- Verfügbarkeit fertiger Client-Bibliotheken für C, Python und Rust.
Zu den weiteren Änderungen in Arti 1.4.0 gehört die Durchführung von Vorarbeiten zur Unterstützung von Relays sowie die Fortsetzung der Implementierung von Schutzmaßnahmen für Onion-Dienste gegen DDoS-Angriffe.
Quelle: opennet.ru
