Unang matatag na paglabas ng Arti, ang opisyal na pagpapatupad ng Tor sa Rust

Ang mga developer ng hindi kilalang Tor network ay lumikha ng unang stable na release (1.0.0) ng Arti project, na bumuo ng Tor client na nakasulat sa Rust. Ang 1.0 release ay minarkahan bilang angkop para sa paggamit ng mga pangkalahatang user at nagbibigay ng parehong antas ng privacy, kakayahang magamit, at katatagan bilang pangunahing pagpapatupad ng C. Na-stabilize din ang API na inaalok para sa paggamit ng arti functionality sa ibang mga application. Ang code ay ipinamahagi sa ilalim ng mga lisensya ng Apache 2.0 at MIT.

Hindi tulad ng pagpapatupad ng C, na unang idinisenyo bilang isang SOCKS proxy at pagkatapos ay iniakma sa iba pang mga pangangailangan, ang Arti ay unang binuo sa anyo ng isang modular embeddable library na maaaring magamit ng iba't ibang mga application. Bilang karagdagan, kapag bumubuo ng isang bagong proyekto, ang lahat ng nakaraang karanasan sa pagbuo ng Tor ay isinasaalang-alang, na nag-iwas sa mga kilalang problema sa arkitektura at ginagawang mas modular at mahusay ang proyekto.

Ang dahilan ng muling pagsulat ng Tor sa Rust ay ang pagnanais na makamit ang mas mataas na antas ng seguridad ng code sa pamamagitan ng paggamit ng isang memory-safe na wika. Ayon sa mga developer ng Tor, hindi bababa sa kalahati ng lahat ng mga kahinaan na sinusubaybayan ng proyekto ay aalisin sa isang pagpapatupad ng Rust kung ang code ay hindi gumagamit ng "hindi ligtas" na mga bloke. Gagawin din ng kalawang na posible na makamit ang mas mabilis na bilis ng pag-unlad kaysa sa paggamit ng C, dahil sa pagpapahayag ng wika at mahigpit na mga garantiya na nagbibigay-daan sa iyo upang maiwasan ang pag-aaksaya ng oras sa pag-double check at pagsulat ng hindi kinakailangang code.

Batay sa mga resulta ng pagbuo ng unang bersyon, ang paggamit ng Rust na wika ay nabigyang-katwiran mismo. Halimbawa, napansin na sa bawat yugto, mas kaunting mga error ang ginawa sa Rust code kaysa sa maihahambing na pag-unlad sa C - ang mga error na lumitaw sa proseso ng pag-unlad ay pangunahing nauugnay sa lohika at semantika. Ang labis na hinihingi na rustc compiler, na binanggit ng ilan bilang isang kawalan, ay talagang naging isang pagpapala, dahil kung ang code ay nag-compile at pumasa sa mga pagsubok, ang posibilidad ng pagiging tama nito ay tumataas nang malaki.

Ang pagtatrabaho sa bagong variant ay nakumpirma rin ang pagtaas ng bilis ng pag-unlad, na dahil hindi lamang sa katotohanan na ang pag-andar ay muling nilikha batay sa isang umiiral na template, kundi pati na rin sa mas makahulugang semantika ni Rust, maginhawang mga library ng function, at ang paggamit ng seguridad ng code ng Rust mga kakayahan. Ang isa sa mga kawalan ay ang malaking sukat ng mga nagresultang pagtitipon - dahil ang karaniwang Rust library ay hindi ibinibigay sa mga system bilang default, dapat itong isama sa mga pakete na inaalok para sa pag-download.

Ang 1.0 release ay pangunahing nakatuon sa pangunahing gawain sa tungkulin ng kliyente. Sa bersyon 1.1 ito ay pinlano na ipatupad ang suporta para sa plug-in na transportasyon at mga tulay upang i-bypass ang pagharang. Inaasahang susuportahan ng Bersyon 1.2 ang mga serbisyo ng sibuyas at mga nauugnay na feature, gaya ng congestion control protocol (RTT Congestion Control) at proteksyon laban sa mga pag-atake ng DDoS. Ang pagkamit ng pagkakapantay-pantay sa C client ay pinlano para sa 2.0 branch, na mag-aalok din ng mga binding para sa paggamit ng Arti sa code sa iba't ibang programming language.

Sa susunod na ilang taon, tututuon ang trabaho sa pagpapatupad ng functionality na kailangan para magpatakbo ng mga relay at directory server. Kapag ang Rust code ay umabot sa isang antas na maaaring ganap na palitan ang C na bersyon, ang mga developer ay naglalayon na bigyan Arti ang katayuan ng pangunahing pagpapatupad ng Tor at ihinto ang pagpapanatili ng C pagpapatupad. Ang C na bersyon ay unti-unting mawawala upang payagan ang isang maayos na paglipat.

Pinagmulan: opennet.ru

Magdagdag ng komento