Vývojáři anonymní sítě Tor představili projekt Arti, v rámci kterého probíhá práce na vytvoření implementace protokolu Tor v jazyce Rust. Na rozdíl od implementace v C, která byla nejprve navržena jako SOCKS proxy a poté přizpůsobena dalším potřebám, Arti od začátku vyvíjí jako modulární vstřikovací knihovna, kterou budou moci využívat různá aplikace. Práce probíhá již více než rok s financováním v rámci programu dotací Zcash Open Major Grants (ZOMG). Kód se šíří pod licencemi Apache 2.0 a MIT.
Mezi důvody přepisování Tor do Rustu se uvádí snaha dosáhnout vyšší úrovně zabezpečení kódu díky použití jazyka, který zajišťuje bezpečné zacházení s pamětí. Podle odhadů vývojářů Tor bude alespoň polovina všech sledovaných zranitelností projektem vyloučena v implementaci v Rustu, pokud nebude v kódu použita bloky 'unsafe'. Rust také umožní dosáhnout vyšší rychlosti vývoje než při používání C díky vyjadřovací schopnosti jazyka a přísným zárukám, které umožňují neztrácet čas na dvojité kontrolování a psaní nadbytečného kódu. Navíc při vývoji nového projektu se zohledňuje veškerá předchozí zkušenost s vývojem Tor, což umožní vyhnout se známým architektonickým problémům a učinit projekt modulárnějším a efektivnějším.
V současném stavu se Arti již může připojit k síti Tor, zajišťovat interakci s servery adresáři a vytvářet anonymizované spojení přes Tor s poskytnutím proxy založené na protokolu SOCKS. Vývoj zatím nedoporučuje používat v pracovních systémech, protože nebyly implementovány všechny možnosti pro zajištění důvěrnosti a není zaručena zpětná kompatibilita na úrovni API. První verze klienta splňující kritéria bezpečnosti, podporující hlídací uzly a izolaci proudů, bude plánována k vydání v říjnu.
V březnu 2022 je očekáváno první beta vydání s experimentální implementací vestavěné knihovny a optimalizacemi výkonu. První stabilní verze, se stabilním API, CLI a formátem konfigurace, jakož i s provedeným auditem, je plánována na polovinu září 2022. Toto vydání bude vhodné pro počáteční použití běžnými uživateli. Na konci října 2022 se očekává aktualizace 1.1 s podporou připojitelného transportu a mostů pro obcházení blokací. Podpora onion služeb je naplánována na vydání 1.2, a dosažení paritního stavu s klientem napsaným v jazyce C se očekává ve vydání 2.0, jehož termíny zatím nejsou stanoveny.
Dále vývojáři předpokládají postupné snižování aktivity související s vývojem kódu v jazyce C a zvyšování času věnovaného úpravám v jazyce Rust. Jakmile implementace v Rustu dosáhne úrovně, která bude schopna nahradit variantu v jazyce C, vývojáři přestanou přidávat nové funkce do implementace v C a po nějaké době úplně přestanou její podporu. Ale to se nestane brzy, a jakmile implementace v Rustu nedosáhne úrovně plnohodnotné náhrady, bude pokračován vývoj klienta a relé Tor v jazyce C.
Zdroj: opennet.ru
