Първото стабилно издание на Arti, официалната реализация на Tor на Rust

Разработчиците на анонимната мрежа Tor създадоха първото стабилно издание (1.0.0) на проекта Arti, разработващ Tor-клиент, написан на Rust. Версия 1.0 е обозначена като готова за използване от обикновени потребители и осигурява същото ниво на конфиденциалност, удобство и стабилност, каквото и основната реализация на C. Стабилизиран е и API, предложен за използване на функционалността на Arti в други приложения. Кодът е разпространен под лицензиите Apache 2.0 и MIT.

За разлика от реализацията на C, която първоначално е проектирана като SOCKS-прокси и след това адаптирана за други нужди, Arti първоначално се развива като модулна вградима библиотека, която могат да използват различни приложения. Освен това, при разработката на новия проект се взема предвид целият предишен опит от разработката на Tor, което позволява да се избегнат известни архитектурни проблеми и да се направи проектът по-модулен и ефективен.

Като причина за пренаписването на Tor на Rust е желанието да се постигне по-високо ниво на защита на кода чрез използването на език, осигуряващ безопасна работа с паметта. Според оценките на разработчиците на Tor, поне половината от всички уязвимости, проследявани от проекта, ще бъдат изключени в реализацията на Rust, при условие че в кода не се използват блокове „unsafe“. Rust също така ще позволи по-висока скорост на разработка в сравнение с C, благодарение на изразителността на езика и строгите гаранции, които позволяват да не се губи време за двойни проверки и писане на излишен код.

След разработката на първата версия, използването на езика Rust се оправда. Например, забелязано е, че на всяка стъпка в кода на Rust се допускат по-малко грешки в сравнение с сходно разработване на C — възникналите при разработката грешки основно са свързани с логиката и семантиката. Прекомерната изисквателност на компилатора rustc, подчертаваща се от някои като недостатък, всъщност се оказа благословия, тъй като ако кодът компилира и преминава тестовете, вероятността за коректност значително се увеличава.

При работата по новата версия беше потвърдено увеличаването на скоростта на разработка, което се дължи не само на факта, че функционалността беше пресъздадена на базата на съществуващ шаблон, но и на по-изразителната семантика на Rust, удобните библиотеки с функции и прилагането на възможностите на Rust за осигуряване на сигурността на кода. Сред недостатъците се откроява голямото размер на резултатните билдове — тъй като стандартната библиотека на Rust не се предлага по подразбиране в системите, тя трябва да бъде включена в предлаганите за изтегляне пакети.

Версия 1.0 е основно фокусирана върху основната работа в ролята на клиент. В версия 1.1 е планирано да се реализира поддръжка на подвижен транспорт и мостове за заобикаляне на блокировки. В версия 1.2 се очаква поддръжка на onion услуги и съпътстващи възможности, като протокол за управление на задръстванията (RTT Congestion Control) и средства за защита от DDoS атаки. Постигането на паритет с клиента на езика C е планирано в версия 2.0, която също ще предложи свързвания за използване на Arti в код на различни програмни езици.

През следващите няколко години работата ще бъде насочена към внедряване на функционалността, необходима за работата на релейките и сървъри директориите. Когато кодът на Rust достигне ниво, способно напълно да замени варианта на C, разработчиците имат намерение да придадат на Arti статус на основна реализация на Tor и да прекратят поддръжката на реализацията на C. Поддръжката на версията на езика C ще бъде постепенно прекратена с предоставяне на възможност за плавна миграция.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster