Første stabile udgivelse af Arti, den officielle implementering af Tor i Rust

Udviklerne af det anonyme Tor-netværk har skabt den første stabile udgivelse (1.0.0) af Arti-projektet, som udvikler en Tor-klient skrevet i Rust. 1.0-udgivelsen er markeret som egnet til brug af almindelige brugere og giver samme niveau af privatliv, brugervenlighed og stabilitet som den primære C-implementering. API'et, der tilbydes til brug af Arti-funktionalitet i andre applikationer, er også blevet stabiliseret. Koden distribueres under Apache 2.0- og MIT-licenserne.

I modsætning til C-implementeringen, der først blev designet som en SOCKS-proxy og derefter skræddersyet til andre behov, er Arti oprindeligt udviklet i form af et modulært indlejrbart bibliotek, der kan bruges af forskellige applikationer. Derudover tages der ved udvikling af et nyt projekt hensyn til al tidligere Tor udviklingserfaring, hvilket undgår kendte arkitektoniske problemer og gør projektet mere modulært og effektivt.

Grunden til at omskrive Tor i Rust var ønsket om at opnå et højere niveau af kodesikkerhed ved at bruge et hukommelsessikkert sprog. Ifølge Tor-udviklere vil mindst halvdelen af ​​alle sårbarheder, der overvåges af projektet, blive elimineret i en Rust-implementering, hvis koden ikke bruger "usikre" blokke. Rust vil også gøre det muligt at opnå hurtigere udviklingshastigheder end at bruge C, på grund af sprogets udtryksevne og strenge garantier, der gør, at du undgår at spilde tid på at dobbelttjekke og skrive unødvendig kode.

Baseret på resultaterne af udviklingen af ​​den første version retfærdiggjorde brugen af ​​Rust-sproget sig selv. For eksempel blev det bemærket, at der på hvert trin blev lavet færre fejl i Rust-koden end i sammenlignelig udvikling i C - de fejl, der dukkede op under udviklingsprocessen, var hovedsageligt relateret til logik og semantik. Den overdrevent krævende rustc-kompiler, der af nogle blev bemærket som en ulempe, viste sig faktisk at være en velsignelse, da hvis koden kompilerer og består testene, øges sandsynligheden for dens rigtighed betydeligt.

Arbejdet med den nye variant bekræftede også en stigning i udviklingshastigheden, hvilket ikke kun skyldes, at funktionaliteten blev genskabt baseret på en eksisterende skabelon, men også Rusts mere udtryksfulde semantik, praktiske funktionsbiblioteker og brugen af ​​Rusts kodesikkerhed. kapaciteter. En af ulemperne er den store størrelse af de resulterende samlinger - da standard Rust-biblioteket ikke leveres på systemer som standard, skal det inkluderes i de pakker, der tilbydes til download.

1.0-udgivelsen fokuserer hovedsageligt på grundlæggende arbejde i klientrollen. I version 1.1 er det planlagt at implementere understøttelse af plug-in transport og broer til at omgå blokering. Version 1.2 forventes at understøtte onion-tjenester og relaterede funktioner, såsom overbelastningskontrolprotokollen (RTT Congestion Control) og beskyttelse mod DDoS-angreb. At opnå paritet med C-klienten er planlagt for 2.0-grenen, som også vil tilbyde bindinger til brug af Arti i kode i forskellige programmeringssprog.

I løbet af de næste par år vil arbejdet fokusere på at implementere den funktionalitet, der er nødvendig for at køre relæer og katalogservere. Når Rust-koden når et niveau, der fuldstændigt kan erstatte C-versionen, har udviklerne til hensigt at give Arti status som hovedimplementeringen af ​​Tor og stoppe med at vedligeholde C-implementeringen. C-versionen udfases gradvist for at muliggøre en glidende migrering.

Kilde: opennet.ru

Tilføj en kommentar