Gli sviluppatori della rete anonima Tor hanno presentato il rilascio del progetto Arti 0.0.3, il quale sviluppa un client Tor scritto in Rust. Il progetto è attualmente in fase di sviluppo sperimentale, con funzionalità inferiori rispetto al client principale di Tor scritto in C e non è ancora pronto a sostituirlo completamente. Il rilascio della versione 0.1.0 è previsto per marzo ed è posizionato come il primo rilascio beta del progetto, mentre il rilascio della versione 1.0 in autunno porterà la stabilizzazione dell'API, della CLI e delle impostazioni, rendendolo adatto per un utilizzo iniziale da parte degli utenti comuni. In un futuro più lontano, quando il codice in Rust raggiungerà un livello in grado di sostituire completamente la variante in C, gli sviluppatori intendono conferire ad Arti lo status di implementazione principale di Tor e interrompere il supporto per l'implementazione 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.
Tra le modifiche della versione 0.0.3 si segnala una revisione completa del sistema di configurazione e dell'API ad esso correlata. Questa modifica consente di cambiare le impostazioni da Rust al volo durante il funzionamento del client Tor. È stata anche aggiunta un nuovo sistema per la costruzione preventiva delle circuiti (preemptive circuit construction), che tiene conto delle porte utilizzate in precedenza per la creazione preventiva delle circuiti che potrebbero essere necessarie in futuro.
Fonte: opennet.ru
