Vývojáři projektu Tor vydali Arti 2.0.0, oficiálně udržovanou verzi sady nástrojů Tor napsanou v Rustu. Implementace je označena jako vhodná pro běžné uživatele a poskytuje stejnou úroveň soukromí, použitelnosti a stability jako hlavní implementace v jazyce C. Jakmile kód v Rustu dosáhne úrovně schopné zcela nahradit implementaci v jazyce C, vývojáři hodlají upgradovat Arti na hlavní implementaci Tor a postupně ukončit údržbu implementace v jazyce C. Kód je licencován pod licencemi Apache 2.0 a MIT.
Arti je zpočátku vyvíjen jako modulární, zabudovatelná knihovna, kterou lze použít pro různé aplikace. Návrh Arti zohledňuje předchozí zkušenosti s Torem, což se vyhýbá známým architektonickým problémům spojeným s implementací C, která byla původně navržena jako proxy SOCKS a poté přizpůsobena dalším potřebám.
Kromě modernizace architektury byla důvodem přepsání Toru v Rustu touha zvýšit bezpečnost kódu pomocí jazyka, který zajišťuje bezpečnou práci s pamětí. Podle vývojářů Toru použití jazyka Rust bez „nebezpečných“ bloků zabrání minimálně polovině všech typických zranitelností v projektu. Od Rustu se také očekává zvýšení rychlosti vývoje díky výraznosti jazyka a silným zárukám, které eliminují nutnost ztrácet čas dvojitou kontrolou a psaním zbytečného kódu.
V souladu se sémantickým verzovacím modelem projektu byla provedena významná změna čísla verze, která je způsobena změnami, jež narušují zpětnou kompatibilitu. Podpora nastavení proxy.socks_port a proxy.dns_port, která byla dříve zastaralá, byla ukončena a nahrazena nastaveními proxy.socks_listen a proxy.dns_listen. Podpora staré syntaxe definic byla ukončena. servery Adresáře (autorita adresářů). Všechna API v balíčku arti crate jsou označena jako experimentální a plánuje se jejich přesun do jiných crate nebo odstranění.
Mezi nové funkce patří podpora nového typu socketu „inet-auto“ pro automatické přiřazení nepoužívaného TCP portu RPC serveru. Pokračovala implementace funkcí pro relé a adresářové servery. Pro adresářové servery byla implementována správa certifikátů s přidáním možnosti nahrávání, ověřování a ukládání certifikátů. Pro relé byla implementována nová modulární architektura správy řetězce uzlů spolu s podporou pro vytváření komunikačních kanálů s ostatními relé, podporou pro zpracování požadavků na vyjednávání připojení a možností, aby relé fungovala jako... server při navazování TLS připojení.
Zdroj: opennet.ru
