Първото стабилно издание на Arti, официалната реализация на Tor на езика Rust.

Разработчиците на анонимната мрежа Tor обявиха първото стабилно издание (1.0.0) на проекта Arti, който развива Tor-клиент, написан на езика Rust. Издание 1.0 е обявено за подходящо за използване от обикновени потребители и осигурява същото ниво на конфиденциалност, удобство и стабилност, както основната имплементация на езика C. Стабилизирано е и API-то, предлагано за използване на функционалността на Arti в други приложения. Кодът се разпространява под лицензиите Apache 2.0 и MIT.

В отличие от имплементацията на C, която първоначално беше проектирана като SOCKS-прокси и по-късно се адаптира за други нужди, Arti първоначално се развива под формата на модулна вградена библиотека, която различни приложения могат да използват. Освен това, при разработката на новия проект се взима предвид целият предишен опит от разработката на Tor, което позволява избягването на известни архитектурни проблеми и прави проекта по-модулен и ефективен.

Причината за пренаписването на Tor на Rust е желанието да се постигне по-високо ниво на защита на кода чрез използването на език, който осигурява безопасна работа с паметта. Според оценките на разработчиците на Tor, поне половината от всички уязвимости, следени от проекта, ще бъдат изключени в имплементацията на Rust, ако в кода не се използват блокове 'unsafe'. Rust също така ще позволи постигане на по-висока скорост на разработка, отколкото при използването на C, благодарение на изразителността на езика и строгите гаранции, които предотвратяват необходимостта от двойни проверки и писане на излишен код.

След разработката на първата версия използването на езика Rust се оправда. Например, наблюдава се, че по всяко време в кода на Rust е имало по-малко грешки, отколкото при сравнима разработка на C — възникналите в процеса на разработка грешки предимно бяха свързани с логиката и семантиката. Излишната взискателност на компилатора rustc, която някои отбелязват като недостатък, всъщност се оказа благословия, тъй като когато кодът се компилира и преминава тестовете, значително се увеличава вероятността му да е коректен.

При разработването на новата версия също така се потвърди увеличаването на скоростта на разработка, свързано не само с това, че функционалността се възпроизвежда на базата на съществуващ шаблон, но и с по-изразителната семантика на Rust, удобните библиотеки за функции и използването на възможностите на Rust за осигуряване на безопасност на кода. Недостатъкът е големият размер на резултиращите пакети — тъй като стандартната библиотека на Rust не се предоставя по подразбиране в системите, тя трябва да бъде включена в предлаганите за изтегляне пакети.

Версия 1.0 е основно фокусирана върху основната работа в ролята на клиент. В версия 1.1 се планира реализиране на поддръжка на свързан транспорт и мостове за заобикаляне на блокировки. В версия 1.2 се очаква поддръжка на onion услуги и свързани функции, като контрол на забавяне при товарене (RTT Congestion Control) и средства за защита от DDoS атаки. Достигането на паритет с клиента на C е планирано за версия 2.0, в която също така ще бъдат предложени свързвания за използване на Arti в код на различни програмни езици.

През следващите няколко години работата ще бъде насочена към реализиране на функционалността, необходима за работата на релейте и сървъри директориите. Когато кодът на Rust достигне ниво, способно напълно да замени версията на C, разработчиците планират да придадат на Arti статуса на основна реализация на Tor и да прекратят поддръжката на версията на C. Поддръжката на версията на C ще бъде постепенно преустановена, със спомагане на плавна миграция.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster