Die Entwickler des anonymen Netzwerks Tor haben die Veröffentlichung des Projekts Arti 0.2.0 vorgestellt, das den Tor-Client in der Programmiersprache Rust weiterentwickelt. Das Projekt befindet sich in einem experimentellen Entwicklungsstadium und bietet noch nicht die volle Funktionalität des Haupt-Tor-Clients, der in C geschrieben wurde, und ist daher noch nicht bereit, diesen vollständig zu ersetzen. Im September ist eine Version 1.0 geplant, die die Stabilisierung von API, CLI und Einstellungen umfasst und für die grundlegende Nutzung durch normale Benutzer geeignet sein wird. In fernerer Zukunft, wenn der Rust-Code das Niveau erreicht hat, das einen vollständigen Ersatz der C-Version ermöglicht, beabsichtigen die Entwickler, Arti zur Hauptimplementierung von Tor zu erheben und die Unterstützung für die C-Implementierung einzustellen.
Im Gegensatz zu der in C umgesetzten Version, die zunächst als SOCKS-Proxy konzipiert und später an andere Bedürfnisse angepasst wurde, entwickelt sich Arti von Anfang an als modulare, einbettbare Bibliothek, die von verschiedenen Anwendungen genutzt werden kann. Außerdem fließt bei der Entwicklung des neuen Projekts das gesamte frühere Wissen aus der Tor-Entwicklung ein, um bekannte architektonische Probleme zu vermeiden und das Projekt modularer und effizienter zu gestalten. Der Code wird unter den Lizenzen Apache 2.0 und MIT verbreitet.
Die Gründe für die Neuschreibung von Tor in Rust liegen im Bestreben, ein höheres Maß an Code-Sicherheit zu erreichen, indem eine Sprache verwendet wird, die einen sicheren Umgang mit Speicher gewährleistet. Laut den Entwicklern von Tor werden mindestens die Hälfte aller vom Projekt verfolgten Sicherheitsanfälligkeiten in der Rust-Implementierung ausgeschlossen, sofern im Code keine "unsafe"-Blöcke verwendet werden. Rust ermöglicht außerdem eine höhere Entwicklungsgeschwindigkeit als mit C, dank der Ausdruckskraft der Sprache und strenger Garantien, die es ermöglichen, keine Zeit mit doppelten Überprüfungen und der Erstellung überflüssigen Codes zu verschwenden.
Die auffälligsten Änderungen in der Version 0.2.0 betreffen die Arbeiten zur Verbesserung der Leistung und Zuverlässigkeit. Die Nutzung in Netzwerken, die nur IPv6 unterstützen, wurde verbessert. Der Speicherverbrauch für die Datenspeicherung wurde reduziert. Server Verzeichnis. Eine Option dns_port wurde hinzugefügt, mit der sich DNS-Anfragen über Tor konfigurieren lassen. Neuer Code für die Bearbeitung der Konfiguration wurde angeboten. APIs zur Bestimmung von Isolationsregeln für Streams und zur Aktivierung des Schlafmodus (Pause für inaktive Clients) wurden hinzugefügt. Es wurde die Möglichkeit geschaffen, alternative Implementierungen des Codes anzuschließen, um mit Servern gearbeitet werden. Verzeichnis.
Bis zur Veröffentlichung der Version 1.0.0 beabsichtigen die Entwickler, Arti vollständig mit der Funktionalität als Tor-Client auszustatten, um Zugang zum Internet zu ermöglichen (die Implementierung der Unterstützung für Onion-Dienste wird auf die Zukunft verschoben). Außerdem ist geplant, Parität mit der Hauptimplementierung in C in Bereichen wie Netzwerkleistung, CPU-Belastung und Zuverlässigkeit zu erreichen sowie die Unterstützung aller sicherheitsrelevanten Funktionen zu gewährleisten.
Quelle: opennet.ru
