Il progetto Tor ha presentato un'implementazione nel linguaggio Rust, che in futuro sostituirà la versione C

Gli sviluppatori della rete anonima Tor hanno presentato il progetto Arti, nell'ambito del quale si sta lavorando per creare un'implementazione del protocollo Tor nel linguaggio Rust. A differenza dell'implementazione C, progettata inizialmente come proxy SOCKS e poi adattata ad altre esigenze, Arti è inizialmente sviluppata sotto forma di libreria modulare incorporabile che può essere utilizzata da varie applicazioni. Il lavoro è in corso da oltre un anno con i finanziamenti del programma di sovvenzioni Zcash Open Major Grants (ZOMG). Il codice è distribuito sotto le licenze Apache 2.0 e MIT.

Le ragioni per riscrivere Tor in Rust sono il desiderio di raggiungere un livello più elevato di sicurezza del codice utilizzando un linguaggio che garantisca un funzionamento sicuro con la memoria. Secondo gli sviluppatori Tor, almeno la metà di tutte le vulnerabilità monitorate dal progetto verranno eliminate in un'implementazione Rust se il codice non utilizza blocchi "non sicuri". Rust consentirà inoltre di raggiungere velocità di sviluppo più elevate rispetto all'utilizzo di C, grazie all'espressività del linguaggio e alle rigorose garanzie che consentono di evitare di perdere tempo nel doppio controllo e nella scrittura di codice non necessario. Inoltre, quando si sviluppa un nuovo progetto, viene presa in considerazione tutta l'esperienza passata nello sviluppo di Tor, il che eviterà problemi architetturali noti e renderà il progetto più modulare ed efficiente.

Allo stato attuale, Arti può già connettersi alla rete Tor, comunicare con i server di directory e creare connessioni anonime su Tor con un proxy basato su SOCKS. Lo sviluppo non è ancora consigliato per l'utilizzo in sistemi di produzione, poiché non tutte le funzionalità di privacy sono implementate e la compatibilità con le versioni precedenti a livello API non è garantita. Il rilascio della prima versione del client conforme alla sicurezza, che supporta i nodi di guardia e l'isolamento dei thread, è previsto per ottobre.

La prima versione beta è prevista per marzo 2022 con un'implementazione sperimentale della libreria incorporata e ottimizzazioni delle prestazioni. La prima versione stabile, con API, CLI e formato di configurazione stabili, nonché auditing, è prevista per metà settembre 2022. Questa versione sarà adatta per l'uso iniziale da parte degli utenti generici. L'aggiornamento 2022 è previsto per la fine di ottobre 1.1 con il supporto del trasporto plug-in e dei bridge per aggirare i blocchi. Il supporto per i servizi Onion è previsto per la versione 1.2, mentre il raggiungimento della parità con il client C è previsto per la versione 2.0, i cui tempi non sono ancora stati determinati.

In futuro, gli sviluppatori prevedono una graduale diminuzione dell'attività legata allo sviluppo del codice C e un aumento del tempo dedicato all'editing in Rust. Quando l'implementazione di Rust raggiunge un livello tale da poter sostituire la versione C, gli sviluppatori smetteranno di aggiungere nuove funzionalità all'implementazione C e, dopo un po' di tempo, smetteranno di supportarla completamente. Ma questo non accadrà presto e finché l'implementazione in Rust non raggiungerà il livello di una sostituzione completa, lo sviluppo del client Tor e del relè in C continuerà.

Fonte: opennet.ru

Aggiungi un commento