Проект Tor опублікував Arti 0.0.3, реалізацію клієнта Tor мовою Rust

Розробники анонімної мережі Tor представили випуск проекту Arti 0.0.3, який розвиває Tor-клієнт, написаний мовою Rust. Проект має статус експериментальної розробки, відстає від функціональності від основного клієнта Tor мовою Сі і доки готовий повноцінно замінити його. У березні очікується випуск 0.1.0, який позиціонується як перший бета-випуск проекту, а восени випуск 1.0 зі стабілізацією API, CLI та налаштувань, що буде придатний для початкового використання звичайними користувачами. У більш віддаленому майбутньому, коли код на Rust досягне рівня, здатного повністю замінити варіант на Сі, розробники мають намір надати Arti статусу основної реалізації Tor і припинити супровід реалізації на Сі.

На відміну від реалізації на Сі, яка спочатку була спроектована як SOCKS-проксі, а вже потім підігнана під інші потреби, Arti спочатку розвивається у формі модульної бібліотеки, що вбудовується, яку зможуть використовувати різні додатки. Крім того, при розробці нового проекту враховується весь минулий досвід розробки Tor, що дозволить уникнути відомих архітектурних проблем, зробити проект більш модульним та ефективним. Код розповсюджується під ліцензіями Apache 2.0 та MIT.

Як причини переписування Tor на Rust називається бажання досягти вищого рівня захищеності коду за рахунок використання мови, що забезпечує безпечну роботу з пам'яттю. За оцінкою розробників Tor, як мінімум половина всіх вразливостей, що відстежуються проектом, буде виключена в реалізації на Rust, якщо в коді не використовуються блоки «unsafe». Rust також дасть можливість досягти більш високої швидкості розробки, ніж при використанні Сі, за рахунок виразності мови та суворих гарантій, що дозволяють не витрачати час на подвійні перевірки та написання зайвого коду.

Зі змін у випуску 0.0.3 відзначається повний перегляд системи конфігурації та пов'язаного з нею API. Зміна дозволила змінювати налаштування Rust на льоту під час роботи клієнта Tor. Також додана нова система для попереджувального побудови ланцюжків (preemptive circuit construction), що враховує порти, що використовуються раніше, для попереджувального створення ланцюжків, які ймовірно знадобляться в майбутньому.

Джерело: opennet.ru

Додати коментар або відгук