Prima versiune stabilă a Arti, implementarea oficială a Tor în limbajul Rust

Dezvoltatorii rețelei anonime Tor au lansat prima versiune stabilă (1.0.0) a proiectului Arti, care dezvoltă un client Tor scris în limbajul Rust. Versiunea 1.0 este marcată ca fiind potrivită pentru utilizatorii obișnuiți și oferă același nivel de confidențialitate, ușurință în utilizare și stabilitate ca și implementarea principală în limbajul C. De asemenea, a fost stabilizat API-ul propus pentru utilizarea funcționalității Arti în alte aplicații. Codul este distribuit sub licențele Apache 2.0 și MIT.

Spre deosebire de implementarea în C, care a fost inițial proiectată ca un proxy SOCKS și apoi ajustată pentru alte nevoi, Arti se dezvoltă inițial sub forma unei biblioteci modulare încorporabile, care va putea fi utilizată de diverse aplicații. În plus, la dezvoltarea acestui nou proiect se ia în considerare toată experiența anterioară în dezvoltarea Tor, ceea ce permite evitarea problemelor arhitecturale cunoscute și face proiectul mai modular și mai eficient.

Motivul pentru rescrierea Tor în Rust a fost dorința de a atinge un nivel mai ridicat de securitate a codului prin utilizarea unui limbaj care asigură o gestionare sigură a memoriei. Potrivit estimărilor dezvoltatorilor Tor, cel puțin jumătate din toate vulnerabilitățile urmărite de proiect vor fi excluse în implementarea în Rust, dacă în cod nu sunt utilizate blocuri 'unsafe'. Rust va permite de asemenea realizarea unei viteze mai mari de dezvoltare decât utilizarea limbajului C, datorită expresivității limbajului și a garanțiilor stricte, care permit evitarea verificărilor duble și a scrierii codului inutil.

În urma dezvoltării primei versiuni, utilizarea limbajului Rust s-a dovedit a fi justificată. De exemplu, s-a observat că, în fiecare etapă, codul în Rust a avut mai puține erori decât în dezvoltarea comparabilă în C — erorile apărute în timpul dezvoltării au fost în principal legate de logică și semantica. Exigența excesivă a compilatorului rustc, considerată de unii ca un dezavantaj, s-a dovedit de fapt a fi un avantaj, deoarece, dacă codul se compilează și trece testele, probabilitatea de corectitudine crește semnificativ.

De asemenea, lucrul la noua variantă a confirmat creșterea vitezei de dezvoltare, ceea ce se leagă nu doar de faptul că funcționalitatea a fost recreată pe baza unui model existent, ci și de semantica mai expresivă a Rust, bibliotecile funcționale convenabile și utilizarea caracteristicilor Rust pentru asigurarea securității codului. Din neajunsuri se remarcă dimensiunea mare a pachetelor rezultate — deoarece biblioteca standard Rust nu este inclusă în sistemele în mod implicit, aceasta trebuie inclusă în pachetele oferite pentru descărcare.

Versiunea 1.0 este în principal concentrată pe funcționarea de bază ca și client. În versiunea 1.1 se preconizează implementarea suportului pentru transporturi conectabile și bridge-uri pentru a ocoli blocajele. În versiunea 1.2 se așteaptă suport pentru servicii onion și funcționalități conexe, cum ar fi protocolul de control al congestiei (RTT Congestion Control) și măsuri de apărare împotriva atacurilor DDoS. Obținerea parității cu clientul în limbajul C este prevăzută pentru ramura 2.0, care va oferi de asemenea legături pentru utilizarea Arti în cod în diverse limbaje de programare.

În următorii câțiva ani, munca se va concentra pe implementarea funcționalităților necesare pentru operarea releelor și servere directorii. Când codul în Rust va atinge un nivel capabil să înlocuiască complet variantul în C, dezvoltatorii intenționează să acorde lui Arti statutul de implementare principală a Tor și să înceteze întreținerea implementării în C. Suportul pentru versiunea în limbajul C va fi oprit treptat, oferind posibilitatea unei migrații line.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster