Unua stabila eldono de Arti, la oficiala efektivigo de Tor en Rust

La programistoj de la anonima Tor-reto kreis la unuan stabilan eldonon (1.0.0) de la Arti-projekto, kiu disvolvas Tor-klienton skribitan en Rust. La eldono 1.0 estas markita kiel taŭga por uzo de ĝeneralaj uzantoj kaj provizas la saman nivelon de privateco, uzeblo kaj stabileco kiel la ĉefa C-efektivigo. La API ofertita por uzi Arti-funkciecon en aliaj aplikoj ankaŭ estis stabiligita. La kodo estas distribuita sub la licencoj Apache 2.0 kaj MIT.

Male al la C-efektivigo, kiu unue estis dizajnita kiel SOCKS-prokurilo kaj tiam adaptita al aliaj bezonoj, Arti estas komence evoluigita en la formo de modula enkonstruebla biblioteko kiu povas esti uzita per diversaj aplikoj. Krome, dum disvolvado de nova projekto, la tuta pasinta Tor-disvolva sperto estas konsiderata, kio evitas konatajn arkitekturajn problemojn kaj faras la projekton pli modula kaj efika.

La kialo por reverki Tor en Rust estis la deziro atingi pli altan nivelon de koda sekureco uzante memor-sekuran lingvon. Laŭ Tor-programistoj, almenaŭ duono de ĉiuj vundeblecoj monitoritaj de la projekto estos forigita en Rust-efektivigo se la kodo ne uzas "nesekurajn" blokojn. Rust ankaŭ ebligos atingi pli rapidajn disvolvajn rapidojn ol uzi C, pro la esprimkapablo de la lingvo kaj striktaj garantioj, kiuj ebligas eviti malŝparon de tempo pro duobla kontrolo kaj skribo de nenecesa kodo.

Surbaze de la rezultoj de la evoluo de la unua versio, la uzo de la Rust-lingvo pravigis sin. Ekzemple, oni rimarkis, ke en ĉiu etapo, malpli da eraroj estis faritaj en la Rust-kodo ol en komparebla evoluo en C - la eraroj kiuj aperis dum la evoluprocezo estis ĉefe rilataj al logiko kaj semantiko. La tro postulema rustc-kompililo, notita de iuj kiel malavantaĝo, efektive montriĝis esti beno, ĉar se la kodo kompilas kaj trapasas la testojn, la verŝajneco de ĝia korekteco signife pliiĝas.

Labori pri la nova varianto ankaŭ konfirmis pliiĝon de disvolva rapideco, kio ŝuldiĝas ne nur al tio, ke funkcieco estis rekreita surbaze de ekzistanta ŝablono, sed ankaŭ al pli esprimplena semantiko de Rust, oportunaj funkcibibliotekoj kaj la uzo de la koda sekureco de Rust. kapabloj. Unu el la malavantaĝoj estas la granda grandeco de la rezultaj asembleoj - ĉar la norma Rust-biblioteko ne estas provizita en sistemoj defaŭlte, ĝi devas esti inkluzivita en la pakaĵoj ofertitaj por elŝuto.

La 1.0 eldono ĉefe temigas bazan laboron en la klienta rolo. En versio 1.1 estas planite efektivigi subtenon por kromtransporto kaj pontoj por preteriri blokadon. Versio 1.2 estas atendita subteni cepservojn kaj rilatajn funkciojn, kiel ekzemple la protokolo pri obstrukciĝokontrolo (RTT Congestion Control) kaj protekto kontraŭ DDoS-atakoj. Atingo de egaleco kun la C-kliento estas planita por la branĉo 2.0, kiu ankaŭ proponos ligojn por uzi Arti en kodo en diversaj programlingvoj.

Dum la venontaj kelkaj jaroj, laboro fokusiĝos al efektivigo de la funkcieco necesa por ruli relajsojn kaj dosierujojn. Kiam la Rust-kodo atingas nivelon, kiu povas tute anstataŭigi la C-version, la programistoj intencas doni al Arti la statuson de la ĉefa efektivigo de Tor kaj ĉesi konservi la C-efektivigon. La C-versio estos forigita iom post iom por permesi glatan migradon.

fonto: opennet.ru

Aldoni komenton