Version Arti 2.0.0, offizielle Umsetzung von Tor in der Programmiersprache Rust

Die Entwickler des Tor-Projekts haben die Version Arti 2.0.0 veröffentlicht, die offiziell ausgebaute Variante des Tor-Toolkits, geschrieben in Rust. Die Implementierung ist als nutzbar fĂŒr normale Benutzer gekennzeichnet und bietet das gleiche Maß an Vertraulichkeit, Benutzerfreundlichkeit und StabilitĂ€t wie die Hauptimplementierung in C. Wenn der Rust-Code das Niveau erreicht, das in der Lage ist, die Implementierung in C vollstĂ€ndig zu ersetzen, beabsichtigen die Entwickler, Arti den Status der Hauptimplementierung von Tor zu verleihen und allmĂ€hlich die UnterstĂŒtzung der C-Variante einzustellen. Der Code wird unter den Lizenzen Apache 2.0 und MIT verbreitet.

Arti wird ursprĂŒnglich als modulare, einbettbare Bibliothek entwickelt, die von verschiedenen Anwendungen genutzt werden kann. Bei dem Design von Arti wurde auf die bisherigen Erfahrungen mit der Entwicklung von Tor RĂŒcksicht genommen, was es ermöglichte, bekannte architektonische Probleme zu vermeiden, die damit zusammenhĂ€ngen, dass die C-Implementierung zunĂ€chst als SOCKS-Proxy konzipiert wurde und erst spĂ€ter an andere BedĂŒrfnisse angepasst wurde.

Neben der Modernisierung der Architektur war der Wunsch, die Sicherheit des Codes zu erhöhen, ein Grund fĂŒr die Neuschreibung von Tor in Rust, da eine Sprache verwendet wurde, die sichere Arbeit mit Speicher ermöglicht. Laut den Entwicklern von Tor wird die Verwendung von Rust ohne 'unsafe'-Blöcke verhindern, dass mindestens die HĂ€lfte aller typischen Schwachstellen im Projekt auftritt. Außerdem wird angenommen, dass Rust die Entwicklungsgeschwindigkeit durch die Ausdruckskraft der Sprache und strenge Garantien erhöht, was es ermöglicht, keine Zeit mit doppelten ÜberprĂŒfungen oder dem Schreiben ĂŒberflĂŒssigen Codes zu verschwenden.

Die signifikante Änderung der Versionsnummer wurde gemĂ€ĂŸ dem im Projekt angewendeten Modell des semantischen Versionierens durchgefĂŒhrt und steht im Zusammenhang mit Änderungen, die die AbwĂ€rtskompatibilitĂ€t brechen. Die UnterstĂŒtzung der Einstellungen proxy.socks_port und proxy.dns_port, die zuvor als veraltet erklĂ€rt wurden, wurde eingestellt, und an ihre Stelle treten die Einstellungen proxy.socks_listen und proxy.dns_listen. Die UnterstĂŒtzung der alten Syntax zur Definition von Server Verzeichnissen (Directory Authority) wurde eingestellt. Alle Programmierschnittstellen des Crate-Pakets arti, die geplant sind, in andere Crate-Pakete verschoben oder entfernt zu werden, sind als experimentell gekennzeichnet.

Die neue FunktionalitĂ€t umfasst die UnterstĂŒtzung eines neuen Socket-Typs "inet-auto" zur automatischen Zuweisung eines ungenutzten TCP-Ports fĂŒr den RPC-Server. Die Implementierung der FunktionalitĂ€t fĂŒr Relais und Verzeichnisserver wurde fortgesetzt. FĂŒr Verzeichnisserver wurde an der Verwaltung von Zertifikaten gearbeitet; die Möglichkeit zum Hochladen, Verifizieren und Speichern von Zertifikaten wurde hinzugefĂŒgt. FĂŒr die Relais wurde eine neue modulare Architektur zur Verwaltung von Knotenketten implementiert, die UnterstĂŒtzung fĂŒr den Aufbau von KommunikationskanĂ€len mit anderen Relais sowie die UnterstĂŒtzung fĂŒr die Bearbeitung von Anfragen zur Aushandlung von Verbindungen und die Möglichkeit, das Relais in der Rolle Server bei der Einrichtung einer TLS-Verbindung.

Quelle: opennet.ru

60GB SSD 8Gb DDR4