Dezvoltatorii proiectului Tor au lansat versiunea Arti 1.4.0, o implementare a clientului Tor scrisă în limbajul Rust. Ramura 1.x este marcată ca fiind adecvată pentru utilizatorii obișnuiți și oferă același nivel de confidențialitate, utilizabilitate și stabilitate ca și implementarea principală în limbajul C. Atingerea parității cu clientul în limbajul C este planificată pentru ramura 2.0. Când codul scris în Rust va atinge un nivel capabil să înlocuiască complet varianta în C, dezvoltatorii intenționează să acorde Arti statutul de implementare principală a Tor și să înceteze gradual suportul pentru implementarea în C. Codul este distribuit sub licențele Apache 2.0 și MIT.
Arti este dezvoltat inițial sub formă de bibliotecă modulară încorporabilă, care poate fi utilizată de diverse aplicații. În proiectarea Arti a fost luată în considerare experiența anterioară de dezvoltare a Tor, ceea ce a permis evitarea problemelor arhitecturale cunoscute, asociate cu implementarea în C, care a fost inițial proiectată ca un proxy SOCKS și apoi adaptată pentru alte necesități.
În afară de modernizarea arhitecturii, motivul pentru rescrierea Tor în Rust a fost dorința de a crește securitatea codului prin folosirea unui limbaj care asigură o gestionare sigură a memoriei. Conform estimărilor dezvoltatorilor Tor, utilizarea limbajului Rust fără blocuri „unsafe” va preveni apariția a cel puțin jumătate din toate vulnerabilitățile tipice din proiect. În plus, se estimează că Rust va crește viteza de dezvoltare datorită expresivității limbajului și garanțiilor stricte, care permit economisirea timpului pentru verificări duble și scrierea de cod suplimentar.
În noua versiune, a fost finalizat un nou interface RPC, care înlocuiește protocolul de gestionare prin portul TCP, specificat prin parametrul ControlPort. RPC poate fi utilizat pentru integrarea aplicațiilor și serviciilor cu Arti fără a încorpora în aplicație o bibliotecă cu funcționalitatea Arti.
Principalele diferențe ale noului protocol:
- Utilizarea formatului JSON în locul unui format specific care necesita un parser propriu;
- Simplitatea extinderii protocolului. Formalizarea modului în care clientul și serverul trebuie să gestioneze mesajele, parametrii și datele nesuportate;
- Mecanism pentru determinarea disponibilității RPC;
- Suport pentru transmiterea simultană a mai multor cereri într-o singură conexiune de rețea;
- Existence biblioteci client gata pentru C, Python și Rust.
Din alte modificări în Arti 1.4.0, se menționează realizarea lucrărilor preliminare pentru suportul releelor și continuarea implementării capacităților de protecție a serviciilor onion împotriva atacurilor DDoS.
Sursa: opennet.ro
