Разработчиците на анонимната мрежа Tor представиха проекта Arti, в рамките на който се работи по създаването на реализация на протокола Tor на езика Rust. В отличие от реализацията на C, която първоначално беше проектирана като SOCKS прокси и след това адаптирана за други нужди, Arti първоначално се развива под формата на модулна вградена библиотека, която различни приложения ще могат да използват. Работата продължава вече повече от година с финансиране по програмата за грантове Zcash Open Major Grants (ZOMG). Кодът се разпространява под лицензиите Apache 2.0 и MIT.
Като основна причина за презаписването на Tor на Rust се посочва желанието да се постигне по-високо ниво на безопасност на кода, благодарение на използването на език, който осигурява безопасна работа с паметта. Според оценката на разработчиците на Tor, поне половината от всички уязвимости, следени от проекта, ще бъдат изключени в реализацията на Rust, ако в кода не се използват блокове «unsafe». Rust също така ще даде възможност за постигане на по-висока скорост на разработка, в сравнение с C, благодарение на изразителността на езика и строгите гаранции, които позволяват да не се губи време за двойни проверки и писане на излишен код. Освен това, при разработката на новия проект се взима предвид целият предишен опит при разработването на Tor, което ще позволи да се избегнат известни архитектурни проблеми и да се направи проектът по-модулен и ефективен.
В текущото си състояние Arti вече може да се свързва с мрежата Tor, осигурявайки взаимодействие с сървъри директории и да създава анонимизирани връзки над Tor с предоставяне на прокси на базата на протокола SOCKS. Разработването в момента не се препоръчва за използване в работни системи, тъй като не са реализирани всички възможности за осигуряване на поверителност и не се гарантира обратно съвместимост на ниво API. Първата версия на клиента, отговаряща на критериите за безопасност, поддържаща хранителни възли и изолация на потоци, се планира да излезе през октомври.
През март 2022 година се очаква първото бета издание с експериментална реализация на вградена библиотека и оптимизации на производителността. Първото стабилно издание с устойчив API, CLI и конфигурационен формат, както и с проведен одит, е планирано за средата на септември 2022 година. Това издание ще бъде подходящо за начално използване от обикновени потребители. В края на октомври 2022 година се очаква обновление 1.1 с поддръжка на включваем транспорт и мостове за заобикаляне на блокировки. Поддръжката на onion услуги е планирана за версия 1.2, а постигането на паритет с клиента на C се очаква в версия 2.0, сроковете за които все още не са определени.
В бъдеще разработчиците предвиждат постепенно намаляване на активността, свързана с програмирането на C, и увеличаване на времето, отделяно за редакция на Rust. Когато реализацията на Rust достигне ниво, способно да замени варианта на C, разработчиците ще спрат добавянето на нови възможности в C версията и след известен период напълно ще прекратят нейната поддръжка. Но това няма да стане скоро и докато реализацията на Rust не достигне нивото на пълноценна замяна, разработката на клиента и релея Tor на C ще продължи.
Източник: opennet.ru
