Udviklerne af det anonyme netværk Tor har præsenteret udgivelsen af Arti 0.0.3, som udvikler Tor-klienten skrevet i Rust. Projektet har status som eksperimentel udvikling, halter bagud i funktionalitet sammenlignet med hovedklienten Tor skrevet i C, og er endnu ikke klar til at erstatte den fuldt ud. I marts forventes udgivelsen af 0.1.0, som bliver den første beta-release af projektet, og til efteråret udgivelsen af 1.0 med stabilisering af API, CLI og indstillinger, der vil være egnet til begyndende brug af almindelige brugere. I en mere fjern fremtid, når koden i Rust når et niveau, der fuldt ud kan erstatte C-versionen, har udviklerne til hensigt at give Arti status som hovedimplementering af Tor og stoppe vedligeholdelsen af C-implementeringen.
I modsætning til implementeringen på C, som først blev designet som en SOCKS-proxy, og derefter tilpasset til andre behov, udvikles Arti oprindeligt som et modulært indbyggeligt bibliotek, som forskellige applikationer kan anvende. Derudover tages der ved udviklingen af det nye projekt hensyn til al tidligere erfaring med udviklingen af Tor, hvilket vil undgå kendte arkitektoniske problemer og gøre projektet mere modulært og effektivt. Koden distribueres under licenserne Apache 2.0 og MIT.
Som årsager til at skrive Tor om på Rust nævnes ønsket om at opnå et højere niveau af kodebeskyttelse ved at bruge et sprog, der sikrer sikker hukommelseshåndtering. Ifølge Tor-udviklerne vil mindst halvdelen af alle sårbarheder, der er registreret af projektet, blive udelukket i implementeringen på Rust, hvis der ikke anvendes 'unsafe'-blokke i koden. Rust vil også muliggøre en højere udviklingshastighed end ved brug af C, takket være sprogets udtryksfuldhed og strenge garantier, der gør det muligt at undgå tidsspilde på dobbelttjek og unødvendig kode.
Blandt ændringerne i version 0.0.3 er der en komplet revision af konfigurationssystemet og det tilhørende API. Ændringen gør det muligt at ændre indstillinger fra Rust on-the-fly under Tor-klientens drift. Der er også tilføjet et nyt system til præemptiv opbygning af forbindelser, der tager højde for tidligere anvendte porte til præemptiv opbygning af de forbindelser, der sandsynligvis vil være nødvendige i fremtiden.
Kilde: opennet.ru
