Udviklerne af det anonyme netværk Tor har præsenteret projektet Arti, som arbejder på at skabe en implementering af Tor-protokollen i Rust-sprog. I modsætning til implementeringen i C, der oprindeligt blev designet som en SOCKS-proxy og først senere tilpasset andre behov, udvikles Arti fra starten som et modulært indbygget bibliotek, som forskellige applikationer kan bruge. Arbejdet har stået på i mere end et år med finansiering fra Zcash Open Major Grants (ZOMG) programmet. Koden distribueres under Apache 2.0 og MIT-licenserne.
Årsagerne til at omskrive Tor i Rust inkluderer ønsket om at opnå et højere sikkerhedsniveau i koden ved at bruge et sprog, der sikrer en sikker håndtering af hukommelsen. Ifølge vurderingen fra Tor-udviklerne vil mindst halvdelen af alle de sårbarheder, der spores af projektet, blive udelukket i implementeringen i Rust, hvis koden ikke bruger 'unsafe' blokke. Rust vil også give mulighed for en hurtigere udvikling sammenlignet med C, takket være sprogets udtryksfuldhed og strenge garantier, som gør det muligt at spare tid på dobbeltkontroller og unødvendig kode. Desuden tages al tidligere erfaring fra udviklingen af Tor i betragtning, hvilket vil hjælpe med at undgå kendte arkitektoniske problemer og gøre projektet mere modulært og effektivt.
I sin nuværende tilstand kan Arti allerede forbinde sig til Tor-netværket og sikre interaktion med servere direktorier og oprette anonymiserede forbindelser oven på Tor med en SOCKS-baseret proxy. Det anbefales ikke at bruge udviklingen i produktionssystemer, da ikke alle funktioner til at sikre fortrolighed er implementeret, og der er ingen garanti for bagudkompatibilitet på API-niveau. Den første version af klienten, der opfylder sikkerhedskriterierne og understøtter overvågningsknuder og isolering af strømme, forventes at blive udgivet i oktober.
I marts 2022 forventes den første betaudgave med en eksperimentel implementering af den indbyggede bibliotek og ydeevneoptimeringer. Den første stabile udgave, med et stabilt API, CLI og konfigurationsformat, samt en audit, er planlagt til midten af september 2022. Denne udgave vil være egnet til grundlæggende brug af almindelige brugere. I slutningen af oktober 2022 forventes opdatering 1.1 med support til tilsluttede transportformer og broer for at omgå blokeringer. Support til onion-tjenester er planlagt til udgave 1.2, mens opnåelse af paritet med klienten skrevet i C er forventet i udgave 2.0, hvis tidsrammer endnu ikke er defineret.
Fremover forudser udviklerne en gradvis reduktion i aktiviteten relateret til C-kodeudvikling og en stigning i den tid, der bruges på redigering i Rust. Når implementeringen i Rust når et niveau, der kan erstatte C-versionen, vil udviklerne stoppe med at tilføje nye funktioner til C-implementeringen og efterhånden helt stoppe dens support. Men det vil ikke ske snart, og indtil Rust-implementeringen når et niveau af fuld erstatning, vil udviklingen af klienten og Tor-relæerne i C fortsætte.
Kilde: opennet.ru
