Разработчиците на анонимната мрежа Tor представиха версия Arti 0.2.0, която развива 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.2.0 са свързани с работата по повишаване на производителността и надеждността. Подобрена е работата в мрежи, поддържащи само IPv6. Намалено е потреблението на памет за съхранение на данни от сървъри директории. Добавена е опция dns_port, с помощта на която може да се настрои изпращането на DNS-запитвания през Tor. Предложен е нов код за работа с конфигурацията. Добавени са API за определяне на правила за изолация на потоци и включване на спящ режим (прекъсване на работа за неактивни клиенти). Осигурена е възможност за свързване на алтернативни реализации на кода за работа с сървъри директории.
До публикуването на версия 1.0.0 разработчиците възнамеряват да осигурят в Arti пълна поддръжка за работа в ролята на Tor клиент, който предоставя достъп до интернет (реализацията на поддръжка на onion-сервизи е отложена за бъдеще). Включително се планира да бъде постигнат паритет с основната реализация на езика C в области като мрежова производителност, натоварване на CPU и надеждност, както и да бъде осигурена поддръжка на всички възможности, свързани със сигурността.
Източник: opennet.ru
