Razvijalci omrežja Tor so objavili izdajo projekta Arti 1.2.0, ki razvija Tor odjemalca, napisanega v jeziku Rust. Več različica 1.x je označena kot primerna za običajne uporabnike in zagotavlja enako raven zasebnosti, uporabnosti in stabilnosti kot glavna različica napisana v jeziku C. Koda se razdaja pod licencami Apache 2.0 in MIT.
V nasprotju z izvedbo v C, ki je bila sprva načrtovana kot SOCKS-proxy, nato pa prilagojena za druge potrebe, Arti sprva nastaja v obliki modularne vgrajene knjižnice, ki jo lahko uporabljajo različne aplikacije. Poleg tega se pri razvoju novega projekta upošteva vsa pretekla izkušnja pri razvoju Tor, kar omogoča izogibanje znanim arhitekturnim težavam in izboljšanje modularnosti ter učinkovitosti projekta. Ko koda v Rustu doseže raven, ki bo lahko v celoti nadomestila različico v C, nameravajo razvijalci Arti podeliti status glavne različice Tor in prenehati z vzdrževanjem izvedbe v C.
Kot razlog za prepisovanje Tor v Rust se navaja želja po dosego višje ravni varnosti kode z uporabo jezika, ki zagotavlja varno delo s pomnilnikom. Po oceni razvijalcev Tor, uporaba jezika Rust brez blokov 'unsafe' preprečuje pojav vsaj polovice vseh tipičnih ranljivosti v projektu. Rust prav tako omogoča dosego višje hitrosti razvoja v primerjavi z uporabo C, zahvaljujoč izrazitosti jezika in strogim jamstvom, ki preprečujejo zamanjavanje časa pri dvomljivih preverjanjih in pisanju odvečnega kode.
Izdaja Arti 1.2 je znamenita po uvedbi stabilne podpore za onion storitve. S pomočjo Arti je zdaj možno ne le povezati se z obstoječimi onion storitvami, temveč tudi ustvariti svoje onion storitve.
Began, but not yet completed, work on the implementation of related features concerning the privacy and protection of onion services, such as the RTT Congestion Control protocol, DDoS attack mitigation tools, bandwidth regulation, client authorization, and the "Vanguard" mechanism to prevent the identification of Guard nodes. Until these features are fully implemented, the creation of onion services based on Arti is not recommended for operational deployments.
The new version also addresses a vulnerability in the code processing messages from relays, caused by the possibility of sending empty DATA messages, which can be used to substitute undefined traffic indicators. The issue has been assigned a low severity level, as DATA packets are accepted only for already opened streams.
Achieving parity with the client in C is planned for the 2.0 branch, which will also offer bindings for using Arti in code written in various programming languages. When the Rust code reaches a level capable of fully replacing the C variant, the developers intend to give Arti the status of the primary Tor implementation and discontinue support for the C implementation. Support for the C version will be gradually phased out, providing a smooth migration path.
Izvor: opennet.ru
