Arti-ի առաջին կայուն թողարկումը՝ Tor-ի պաշտոնական իրականացումը Rust-ում

Անանուն Tor ցանցի մշակողները ստեղծել են Arti նախագծի առաջին կայուն թողարկումը (1.0.0), որը մշակում է Rust-ով գրված Tor-հաճախորդ: 1.0 թողարկումը պիտակավորված է որպես օգտագործվող ընդհանուր օգտագործողների կողմից և ապահովում է գաղտնիության, օգտագործման և կայունության նույն մակարդակը, ինչ հիմնական C-ի ներդրումը: Արթի ֆունկցիոնալությունը այլ հավելվածներում օգտագործելու համար առաջարկվող API-ն նույնպես կայունացվել է: Կոդը տարածվում է Apache 2.0 և MIT լիցենզիաների ներքո:

Ի տարբերություն C-ի ներդրման, որը սկզբում նախագծվել է որպես SOCKS պրոքսի, այնուհետև հարմարեցվել է այլ կարիքներին, Arti-ն ի սկզբանե մշակվել է մոդուլային ներկառուցվող գրադարանի տեսքով, որը կարող է օգտագործվել տարբեր հավելվածների կողմից: Բացի այդ, նոր նախագիծ մշակելիս հաշվի է առնվում Tor-ի ստեղծման ողջ փորձը, ինչը խուսափում է հայտնի ճարտարապետական ​​խնդիրներից և նախագիծը դարձնում ավելի մոդուլային և արդյունավետ:

Rust-ում Tor-ը վերաշարադրելու պատճառը հիշողության համար անվտանգ լեզու օգտագործելու միջոցով կոդի անվտանգության ավելի բարձր մակարդակի հասնելու ցանկությունն էր: Ըստ Tor-ի մշակողների, նախագծի կողմից վերահսկվող բոլոր խոցելիությունների առնվազն կեսը կվերացվեն Rust-ի ներդրման ժամանակ, եթե կոդը չօգտագործի «անապահով» բլոկներ: Rust-ը նաև հնարավորություն կտա հասնել ավելի արագ զարգացման արագությունների, քան C-ն օգտագործելը, շնորհիվ լեզվի արտահայտիչության և խիստ երաշխիքների, որոնք թույլ են տալիս ժամանակ չկորցնել կրկնակի ստուգման և ավելորդ կոդ գրելու վրա:

Առաջին տարբերակի մշակման արդյունքների հիման վրա Rust լեզվի օգտագործումն իրեն արդարացրեց։ Օրինակ, նշվեց, որ յուրաքանչյուր փուլում ավելի քիչ սխալներ են թույլ տրվել Rust կոդում, քան C-ում համադրելի մշակման ժամանակ. մշակման գործընթացում ի հայտ եկած սխալները հիմնականում կապված էին տրամաբանության և իմաստաբանության հետ: Չափազանց պահանջկոտ rustc կոմպիլյատորը, որը ոմանք նշում են որպես թերություն, իրականում օրհնություն է ստացվել, քանի որ եթե ծածկագիրը կազմի և անցնի թեստերը, դրա ճիշտ լինելու հավանականությունը զգալիորեն մեծանում է:

Նոր տարբերակի վրա աշխատելը նաև հաստատեց զարգացման արագության աճը, ինչը պայմանավորված է ոչ միայն այն փաստով, որ ֆունկցիոնալությունը վերստեղծվել է գոյություն ունեցող ձևանմուշի հիման վրա, այլև Rust-ի ավելի արտահայտիչ իմաստաբանությամբ, հարմար գործառույթների գրադարաններով և Rust-ի կոդերի անվտանգության կիրառմամբ։ կարողությունները։ Թերություններից մեկը ստացված հավաքների մեծ չափերն են. քանի որ ստանդարտ Rust գրադարանը լռելյայնորեն չի մատակարարվում համակարգերում, այն պետք է ներառվի ներբեռնման համար առաջարկվող փաթեթներում:

1.0 թողարկումը հիմնականում կենտրոնանում է հաճախորդի դերում հիմնական աշխատանքի վրա: 1.1 տարբերակում նախատեսվում է ներդնել օժանդակություն plug-in տրանսպորտի և արգելափակման շրջանցման կամուրջների համար: Ակնկալվում է, որ 1.2 տարբերակը կաջակցի սոխի ծառայություններին և հարակից գործառույթներին, ինչպիսիք են գերբնակվածության վերահսկման արձանագրությունը (RTT Congestion Control) և պաշտպանությունը DDoS հարձակումներից: C հաճախորդի հետ հավասարության հասնելը նախատեսվում է 2.0 մասնաճյուղի համար, որը նաև կառաջարկի կապեր Arti-ի կոդով տարբեր ծրագրավորման լեզուներով օգտագործելու համար:

Առաջիկա մի քանի տարիների ընթացքում աշխատանքը կկենտրոնանա ռելեների և գրացուցակի սերվերների գործարկման համար անհրաժեշտ ֆունկցիոնալության իրականացման վրա: Երբ Rust կոդը հասնում է մի մակարդակի, որը կարող է ամբողջությամբ փոխարինել C տարբերակը, ծրագրավորողները մտադիր են Arti-ին տալ Tor-ի հիմնական իրականացման կարգավիճակը և դադարեցնել C-ի իրականացումը: C տարբերակն աստիճանաբար կհեռացվի՝ սահուն միգրացիայի համար:

Source: opennet.ru

Добавить комментарий