Prvé stabilné vydanie Arti, oficiálnej implementácie Tor v Ruste

Vývojári anonymnej siete Tor vytvorili prvé stabilné vydanie (1.0.0) projektu Arti, ktorý vyvíja Tor klienta napísaného v Ruste. Vydanie 1.0 je označené ako vhodné pre bežných používateľov a poskytuje rovnakú úroveň súkromia, použiteľnosti a stability ako hlavná implementácia C. Rozhranie API ponúkané na používanie funkcionality Arti v iných aplikáciách bolo tiež stabilizované. Kód je distribuovaný pod licenciami Apache 2.0 a MIT.

Na rozdiel od implementácie C, ktorá bola najprv navrhnutá ako SOCKS proxy a potom prispôsobená iným potrebám, Arti je spočiatku vyvinutý vo forme modulárnej embeddovateľnej knižnice, ktorú môžu využívať rôzne aplikácie. Okrem toho sa pri vývoji nového projektu berú do úvahy všetky predchádzajúce skúsenosti s vývojom Tor, čím sa predíde známym architektonickým problémom a projekt je modulárnejší a efektívnejší.

Dôvodom pre prepísanie Tor v Rust bola túžba dosiahnuť vyššiu úroveň zabezpečenia kódu pomocou pamäťovo bezpečného jazyka. Podľa vývojárov Tor bude najmenej polovica všetkých zraniteľností monitorovaných projektom odstránená v implementácii Rust, ak kód nebude používať „nebezpečné“ bloky. Rust tiež umožní dosiahnuť vyššiu rýchlosť vývoja ako pri použití C, a to vďaka expresívnosti jazyka a prísnym zárukám, ktoré vám umožnia vyhnúť sa strate času dvojitou kontrolou a písaním zbytočného kódu.

Na základe výsledkov vývoja prvej verzie sa použitie jazyka Rust ospravedlnilo. Napríklad sa zistilo, že v každej fáze sa v kóde Rust urobilo menej chýb ako pri porovnateľnom vývoji v jazyku C – chyby, ktoré sa objavili počas procesu vývoja, súviseli najmä s logikou a sémantikou. Príliš náročný kompilátor rustc, ktorý niektorí označujú za nevýhodu, sa v skutočnosti ukázal ako požehnanie, pretože ak sa kód skompiluje a prejde testami, pravdepodobnosť jeho správnosti sa výrazne zvýši.

Práca na novom variante tiež potvrdila zvýšenie rýchlosti vývoja, čo je spôsobené nielen skutočnosťou, že funkčnosť bola znovu vytvorená na základe existujúcej šablóny, ale aj expresívnejšou sémantikou Rustu, pohodlnými knižnicami funkcií a použitím zabezpečenia kódu Rust. schopnosti. Jednou z nevýhod je veľká veľkosť výsledných zostáv – keďže štandardná knižnica Rust nie je na systémoch štandardne dodávaná, musí byť súčasťou balíkov ponúkaných na stiahnutie.

Vydanie 1.0 sa zameriava hlavne na základnú prácu v úlohe klienta. Vo verzii 1.1 sa plánuje implementácia podpory pre plug-in transport a mosty na obídenie blokovania. Očakáva sa, že verzia 1.2 bude podporovať cibuľové služby a súvisiace funkcie, ako je protokol riadenia preťaženia (RTT Congestion Control) a ochrana pred útokmi DDoS. Dosiahnutie parity s klientom C sa plánuje pre pobočku 2.0, ktorá bude ponúkať aj väzby na používanie Arti v kóde v rôznych programovacích jazykoch.

V priebehu niekoľkých nasledujúcich rokov sa práca zameria na implementáciu funkcií potrebných na spustenie prenosových a adresárových serverov. Keď kód Rust dosiahne úroveň, ktorá môže úplne nahradiť verziu C, vývojári majú v úmysle dať Arti status hlavnej implementácie Tor a prestať udržiavať implementáciu C. Verzia C sa bude postupne vyraďovať, aby sa umožnila hladká migrácia.

Zdroj: opennet.ru

Pridať komentár