Разработчиците на анонимната мрежа Tor публикуваха версия Arti 1.1.0, развиваща Tor-клиент, написан на Rust. Клонът 1.x е обозначен като подходящ за използване от обикновени потребители и осигурява същото ниво на конфиденциалност, удобство за ползване и стабилност, както основната реализация на C. Кодът се разпространява под лицензите Apache 2.0 и MIT.
За разлика от реализацията на C, която първоначално е проектирана като SOCKS-прокси и след това адаптирана за други нужди, Arti първоначално се развива като модулна вградима библиотека, която могат да използват различни приложения. Освен това, при разработката на новия проект се взема предвид целият предишен опит от разработката на Tor, което позволява да се избегнат известни архитектурни проблеми и да се направи проектът по-модулен и ефективен.
Като причина за пренаписването на Tor на Rust се споменава желанието да се постигне по-високо ниво на защита на кода, чрез използването на език, осигуряващ безопасна работа с паметта. Според оценката на разработчиците на Tor, поне половината от всички уязвимости, проследявани от проекта, ще бъдат изключени в реализацията на Rust, ако в кода не се използват блокове „unsafe“. Rust също така ще предостави възможност за постигане на по-висока скорост на разработка в сравнение с C, благодарение на изразителността на езика и строгите гаранции, които позволяват да не се губи време за двойни проверки и написването на излишен код.
В версия 1.1 е реализирана поддръжка за мостове за заобикаляне на блокировки и добавяне на транспорт. От тестваните с Arti транспортни средства за скриване на трафика и борба с блокировките, се отк突ват obfs4proxy и snowflake. Увеличени са изискванията към средата за компилация — сега е необходима поне версия 1.60 на Rust за компилиране на Arti.
В следващата версия (1.2) се очаква да се появи поддръжка на onion-сервиси и свързани функции, като управление на натоварването (RTT Congestion Control) и средства за защита от DDoS-атаки. Постигането на паритет с клиента на C е предвидено за версия 2.0, в която ще бъдат предложени и връзки за използване на Arti в код на различни програмни езици. През следващите няколко години работата ще бъде насочена към реализиране на функционалността, необходима за работа на релей. сървъри директориите. Когато кодът на Rust достигне ниво, способно напълно да замени варианта на C, разработчиците имат намерение да придадат на Arti статус на основна реализация на Tor и да прекратят поддръжката на реализацията на C. Поддръжката на версията на езика C ще бъде постепенно прекратена с предоставяне на възможност за плавна миграция.
Източник: opennet.ru
