Gli sviluppatori della rete anonima Tor hanno presentato il progetto Arti, che mira a creare un'implementazione del protocollo Tor in Rust. A differenza dell'implementazione in C, originariamente progettata come SOCKS proxy e successivamente adattata per altre esigenze, Arti è stato sviluppato sin dall'inizio come una libreria modulare incorporabile, utilizzabile da diverse applicazioni. Il progetto è finanziato da oltre un anno tramite il programma Zcash Open Major Grants (ZOMG). Il codice è distribuito sotto le licenze Apache 2.0 e MIT.
Tra le motivazioni per il riscrivere Tor in Rust c'è il desiderio di raggiungere un livello superiore di sicurezza del codice grazie a un linguaggio che gestisce in modo sicuro la memoria. Secondo i programmatori di Tor, almeno metà delle vulnerabilità riscontrate nel progetto saranno eliminate con l'implementazione in Rust, a condizione che il codice non utilizzi blocchi 'unsafe'. Rust permetterà anche di accelerare i tempi di sviluppo rispetto all'uso del C, grazie all'espressività del linguaggio e alle garanzie rigorose, riducendo il tempo dedicato a doppi controlli e codice superfluo. Inoltre, il nuovo progetto tiene conto dell'intera esperienza passata nello sviluppo di Tor, per evitare noti problemi architetturali e rendere il progetto più modulare ed efficiente.
Nello stato attuale, Arti può già connettersi alla rete Tor, garantendo l'interazione con server directory e creando connessioni anonime su Tor, fornendo un proxy basato sul protocollo SOCKS. Lo sviluppo attuale non è raccomandato per l'uso in sistemi produttivi, poiché non tutte le funzionalità di privacy sono implementate e non è garantita la compatibilità retroattiva a livello API. La prima versione stabile del client, conforme ai criteri di sicurezza e che supporta nodi di sorveglianza e isolamento dei flussi, è prevista per ottobre.
A marzo 2022 è previsto il primo rilascio beta con un'implementazione sperimentale della libreria incorporabile e ottimizzazioni delle prestazioni. Il primo rilascio stabile, con un API stabile, CLI e formato di configurazione, oltre a una revisione, è programmato per metà settembre 2022. Questa versione sarà utilizzabile per un primo utilizzo da parte degli utenti comuni. Entro la fine di ottobre 2022 è previsto un aggiornamento 1.1 con supporto per il trasporto connettivo e ponti per bypassare le restrizioni. Il supporto per i servizi onion è previsto per il rilascio 1.2, mentre il raggiungimento della parità con il client in C è atteso nella versione 2.0, per cui le tempistiche non sono ancora state definite.
In futuro, gli sviluppatori prevedono una graduale diminuzione delle attività legate allo sviluppo del codice in C e un aumento del tempo dedicato alla revisione in Rust. Quando l'implementazione in Rust raggiungerà un livello in grado di sostituire quella in C, gli sviluppatori smetteranno di aggiungere nuove funzionalità all'implementazione in C e, dopo un certo periodo, interromperanno completamente il suo supporto. Tuttavia, questo non avverrà a breve, e finché l'implementazione in Rust non raggiungerà un livello di sostituzione completo, lo sviluppo del client e del relay Tor in C continuerà.
Fonte: opennet.ru
