Πρώτη σταθερή κυκλοφορία του Arti, η επίσημη υλοποίηση του Tor in Rust

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

Σε αντίθεση με την υλοποίηση C, η οποία αρχικά σχεδιάστηκε ως διακομιστής μεσολάβησης SOCKS και στη συνέχεια προσαρμόστηκε σε άλλες ανάγκες, το Arti αναπτύχθηκε αρχικά με τη μορφή μιας αρθρωτής ενσωματωμένης βιβλιοθήκης που μπορεί να χρησιμοποιηθεί από διάφορες εφαρμογές. Επιπλέον, κατά την ανάπτυξη ενός νέου έργου, λαμβάνεται υπόψη όλη η προηγούμενη εμπειρία ανάπτυξης Tor, η οποία αποφεύγει γνωστά αρχιτεκτονικά προβλήματα και καθιστά το έργο πιο αρθρωτό και αποτελεσματικό.

В качестве причины переписывания Tor на Rust было желание добиться более высокого уровня защищённости кода за счёт использования языка, обеспечивающего безопасную работу с памятью. По оценке разработчиков Tor, как минимум половина всех отслеживаемых проектом уязвимостей будет исключена в реализации на Rust, если в коде не используются блоки «unsafe». Rust также даст возможность добиться более высокой скорости разработки, чем при использовании Си, за счёт выразительности языка и строгих гарантий, позволяющих не тратить время на двойные проверки и написание лишнего кода.

По итогам разработки первой версии использование языка Rust оправдало себя. Например, замечено, что на каждом этапе в коде на Rust совершалось меньше ошибок, чем при сопоставимой разработке на Си — всплывшие в процессе разработки ошибки в основном были связаны с логикой и семантикой. Излишняя требовательность компилятора rustc, отмечаемая некоторыми как недостаток, на деле оказалась благом, так как если код компилируется и проходит тесты, значительно повышается вероятность его корректности.

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

Выпуск 1.0 в основном сосредоточен на базовой работе в роли клиента. В версии 1.1 планируется реализовать поддержку подключаемого транспорта и бриджей для обхода блокировок. В версии 1.2 ожидается поддержка onion-сервисов и сопутствующих возможностей, таких как протокол управления перегрузкой (RTT Congestion Control) и средства защиты от DDoS-атак. Достижение паритета с клиентом на языке Си намечено в ветке 2.0, в которой также будут предложены привязки для использования Arti в коде на различных языках программирования.

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

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο