Release of Arti 1.1, the official Rust implementation of Tor

The developers of the Tor anonymous network have published the release of the Arti 1.1.0 project, which develops a Tor client written in Rust. The 1.x branch is marked as usable by general users and provides the same level of privacy, usability and stability as the main C implementation. The code is distributed under the Apache 2.0 and MIT licenses.

Unlike the C implementation, which was originally designed as a SOCKS proxy and then customized to suit other needs, Arti is initially developed as a modular plug-in library that can be used by various applications. In addition, when developing a new project, all past Tor development experience is taken into account, which avoids known architectural problems, making the project more modular and efficient.

The desire to achieve a higher level of code security through the use of a memory-safe language is mentioned as a reason for rewriting Tor in Rust. According to the Tor developers, at least half of all vulnerabilities tracked by the project will be excluded in the Rust implementation if the code does not use "unsafe" blocks. Rust will also allow you to achieve faster development speed than using C, due to the expressiveness of the language and strong guarantees that allow you not to waste time on double checks and writing unnecessary code.

Version 1.1 supports bridges for bypassing locks and pluggable transport. Of the transports tested with Arti, obfs4proxy and snowflake are noted for hiding traffic and combating blocking. Increased requirements for the build environment - building Arti now requires at least a branch of Rust 1.60.

The next version (1.2) is expected to include support for onion services and related features such as the RTT Congestion Control protocol and DDoS protection. Achieving parity with the C client is scheduled for the 2.0 branch, which will also offer bindings for using Arti in code in various programming languages. Over the next few years, work will focus on implementing the functionality needed to run relays and directory servers. When the Rust code reaches a level that can completely replace the C version, the developers intend to make Arti the main implementation of Tor and stop maintaining the C implementation. Support for the C language version will be phased out to allow smooth migration.

Source: opennet.ru

Add a comment