Първо стабилно издание на 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, ако кодът не използва „опасни“ блокове. 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

Добавяне на нов коментар