První stabilní vydání Arti, oficiální implementace Tor v Rustu

Vývojáři anonymní sítě Tor vytvořili první stabilní verzi (1.0.0) projektu Arti, který vyvíjí Tor klienta napsaného v Rustu. Verze 1.0 je označena jako vhodná pro použití běžnými uživateli a poskytuje stejnou úroveň soukromí, použitelnosti a stability jako hlavní implementace C. Rozhraní API nabízené pro použití funkcí Arti v jiných aplikacích bylo také stabilizováno. Kód je distribuován pod licencí Apache 2.0 a MIT.

Na rozdíl od implementace C, která byla nejprve navržena jako SOCKS proxy a poté přizpůsobena dalším potřebám, je Arti zpočátku vyvíjen ve formě modulární embeddovatelné knihovny, kterou mohou používat různé aplikace. Při vývoji nového projektu se navíc berou v úvahu všechny minulé zkušenosti s vývojem Tor, čímž se vyhnete známým architektonickým problémům a projekt je modulárnější a efektivnější.

Důvodem pro přepsání Toru v Rustu byla touha dosáhnout vyšší úrovně zabezpečení kódu pomocí paměťově bezpečného jazyka. Podle vývojářů Tor bude minimálně polovina všech zranitelností monitorovaných projektem odstraněna v implementaci Rust, pokud kód nepoužívá „nebezpečné“ bloky. Rust také umožní dosáhnout vyšší rychlosti vývoje než použití C, a to díky výraznosti jazyka a přísným zárukám, které vám umožní vyhnout se ztrácení času dvojitou kontrolou a psaním zbytečného kódu.

Na základě výsledků vývoje první verze se použití jazyka Rust ospravedlnilo. Například bylo zjištěno, že v každé fázi bylo v kódu Rust uděláno méně chyb než ve srovnatelném vývoji v C - chyby, které se objevily během procesu vývoje, se týkaly hlavně logiky a sémantiky. Přehnaně náročný kompilátor rustc, některými uváděný jako nevýhoda, se ve skutečnosti ukázal jako požehnání, protože pokud se kód zkompiluje a projde testy, pravděpodobnost jeho správnosti se výrazně zvýší.

Práce na nové variantě také potvrdily zvýšení rychlosti vývoje, což je způsobeno nejen skutečností, že funkčnost byla znovu vytvořena na základě existující šablony, ale také výraznější sémantikou Rustu, pohodlnými knihovnami funkcí a použitím zabezpečení kódu Rust schopnosti. Jednou z nevýhod je velká velikost výsledných sestav – jelikož standardní knihovna Rust není na systémech standardně dodávána, musí být součástí balíčků nabízených ke stažení.

Verze 1.0 se zaměřuje především na základní práci v roli klienta. Ve verzi 1.1 se plánuje implementace podpory pro plug-in transport a mosty pro obcházení blokování. Očekává se, že verze 1.2 bude podporovat onion služby a související funkce, jako je protokol řízení přetížení (RTT Congestion Control) a ochrana proti útokům DDoS. Dosažení parity s C klientem je plánováno pro větev 2.0, která také nabídne vazby pro použití Arti v kódu v různých programovacích jazycích.

Během několika příštích let se práce zaměří na implementaci funkcí potřebných pro provoz přenosových a adresářových serverů. Když kód Rust dosáhne úrovně, která může zcela nahradit verzi C, mají vývojáři v úmyslu dát Arti status hlavní implementace Tor a přestat udržovat implementaci C. Verze C bude postupně vyřazována, aby byla umožněna hladká migrace.

Zdroj: opennet.ru

Přidat komentář