Gli sviluppatori della rete anonima Tor hanno presentato il rilascio del progetto Arti 0.0.3, che sviluppa un client Tor scritto in Rust. Il progetto ha lo status di sviluppo sperimentale, è inferiore in funzionalità rispetto al client principale Tor scritto in C e non è ancora pronto per sostituirlo completamente. A marzo, è previsto il rilascio della versione 0.1.0, che sarà posizionata come primo beta del progetto, e in autunno é atteso il rilascio della versione 1.0 con la stabilizzazione dell'API, CLI e impostazioni, che sarà adatta per l'uso iniziale da parte di utenti comuni. In un futuro più lontano, quando il codice in Rust raggiungerà un livello in grado di sostituire completamente la versione in C, gli sviluppatori intendono dare ad Arti lo status di implementazione principale di Tor e interrompere il supporto per l'implementazione in C.
A differenza dell'implementazione in C, che inizialmente è stata progettata come un proxy SOCKS e poi adattata ad altre esigenze, Arti si sviluppa fin dall'inizio come una libreria modulare integrabile, utilizzabile da varie applicazioni. Inoltre, nella creazione del nuovo progetto si tiene conto dell'intera esperienza passata nello sviluppo di Tor, il che permetterà di evitare noti problemi architettonici, rendendo il progetto più modulare ed efficace. Il codice è distribuito sotto le licenze Apache 2.0 e MIT.
Tra le motivazioni per la riscrittura di Tor in Rust c'è il desiderio di raggiungere un livello di sicurezza del codice più elevato grazie all'uso di un linguaggio che garantisce un uso sicuro della memoria. Secondo le stime degli sviluppatori di Tor, almeno la metà di tutte le vulnerabilità monitorate dal progetto sarà esclusa nell'implementazione in Rust, se nel codice non vengono utilizzati blocchi "unsafe". Rust permetterà anche di ottenere una maggiore velocità di sviluppo rispetto all'uso del C, grazie all'espressività del linguaggio e alle sue garanzie rigorose che permettono di non perdere tempo in verifiche doppie e scrittura di codice superfluo.
Tra le novità del rilascio 0.0.3 si segnala una revisione completa del sistema di configurazione e dell'API correlata. Questa modifica ha reso possibile modificare le impostazioni in Rust dinamicamente durante il funzionamento del client Tor. È stata inoltre aggiunta una nuova sistema per la costruzione proattiva delle catene (preemptive circuit construction), che tiene conto delle porte utilizzate in precedenza per la creazione anticipata di catene che potrebbero essere necessarie in futuro.
Fonte: opennet.ru
