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