A Tor projekt bemutatott egy Rust nyelvű implementációt, amely a jövőben felváltja a C verziót

Az anonim Tor hálózat fejlesztői bemutatták az Arti projektet, amelyen belül a Tor protokoll Rust nyelvű implementációjának megalkotása folyik. 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. A munka több mint egy éve folyik a Zcash Open Major Grants (ZOMG) pályázati program finanszírozásával. A kódot Apache 2.0 és MIT licencek alatt terjesztik.

A Tor Rust nyelven történő újraírásának oka az a vágy, hogy magasabb szintű kódbiztonságot érjenek el egy olyan nyelv használatával, amely biztosítja a memóriával való biztonságos működést. 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. Ezenkívül egy új projekt kidolgozásakor minden korábbi Tor fejlesztési tapasztalatot figyelembe veszünk, ami elkerüli az ismert építészeti problémákat, és modulárisabbá és hatékonyabbá teszi a projektet.

Jelenlegi állapotában az Arti már tud csatlakozni a Tor hálózathoz, kommunikálni a címtárszerverekkel, és SOCKS alapú proxyval anonimizált kapcsolatokat hozhat létre a Tor tetején. A fejlesztést még nem javasoljuk éles rendszerekben való használatra, mivel nincs minden adatvédelmi funkció implementálva, és az API szintű visszafelé kompatibilitás sem garantált. A kliens első biztonsági kompatibilis verziója, amely támogatja a védőcsomópontokat és a szálleválasztást, a tervek szerint októberben jelenik meg.

Az első béta kiadás 2022 márciusában várható a beágyazott könyvtár kísérleti megvalósításával és a teljesítményoptimalizálással. Az első stabil kiadás, stabil API-val, CLI-vel és konfigurációs formátummal, valamint auditálással 2022. szeptember közepére várható. Ez a kiadás alkalmas lesz az általános felhasználók kezdeti használatra. Az 2022-es frissítés 1.1. október végén várható, és támogatja a beépülő modulok szállítását és a blokkolást elkerülő hidakat. Az onion szolgáltatások támogatását az 1.2-es kiadásra tervezik, a C-klienssel való paritás elérése pedig a 2.0-s kiadásban várható, amelynek időzítését még nem határozták meg.

A jövőben a fejlesztők a C-kód fejlesztésével kapcsolatos aktivitás fokozatos csökkenését és a Rust-ban való szerkesztésre fordított idő növekedését jósolják. Amikor a Rust implementáció elér egy olyan szintet, amely képes leváltani a C verziót, a fejlesztők leállítják az új funkciók hozzáadását a C implementációhoz, és egy idő után teljesen leállítják annak támogatását. De ez nem fog megtörténni egyhamar, és amíg a Rust-ban való megvalósítás el nem éri a teljes csere szintjét, a Tor-kliens és a C-beli relé fejlesztése folytatódik.

Forrás: opennet.ru

Hozzászólás