Az Arti első stabil kiadása, a Tor in Rust hivatalos megvalósítása

Az anonim Tor hálózat fejlesztői elkészítették az Arti projekt első stabil kiadását (1.0.0), amely egy Rust nyelven írt Tor klienst fejleszt. Az 1.0-s kiadás általános felhasználók általi használatra alkalmas, és ugyanolyan szintű adatvédelmet, használhatóságot és stabilitást biztosít, mint a fő C implementáció. Az Arti funkciók más alkalmazásokban való használatához kínált API-t is stabilizálták. A kódot Apache 2.0 és MIT licencek alatt terjesztik.

A C implementációtól eltérően, amelyet először SOCKS proxynak terveztek, majd más igényekre szabtak, az Arti-t kezdetben egy moduláris beágyazható könyvtár formájában fejlesztették ki, amelyet különféle alkalmazások használhatnak. Ezenkívül egy új projekt kidolgozásakor minden korábbi Tor fejlesztési tapasztalatot figyelembe vesznek, ami elkerüli az ismert építészeti problémákat, és modulárisabbá és hatékonyabbá teszi a projektet.

A Tor Rust nyelven történő átírásának oka az volt, hogy egy memóriabiztos nyelv használatával magasabb szintű kódbiztonságot érjenek el. A Tor fejlesztői szerint a projekt által megfigyelt sérülékenységek legalább fele megszűnik egy Rust implementációban, ha a kód nem használ „nem biztonságos” blokkokat. A Rust a nyelv kifejezőképességének és a szigorú garanciáknak köszönhetően gyorsabb fejlesztési sebesség elérését is lehetővé teszi, mint a C használata, amely lehetővé teszi, hogy elkerülje az időveszteséget a dupla ellenőrzésre és a felesleges kód írására.

Az első változat fejlesztésének eredményei alapján a ruszt nyelv használata indokolttá vált. Például észrevették, hogy minden egyes szakaszban kevesebb hiba történt a Rust kódban, mint a C-beli hasonló fejlesztéseknél - a fejlesztési folyamat során felmerülő hibák főként a logikához és a szemantikához kapcsolódnak. A túlzottan igényes rustc fordító, amelyet egyesek hátrányként emlegettek, valójában áldásosnak bizonyult, hiszen ha a kód lefordítja és átmegy a teszteken, akkor a helyességének valószínűsége jelentősen megnő.

Az új változaton végzett munka a fejlesztési sebesség növekedését is megerősítette, ami nem csak annak a ténynek köszönhető, hogy a funkcionalitást egy meglévő sablon alapján újra létrehozták, hanem a Rust kifejezőbb szemantikájának, kényelmes függvénykönyvtárainak és a Rust kódbiztonságának használatának is köszönhető. képességeit. Az egyik hátrány az így létrejövő összeállítások nagy mérete - mivel a szabványos Rust könyvtárat alapértelmezés szerint nem szállítják a rendszerekre, azt a letöltésre kínált csomagokban kell tartalmazni.

Az 1.0-s kiadás elsősorban az ügyfél szerepkörében végzett alapvető munkákra összpontosít. Az 1.1-es verzióban a tervek szerint beépítik a plug-in szállítás és a blokkolás megkerülésére szolgáló hidak támogatását. Az 1.2-es verzió várhatóan támogatni fogja az Onion szolgáltatásokat és a kapcsolódó szolgáltatásokat, például a torlódáskezelési protokollt (RTT Congestion Control) és a DDoS támadások elleni védelmet. A C-klienssel való paritás elérését a 2.0-s ágra tervezik, amely kötéseket is kínál majd az Arti kódbeli használatához különböző programozási nyelveken.

A következő néhány évben a munka a relék és címtárszerverek futtatásához szükséges funkciók megvalósítására összpontosít. Amikor a Rust kód elér egy olyan szintet, amely teljesen leválthatja a C verziót, a fejlesztők szándékaik szerint Artinak a Tor fő implementációjának státuszát kell megadni, és leállítják a C implementáció karbantartását. A C verzió fokozatosan megszűnik a zökkenőmentes átállás érdekében.

Forrás: opennet.ru

Hozzászólás