Vývojári projektu Tor zverejnili vydanie Arti 2.0.0, oficiálne vyvíjaného variantu nástroja Tor, napísaného v jazyku Rust. Implementácia je považovaná za vhodnú na používanie bežnými používateľmi a poskytuje rovnakú úroveň dôvernosti, použiteľnosti a stability ako pôvodná implementácia v jazyku C. Keď kód napísaný v Ruste dosiahne úroveň, ktorá dokáže úplne nahradiť variant v jazyku C, vývojári plánujú priradiť Arti status hlavnej implementácie Tor a postupne ukončiť podporu variantu v jazyku C. Kód je distribuovaný pod licenciami Apache 2.0 a MIT.
Arti sa pôvodne vyvíja vo forme modulárnej knižnice, ktorú môžu využívať rôzne aplikácie. Pri návrhu Arti bol zohľadnený predchádzajúci vývoj Tor, čo umožnilo vyhnúť sa známym architektonickým problémom spojeným s tým, že implementácia v jazyku C bola na začiatku navrhnutá ako SOCKS proxy a neskôr prispôsobená iným potrebám.
Okrem modernizácie architektúry bolo prepisovanie Tor na Rust motivované želaním zvýšiť bezpečnosť kódu využitím jazyka, ktorý zabezpečuje bezpečné zaobchádzanie s pamäťou. Podľa odhadov vývojárov Tor použitie jazyka Rust bez blokov „unsafe“ zabráni vzniku minimálne polovice všetkých typických zraniteľností v projekte. Okrem toho sa predpokladá, že Rust urýchli proces vývoja vďaka výrazu jazyka a prísnym zárukám, ktoré umožnia ušetriť čas na dvojité kontroly a písanie zbytočného kódu.
Významná zmena verzie bola vykonaná v súlade s modelom semantického verziovania používaným v projekte a súvisí so zavedením zmien, ktoré porušujú spätnú kompatibilitu. Podpora nastavení proxy.socks_port a proxy.dns_port, ktoré boli predtým označené ako zastarané, bola ukončená a boli nahradené nastaveniami proxy.socks_listen a proxy.dns_listen. Podpora starého syntaxe definovania serverov adresárov (Directory Authority) bola ukončená. Všetky programové rozhrania crate balíčka arti, ktoré sa plánuje presunúť do iných crate balíčkov alebo odstrániť, sú označené ako experimentálne.
Z novej funkčnosti sa vyznačuje podpora nového typu soketov „inet-auto“ pre automatické priraďovanie nepoužívaného TCP portu pre RPC server. Pokračovala implementácia funkčnosti pre relé a servery adresárov. Pre servery adresárov bola vykonaná práca na správe certifikátov, bola pridaná možnosť nahrávania, overovania a uchovávania certifikátov. Pre relé bola realizovaná nová modulárna architektúra riadenia reťazcov uzlov, podpora vytvárania komunikačných kanálov s inými relé, podpora spracovania požiadaviek na dohodu o pripojení a možnosť práce relé v úlohe servera pri vytváraní TLS pripojenia.
Zdroj: opennet.ru
