Första stabila utgåvan av Arti, den officiella implementeringen av Tor i Rust

Utvecklarna av det anonyma Tor-nätverket har skapat den första stabila versionen (1.0.0) av Arti-projektet, som utvecklar en Tor-klient skriven i Rust. Utgåvan 1.0 är märkt som användbar av allmänna användare och ger samma nivå av integritet, användbarhet och stabilitet som den huvudsakliga C-implementeringen. API:et som erbjuds för att använda Arti-funktionalitet i andra applikationer har också stabiliserats. Koden distribueras under Apache 2.0- och MIT-licenserna.

Till skillnad från C-implementationen, som ursprungligen designades som en SOCKS-proxy och sedan anpassades för att passa andra behov, är Arti initialt utvecklad som ett modulärt plug-in-bibliotek som kan användas av olika applikationer. Dessutom, när man utvecklar ett nytt projekt, beaktas all tidigare Tor-utvecklingserfarenhet, vilket undviker kända arkitektoniska problem, vilket gör projektet mer modulärt och effektivt.

Anledningen till att Tor skrev om i Rust var önskan att uppnå en högre nivå av kodsäkerhet genom att använda ett minnessäkert språk. Enligt Tor-utvecklare kommer minst hälften av alla sårbarheter som övervakas av projektet att elimineras i en Rust-implementation om koden inte använder "osäkra" block. Rust kommer också att göra det möjligt att uppnå snabbare utvecklingshastigheter än att använda C, på grund av språkets uttrycksfullhet och strikta garantier som gör att du slipper slösa tid på att dubbelkolla och skriva onödig kod.

Baserat på resultaten av utvecklingen av den första versionen motiverade användningen av Rust-språket sig självt. Till exempel noterades att det i varje steg gjordes färre fel i Rust-koden än i jämförbar utveckling i C - de fel som uppstod under utvecklingsprocessen var främst relaterade till logik och semantik. Den överdrivet krävande rustc-kompilatorn, som av vissa noterades som en nackdel, visade sig faktiskt vara en välsignelse, eftersom om koden kompileras och klarar testerna, ökar sannolikheten för dess korrekthet avsevärt.

Arbetet med den nya varianten bekräftade också en ökning av utvecklingshastigheten, vilket inte bara beror på att funktionaliteten återskapades baserat på en befintlig mall, utan också på Rusts mer uttrycksfulla semantik, bekväma funktionsbibliotek och användningen av Rusts kodsäkerhet Förmågor. En av nackdelarna är den stora storleken på de resulterande sammansättningarna - eftersom standardbiblioteket Rust inte tillhandahålls på system som standard måste det inkluderas i de paket som erbjuds för nedladdning.

1.0-releasen fokuserar främst på grundläggande arbete i klientrollen. I version 1.1 är det planerat att implementera stöd för plug-in transport och broar för att kringgå blockering. Version 1.2 förväntas stödja löktjänster och relaterade funktioner, såsom protokollet för överbelastningskontroll (RTT Congestion Control) och skydd mot DDoS-attacker. Att uppnå paritet med C-klienten planeras för 2.0-grenen, som även kommer att erbjuda bindningar för att använda Arti i kod i olika programmeringsspråk.

Under de närmaste åren kommer arbetet att fokusera på att implementera den funktionalitet som behövs för att driva reläer och katalogservrar. När Rust-koden når en nivå som helt kan ersätta C-versionen, avser utvecklarna att ge Arti status för huvudimplementeringen av Tor och sluta underhålla C-implementationen. C-versionen kommer att fasas ut gradvis för att möjliggöra en smidig migrering.

Källa: opennet.ru

Lägg en kommentar