The developers of the anonymous network Tor have released version 1.1.0 of the Arti project, which develops a Tor client written in Rust. The 1.x branch is marked as suitable for use by regular users and provides the same level of privacy, usability, and stability as the main implementation in C.
Unlike the implementation in C, which was initially designed as a SOCKS proxy and then adapted for other needs, Arti is being developed from the start as a modular embeddable library that various applications can use. Furthermore, the development of the new project takes into account all the past experiences of Tor development, allowing for the avoidance of known architectural issues and making the project more modular and efficient.
The reason for rewriting Tor in Rust is mentioned as the desire to achieve a higher level of code security by using a language that ensures safe memory handling. According to Tor developers, at least half of all vulnerabilities tracked by the project will be eliminated in the Rust implementation if 'unsafe' blocks are not used in the code. Rust will also allow for a faster development speed compared to C due to the expressiveness of the language and strict guarantees that prevent time wastage on double checks and unnecessary code writing.
Version 1.1 has implemented support for bridges to circumvent censorship and connectable transports. From the tested transports with Arti for obfuscating traffic and combating censorship, obfs4proxy and snowflake were noted. The requirements for the build environment have been raised – at least Rust 1.60 is now required to build Arti.
The next version (1.2) is expected to introduce support for onion services and associated features such as round-trip time congestion control (RTT Congestion Control) and DDoS attack protection. Achieving parity with the C language client is planned for branch 2.0, which will also offer bindings for using Arti in code written in various programming languages. In the coming years, the focus will be on implementing the functionality necessary for relay operation. servers directory. When the Rust code reaches the level capable of fully replacing the C version, the developers intend to give Arti the status of the main implementation of Tor and discontinue support for the C implementation. Support for the C version will be gradually phased out, allowing for a smooth migration.
Source: opennet.ru
