Першы стабільны выпуск Arti, афіцыйнай рэалізацыі Tor на мове Rust

Распрацоўнікі ананімнай сеткі Tor сфармавалі першы стабільны выпуск (1.0.0) праекту Arti, які развівае Tor-кліент, напісаны на мове Rust. Выпуск 1.0 адзначаны як прыдатны для выкарыстання звычайнымі карыстачамі і які забяспечвае той жа ўзровень прыватнасці, юзабіліці і стабільнасці, што і асноўная рэалізацыя на мове Сі. Стабілізаваны таксама API, прапанаваны для выкарыстання функцыянальнасці Arti у іншых прыкладаннях. Код распаўсюджваецца пад ліцэнзіямі Apache 2.0 і MIT.

У адрозненне ад рэалізацыі на Сі, якая спачатку была спраектаваная як SOCKS-проксі, а ўжо потым падагнаная пад іншыя запатрабаванні, Arti першапачаткова развіваецца ў форме модульнай убудаванай бібліятэкі, якую змогуць выкарыстаць розныя прыкладанні. Акрамя таго, пры распрацоўцы новага праекту ўлічваецца ўвесь мінулы досвед распрацоўкі Tor, што дазваляе пазбегнуць вядомых архітэктурных праблем, зрабіць праект больш модульным і эфектыўным.

У якасці прычыны перапісвання Tor на Rust было жаданне дабіцца больш высокага ўзроўню абароненасці кода за кошт выкарыстання мовы, які забяспечвае бяспечную працу з памяццю. Па адзнацы распрацоўнікаў Tor, прынамсі палова ўсіх адсочваных праектам уразлівасцяў будзе выключаная ў рэалізацыі на Rust, калі ў кодзе не выкарыстоўваюцца блокі «unsafe». Rust таксама дасць магчымасць дабіцца больш высокай хуткасці распрацоўкі, чым пры выкарыстанні Сі, за кошт выразнасці мовы і строгіх гарантый, якія дазваляюць не марнаваць час на падвойныя праверкі і напісанне лішняга кода.

Па выніках распрацоўкі першай версіі выкарыстанне мовы Rust апраўдала сябе. Напрыклад, заўважана, што на кожным этапе ў кодзе на Rust здзяйснялася менш памылак, чым пры супастаўнай распрацоўцы на Сі – якія ўсплылі падчас распрацоўкі памылкі ў асноўным былі звязаныя з логікай і семантыкай. Залішняя патрабавальнасць кампілятара rustc, якая адзначаецца некаторымі як недахоп, на справе апынулася дабром, бо калі код кампілюецца і праходзіць тэсты, значна павялічваецца верагоднасць яго карэктнасці.

Пры працы над новым варыянтам таксама пацвердзілася павелічэнне хуткасці распрацоўкі, што злучана не толькі з тым, што функцыянальнасць узнаўлялася на аснове наяўнага шаблону, але і з больш выразнай семантыкай Rust, зручнымі бібліятэкамі функцый і ўжываннем магчымасцяў Rust па забеспячэнні бяспекі кода. З недахопаў вылучаецца вялікі памер выніковых зборак - бо стандартная бібліятэка Rust не пастаўляецца ў сістэмах па змаўчанні, яе даводзіцца ўключаць у прапанаваныя для загрузкі пакеты.

Выпуск 1.0 у асноўным засяроджаны на базавай працы ў ролі кліента. У версіі 1.1 плануецца рэалізаваць падтрымку падключанага транспарту і брыджаў для абыходу блакіровак. У версіі 1.2 чакаецца падтрымка onion-сэрвісаў і спадарожных магчымасцяў, такіх як пратакол кіравання перагрузкай (RTT Congestion Control) і сродкі абароны ад DDoS-нападаў. Дасягненне парытэту з кліентам на мове Сі намечана ў галінцы 2.0, у якой таксама будуць прапанаваны прывязкі для выкарыстання Arti у кодзе на розных мовах праграмавання.

На працягу наступных некалькіх гадоў праца будзе накіравана на рэалізацыю функцыянальнасці, неабходнай для працы рэлеяў і сервераў дырэкторый. Калі код на Rust дасягне ўзроўня, здольнага цалкам замяніць варыянт на Сі, распрацоўнікі маюць намер надаць Arti статут асноўнай рэалізацыі Tor і спыніць суправаджэнне рэалізацыі на Сі. Падтрымка версіі на мове Сі будзе спынена паступова з прадастаўленнем магчымасці плыўнай міграцыі.

Крыніца: opennet.ru

Дадаць каментар