Выпуск Arti 1.1, официальной реализации Tor на языке Rust
Разработчики анонимной сети Tor опубликовали выпуск проекта Arti 1.1.0, развивающего Tor-клиент, написанный на языке Rust. Ветка 1.x отмечена как пригодная для использования обычными пользователями и обеспечивающая тот же уровень конфиденциальности, юзабилити и стабильности, что и основная реализация на языке Си. Код распространяется под лицензиями Apache 2.0 и MIT.
В отличие от реализации на Си, которая вначале была спроектирована как SOCKS-прокси, а уже потом подогнана под другие потребности, Arti изначально развивается в форме модульной встраиваемой библиотеки, которую смогут использовать различные приложения. Кроме того, при разработке нового проекта учитывается весь прошлый опыт разработки Tor, что позволяет избежать известных архитектурных проблем, сделать проект более модульным и эффективным.
В качестве причины переписывания Tor на Rust упоминается желание добиться более высокого уровня защищённости кода за счёт использования языка, обеспечивающего безопасную работу с памятью. По оценке разработчиков Tor, как минимум половина всех отслеживаемых проектом уязвимостей будет исключена в реализации на Rust, если в коде не используются блоки «unsafe». Rust также даст возможность добиться более высокой скорости разработки, чем при использовании Си, за счёт выразительности языка и строгих гарантий, позволяющих не тратить время на двойные проверки и написание лишнего кода.
В версии 1.1 реализована поддержка бриджей для обхода блокировок и подключаемого транспорта. Из протестированных с Arti транспортов для скрытия трафика и борьбы с блокировками отмечены obfs4proxy и snowflake. Повышены требования к сборочному окружению — для сборки Arti теперь требуется как минимум ветка Rust 1.60.
В следующей версии (1.2) ожидается появление поддержки onion-сервисов и сопутствующих возможностей, таких как протокол управления перегрузкой (RTT Congestion Control) и средства защиты от DDoS-атак. Достижение паритета с клиентом на языке Си намечено в ветке 2.0, в которой также будут предложены привязки для использования Arti в коде на различных языках программирования. В течение следующих нескольких лет работа будет направлена на реализацию функциональности, необходимой для работы релеев и серверов директорий. Когда код на Rust достигнет уровня, способного полностью заменить вариант на Си, разработчики намерены придать Arti статус основной реализации Tor и прекратить сопровождение реализации на Си. Поддержка версии на языке Си будет прекращена постепенно с предоставлением возможности плавной миграции.
Источник: http://www.opennet.ru/opennews/art.shtml? num=58231
© OpenNet