Gli sviluppatori della rete anonima Tor hanno presentato il rilascio del progetto Arti 0.2.0, che sviluppa un client Tor scritto in Rust. Il progetto è attualmente in fase di sviluppo sperimentale, presenta funzionalità inferiori rispetto al client principale di Tor scritto in C ed è ancora lontano dall'essere pronto per una sostituzione completa. A settembre è previsto il rilascio della versione 1.0, con stabilizzazione dell'API, CLI e impostazioni, adatta per l'uso iniziale da parte degli utenti comuni. In un futuro più lontano, quando il codice in Rust raggiungerà un livello capace di sostituire completamente la versione in C, gli sviluppatori intendono conferire ad Arti lo status di implementazione principale di Tor e interrompere il supporto per quella in C.
A differenza dell'implementazione in C, inizialmente progettata come proxy SOCKS e poi adattata a diverse esigenze, Arti si sviluppa fin dall'inizio come una biblioteca modulare integrabile, che varie applicazioni possono utilizzare. Inoltre, nello sviluppo del nuovo progetto si tiene conto di tutta l'esperienza passata nello sviluppo di Tor, il che permetterà di evitare noti problemi architettonici e rendere il progetto più modulare ed efficiente. Il codice è distribuito sotto le licenze Apache 2.0 e MIT.
Tra le ragioni per riscrivere Tor in Rust c'è il desiderio di raggiungere un livello di sicurezza più elevato grazie all'uso di un linguaggio che garantisce un'adeguata gestione della memoria. Secondo gli sviluppatori di Tor, almeno metà delle vulnerabilità monitorate dal progetto sarà esclusa dall'implementazione in Rust, a meno che non vengano utilizzati blocchi 'unsafe' nel codice. Rust offrirà anche la possibilità di aumentare la velocità di sviluppo rispetto all'uso del C, grazie all'espressività del linguaggio e alle rigorose garanzie che riducono il tempo trascorso in controlli doppi e nella scrittura di codice superfluo.
Le modifiche più significative nella versione 0.2.0 riguardano il lavoro volto a migliorare le prestazioni e l'affidabilità. È stato migliorato il funzionamento nelle reti che supportano solo IPv6. È stata ridotta la memoria necessaria per la memorizzazione dei dati con server directory. È stata aggiunta l'opzione dns_port, che consente di configurare l'invio di richieste DNS attraverso Tor. È stato proposto un nuovo codice per la configurazione. Sono state aggiunte API per definire le regole di isolamento dei flussi e attivare la modalità di sospensione (interruzione per i clienti inattivi). È stata fornita la possibilità di collegare implementazioni alternative del codice per lavorare con server directory.
Prima della pubblicazione della versione 1.0.0, gli sviluppatori intendono garantire in Arti un supporto completo per il funzionamento come client Tor, che fornisce accesso a internet (il supporto per i servizi onion è stato rimandato a una data futura). Inoltre, si prevede di raggiungere la parità con l'implementazione principale in linguaggio C in aree quali prestazioni di rete, carico sulla CPU e affidabilità, oltre a garantire il supporto per tutte le capacità relative alla sicurezza.
Fonte: opennet.ru
