Vývojáři projektu Tor zveřejnili verzi Arti 2.0.0, oficiálně vyvíjené varianty nástrojů Tor, napsané v jazyce Rust. Tato implementace je označena jako vhodná pro běžné uživatele a poskytuje stejnou úroveň ochrany soukromí, uživatelské přívětivosti a stability jako základní implementace v jazyce C. Když kód v Rustu dosáhne úrovně, která bude plně schopna nahradit variantu v C, mají vývojáři v úmyslu přidat Arti status hlavní implementace Tor a postupně ukončit údržbu varianty v C. Kód je distribuován pod licencemi Apache 2.0 a MIT.
Arti se původně vyvíjí ve formě modulární knihovny, kterou mohou používat různá aplikace. Při navrhování Arti byl zohledněn předchozí vývoj projektu Tor, což umožnilo vyhnout se známým architektonickým problémům spojeným s tím, že implementace v C byla zpočátku navržena jako SOCKS proxy a poté přizpůsobena pro jiné potřeby.
Kromě modernizace architektury byla důvodem pro přepracování Tor na Rust touha zvýšit bezpečnost kódu díky použití jazyka, který zajišťuje bezpečné nakládání s pamětí. Podle odhadů vývojářů Tor použití jazyka Rust bez bloků „unsafe“ zabrání vzniku alespoň poloviny všech typických zranitelností v projektu. Dále se předpokládá, že Rust zvýší rychlost vývoje díky výrazu jazyka a přísným zárukám, které umožňují ušetřit čas na dvojité kontroly a psaní zbytečného kódu.
Významná změna čísla verze byla provedena podle použité projektové modelu semantického verzování a byla spojena se změnami, které narušují zpětnou kompatibilitu. Byla ukončena podpora nastavení proxy.socks_port a proxy.dns_port, která byla dříve označena jako zastaralá, na jejichž místo přišla nastavení proxy.socks_listen a proxy.dns_listen. Byla ukončena podpora starého syntaxe definování servery adresářů (Directory Authority). Všechny rozhraní programu crate balíčku arti, které plánují přesunout do jiných crate balíčků nebo odstranit, jsou označeny jako experimentální.
Mezi novými funkcemi se zmiňuje podpora nového typu soketů „inet-auto“ pro automatické přiřazení nepoužívaného TCP portu pro RPC server. Pokračovalo se v realizaci funkcionality pro relé a servery adresářů. Pro servery adresářů byla provedena práce na správě certifikátů, byla přidána možnost nahrávání, verifikace a uchovávání certifikátů. Pro relé byla implementována nová modulární architektura řízení řetězců uzlů, podpora vytváření komunikačních kanálů s jinými relé a podpora zpracování žádostí o sjednání spojení a možnost fungovat jako relé. serveru při ustanovování TLS spojení.
Zdroj: opennet.ru
