Проект Tor представил реализацию на языке Rust, которая в будущем заменит вариант на Си
8 июля 2021 года
Разработчики анонимной сети Tor представили проект Arti, в рамках которого ведётся работа по созданию реализации протокола Tor на языке Rust. В отличие от реализации на Си, которая вначале была спроектирована как SOCKS-прокси, а уже потом подогнана под другие потребности, Arti изначально развивается в форме модульной встраиваемой библиотеки, которую смогут использовать различные приложения. Работа ведётся уже более года с финансированием по программе грантов Zcash Open Major Grants (ZOMG). Код распространяется под лицензиями Apache 2.0 и MIT.
В качестве причин переписывания Tor на Rust называется желание добиться более высокого уровня защищённости кода за счёт использование языка, обеспечивающего безопасную работу с памятью. По оценке разработчиков Tor, как минимум половина всех отслеживаемых проектом уязвимостей будет исключена в реализации на Rust, если в коде не используются блоки "unsafe". Rust также даст возможность добиться более высокой скорости разработки, чем при использовании Си, за счёт выразительности языка и строгих гарантий, позволяющих не тратить время на двойные проверки и написание лишнего кода. Кроме того, при разработке нового проекта учитывается весь прошлый опыт разработки Tor, что позволит избежать известных архитектурных проблем, сделать проект более модульным и эффективным.
В текущем состоянии Arti уже может подключаться к сети Tor, обеспечивать взаимодействие с серверами директорий и создавать анонимизированные соединения поверх Tor с предоставлением прокси на основе протокола SOCKS. Разработку пока не рекомендуется использовать в рабочих системах, так как не все возможности по обеспечению конфиденциальности реализованы и не гарантируется обратная совместимость на уровне API. Первую версию клиента, соответствующую критериям безопасности, поддерживающую сторожевые узлы и изоляцию потоков, планируется выпустить в октябре.
В марте 2022 года ожидается первый бета-выпуск с экспериментальной реализацией встраиваемой библиотеки и оптимизациями производительности. Первый стабильный релиз, со стабильным API, CLI и форматом конфигурации, а также с проведением аудита, запланирован на середину сентября 2022 года. Данный выпуск будет пригоден для начального использования обычными пользователями. В конце октября 2022 года ожидается обновление 1.1 с поддержкой подключаемого транспорта и бриджей для обхода блокировок. Поддержка onion-сервисов намечена на выпуск 1.2, а достижение паритета с клиентом на языке Си ожидается в выпуске 2.0, сроки для которых пока не определены.
В дальнейшем разработчики прогнозируют постепенное уменьшение активности, связанной с разработкой кода на Си, и увеличение времени, уделяемого редакции на Rust. Когда реализация на Rust достигнет уровня, способного заменить вариант на Си, разработчики прекратят добавление новых возможностей в реализацию на Си и через какое-то время полностью прекратят её поддержку. Но это наступит не скоро, и пока реализация на Rust не достигнет уровня полноценной замены разработка клиента и релея Tor на Си будет продолжена.
Источники править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.