Vývojáři projektu Tor zveřejnili vydání Arti 1.4.0, implementace Tor klienta napsaného v jazyce Rust. Větev 1.x je označena jako vhodná pro využívání běžnými uživateli a poskytuje stejnou úroveň důvěrnosti, použitelnosti a stability jako primární implementace v jazyce C. Dosažení paritní úrovně s klientem v jazyce C je plánováno ve větvi 2.0. Jakmile dosáhne kód v Rustu úrovně schopné plně nahradit variantu v C, vývojáři mají v úmyslu přidělit Arti status primární implementace Tor a postupně přestat udržovat implementaci v C. Kód je distribuován podle licencí 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 novém vydání byl dokončen nový RPC rozhraní, které nahradilo protokol pro správu přes TCP port definovaný parametrem ControlPort. RPC může být použito pro integraci aplikací a služeb s Arti bez vkládání knihovny s funkcionalitou Arti do aplikace.
Klíčové rozdíly nového protokolu:
- Použití formátu JSON místo specifického formátu, který vyžaduje vlastní parser;
- Jednoduchost rozšíření protokolu. Formální určení toho, jak by klient a server měli zpracovávat nepodporované zprávy, parametry a data;
- Mechanismus pro určení dostupnosti RPC;
- Podpora simultánního přenosu několika požadavků v jednom síťovém spojení;
- Existence hotových klientských knihoven pro C, Python a Rust.
Mezi další změny v Arti 1.4.0 patří příprava na podporu relé a pokračování implementace funkcionality pro ochranu onion služeb před DDoS útoky.
Zdroj: opennet.ru
