Prva stabilna izdaja Arti, uradna implementacija Tora v Rust

Razvijalci anonimnega omrežja Tor so ustvarili prvo stabilno izdajo (1.0.0) projekta Arti, ki razvija odjemalca Tor, napisanega v Rustu. Izdaja 1.0 je označena kot primerna za uporabo splošnih uporabnikov in zagotavlja enako raven zasebnosti, uporabnosti in stabilnosti kot glavna izvedba C. Stabiliziran je bil tudi API, ponujen za uporabo funkcionalnosti Arti v drugih aplikacijah. Koda se distribuira pod licencama Apache 2.0 in MIT.

Za razliko od implementacije C, ki je bila najprej zasnovana kot SOCKS proxy in nato prilagojena drugim potrebam, je Arti prvotno razvit v obliki modularne vdelane knjižnice, ki jo lahko uporabljajo različne aplikacije. Poleg tega se pri razvoju novega projekta upoštevajo vse pretekle izkušnje pri razvoju Tor, s čimer se izognemo znanim arhitekturnim težavam in naredimo projekt bolj modularen in učinkovit.

Razlog za prepisovanje Torja v Rust je bila želja po doseganju višje stopnje varnosti kode z uporabo jezika, varnega za pomnilnik. Po mnenju razvijalcev Tor bo vsaj polovica vseh ranljivosti, ki jih spremlja projekt, odpravljena v implementaciji Rust, če koda ne uporablja "nevarnih" blokov. Rust bo prav tako omogočil doseganje hitrejših razvojnih hitrosti kot uporaba C, zaradi izraznosti jezika in strogih garancij, ki vam omogočajo, da se izognete izgubljanju časa z dvojnim preverjanjem in pisanjem nepotrebne kode.

Glede na rezultate razvoja prve različice se je uporaba jezika Rust upravičila. Na primer, opazili so, da je bilo na vsaki stopnji v kodi Rust narejenih manj napak kot pri primerljivem razvoju v C – napake, ki so se pojavile med razvojnim procesom, so bile v glavnem povezane z logiko in semantiko. Prezahteven prevajalnik rustc, ki so ga nekateri označevali kot pomanjkljivost, se je pravzaprav izkazal za blagoslov, saj se, če se koda prevede in prestane teste, verjetnost njene pravilnosti močno poveča.

Delo na novi različici je potrdilo tudi povečanje hitrosti razvoja, kar ni posledica dejstva, da je bila funkcionalnost ponovno ustvarjena na podlagi obstoječe predloge, ampak tudi Rustove bolj izrazite semantike, priročnih knjižnic funkcij in uporabe varnosti Rustove kode zmogljivosti. Ena od pomanjkljivosti je velika velikost nastalih sklopov - ker standardna knjižnica Rust ni privzeto na voljo v sistemih, jo je treba vključiti v pakete, ki so na voljo za prenos.

Izdaja 1.0 se osredotoča predvsem na osnovno delo v vlogi odjemalca. V različici 1.1 je načrtovana implementacija podpore za vtični transport in mostove za obhod blokade. Pričakuje se, da bo različica 1.2 podpirala čebulne storitve in povezane funkcije, kot sta protokol za nadzor zastojev (RTT Congestion Control) in zaščita pred napadi DDoS. Doseganje paritete z odjemalcem C je načrtovano za vejo 2.0, ki bo ponujala tudi vezave za uporabo Artija v kodi v različnih programskih jezikih.

V naslednjih nekaj letih se bo delo osredotočilo na implementacijo funkcionalnosti, potrebne za zagon relejev in imeniških strežnikov. Ko koda Rust doseže raven, ki lahko popolnoma nadomesti različico C, nameravajo razvijalci dati Artiju status glavne izvedbe Tor in prenehati vzdrževati izvedbo C. Različica C bo postopno opuščena, da se omogoči nemotena selitev.

Vir: opennet.ru

Dodaj komentar