Første stabile utgivelse av Arti, den offisielle implementeringen av Tor i Rust

Utviklerne av det anonyme Tor-nettverket har laget den første stabile utgivelsen (1.0.0) av Arti-prosjektet, som utvikler en Tor-klient skrevet i Rust. 1.0-utgivelsen er merket som egnet for bruk av vanlige brukere og gir samme nivå av personvern, brukervennlighet og stabilitet som den viktigste C-implementeringen. API-en som tilbys for bruk av Arti-funksjonalitet i andre applikasjoner er også stabilisert. Koden distribueres under Apache 2.0- og MIT-lisensene.

I motsetning til C-implementeringen, som først ble designet som en SOCKS-proxy og deretter skreddersydd til andre behov, er Arti i utgangspunktet utviklet i form av et modulært innebygd bibliotek som kan brukes av ulike applikasjoner. I tillegg, når man utvikler et nytt prosjekt, tas all tidligere Tor utviklingserfaring med i betraktningen, noe som unngår kjente arkitektoniske problemer og gjør prosjektet mer modulært og effektivt.

Bakgrunnen for å omskrive Tor i Rust var ønsket om å oppnå et høyere nivå av kodesikkerhet ved å bruke et minnesikkert språk. I følge Tor-utviklere vil minst halvparten av alle sårbarheter som overvåkes av prosjektet bli eliminert i en Rust-implementering hvis koden ikke bruker "usikre" blokker. Rust vil også gjøre det mulig å oppnå raskere utviklingshastigheter enn å bruke C, på grunn av språkets uttrykksevne og strenge garantier som gjør at du slipper å kaste bort tid på å dobbeltsjekke og skrive unødvendig kode.

Basert på resultatene av utviklingen av den første versjonen, rettferdiggjorde bruken av Rust-språket seg selv. For eksempel ble det lagt merke til at det på hvert trinn ble gjort færre feil i Rust-koden enn i sammenlignbar utvikling i C - feilene som dukket opp under utviklingsprosessen var hovedsakelig relatert til logikk og semantikk. Den overdrevent krevende rustc-kompilatoren, bemerket av noen som en ulempe, viste seg faktisk å være en velsignelse, siden hvis koden kompilerer og består testene, øker sannsynligheten for at den er korrekt.

Arbeidet med den nye varianten bekreftet også en økning i utviklingshastigheten, noe som ikke bare skyldes at funksjonaliteten ble gjenskapt basert på en eksisterende mal, men også Rusts mer uttrykksfulle semantikk, praktiske funksjonsbiblioteker og bruken av Rusts kodesikkerhet evner. En av ulempene er den store størrelsen på de resulterende sammenstillingene - siden standard Rust-biblioteket ikke leveres på systemer som standard, må det inkluderes i pakkene som tilbys for nedlasting.

1.0-utgivelsen fokuserer hovedsakelig på grunnleggende arbeid i klientrollen. I versjon 1.1 er det planlagt å implementere støtte for plug-in transport og broer for å omgå blokkering. Versjon 1.2 forventes å støtte løktjenester og relaterte funksjoner, slik som overbelastningskontrollprotokollen (RTT Congestion Control) og beskyttelse mot DDoS-angrep. Det er planlagt å oppnå paritet med C-klienten for 2.0-grenen, som også vil tilby bindinger for bruk av Arti i kode på ulike programmeringsspråk.

I løpet av de neste årene vil arbeidet fokuseres på å implementere funksjonaliteten som trengs for å kjøre reléer og katalogservere. Når Rust-koden når et nivå som fullstendig kan erstatte C-versjonen, har utviklerne til hensikt å gi Arti statusen til hovedimplementeringen av Tor og slutte å vedlikeholde C-implementeringen. C-versjonen vil fases ut gradvis for å tillate en jevn migrering.

Kilde: opennet.ru

Legg til en kommentar