Разработчиците на анонимената мрежа Tor представиха първия бета релиз (0.1.0) на проекта Arti, който развива Tor клиент, написан на езика Rust. Проектът има статус на експериментално развитие, отстъпва по функционалност на основния Tor клиент, написан на C, и в момента не е готов напълно да го замени. През септември се планира да бъде формулиран релиз 1.0 с стабилизиране на API, CLI и настройки, който ще бъде подходящ за първоначално използване от обикновени потребители. В по-далечното бъдеще, когато кодът на Rust достигне ниво, способно напълно да замести версията на C, разработчиците имат намерение да придадат на Arti статус на основна реализация на Tor и да прекратят поддръжката на версията на C.
В отличие от реализацията на C, която първоначално беше проектирана като SOCKS прокси и след това адаптирана към други нужди, Arti първоначално се развива като модулна вградима библиотека, която различни приложения ще могат да използват. Освен това, при разработката на новия проект се взема под внимание целият предишен опит от разработката на Tor, което ще помогне да се избегнат известни архитектурни проблеми, правейки проекта по-модулен и ефективен. Кодът се разпространява под лицензите Apache 2.0 и MIT.
Като основна причина за преписването на Tor на Rust се посочва желанието да се постигне по-високо ниво на защитеност на кода чрез използването на език, който осигурява безопасна работа с паметта. Според оценките на разработчиците на Tor, поне половината от всички уязвимости, проследявани от проекта, ще бъдат изключени в реализацията на Rust, ако в кода не се използват блокове „unsafe“. Rust също така ще позволи постигането на по-висока скорост на разработка, отколкото при използването на C, благодарение на изразителността на езика и строгите гаранции, които позволяват да не се губи време за двойни проверки и написване на излишен код.
От измененията в релиза 0.1.0 се отбелязва основната стабилизация на високой ниво API и довеждането на библиотеката до готовност за експериментална интеграция с други проекти. Сред промените се споменава добавянето на API за създаване на инстанции TorClient, включително с възможност за компилиране и инициализация (bootstrap) във фонен режим при първото използване. Освен това, добавен е нов високой ниво API за обработка на грешки.
До публикуването на версия 1.0.0 разработчиците възнамеряват да осигурят в Arti пълна поддръжка за работа в ролята на Tor клиент, който предоставя достъп до интернет (реализацията на поддръжка на onion-сервизи е отложена за бъдеще). Включително се планира да бъде постигнат паритет с основната реализация на езика C в области като мрежова производителност, натоварване на CPU и надеждност, както и да бъде осигурена поддръжка на всички възможности, свързани със сигурността.
Източник: opennet.ru
