Tor Project планирует заменить код C на Rust

Разработчики работают над проектом Arti, реализацией Rust для клиента Tor. Главный сетевой архитектор и соучредитель Tor Project Ник Мэтьюсон говорит, что Arti позволит создать улучшенную версию Tor, которая будет более надежной, безопасной и простой в использовании с другим ПО.

Tor Project получил $ 670 тысяч от Zcash Open Major Grants на обновление языка программирования. Оно позволит сделать клиент Tor более адаптируемым и простым для использования. Tor Project планируется перевести с языка С на Rust.

https://twitter.com/torproject/status/1402758199401279497?ref_src=twsrc%5Etfw

Мэтьюсон выразил надежду на то, что в течение следующих нескольких лет Arti станет предпочтительной реализацией протоколов Tor.

В ZOMG отмечают, что Arti станет «кодовой базой следующего поколения, которая будет более гибкой в плане встраивания, обслуживания, развертывания и производительности.

В настоящее время ZOMG фокусируется на приватности финансовых транзакций, в то время как Tor Project создал браузер, который препятствует отслеживанию действий пользователей в сети. Мэтьюсон пишет, что Tor рассматривается как «недостающий элемент» в конфиденциальности Zcash.

По словам Мэтьюсона, Arti начинался как сторонний проект, чтобы изучать Rust. Однако через какое-то время стало понятно, что проект сможет решить проблемы с программным обеспечением Tor. Он отметил, что в этом году Tor Project исполнилось 25 лет, и «за последние годы обнаружилось, что сложность существующего кода на C и хрупкость самого языка делают излишне сложным улучшение кода при сохранении безопасности и конфиденциальности».

Мэтьюсон утверждает, что Rust сочетает преимущества языка системного программирования (высокая производительность, доступ к ресурсам низкого уровня, детальный контроль) с простотой использования. По его мнению, «примерно половина проблем с безопасностью Tor с 2016 года была бы невозможна в Rust, а многие другие были бы гораздо менее вероятными».

Основная проблема использования Tor для Zcash заключается в том, что браузер сложно встраивать. Кроме того, его работу нельзя «детально контролировать», а сроки обновлений достаточно долгие из-за устаревшего кода.

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

В этом году язык С попал на первое место рейтинга TIOBE. В 2020 году он находился на втором месте. Rust оказался в рейтинге на 29-й позиции.