Gli sviluppatori della rete Tor hanno pubblicato la versione 1.2.0 del progetto Arti, che sviluppa un client Tor scritto in Rust. La serie 1.x è considerata adatta per l'uso da parte degli utenti comuni e offre lo stesso livello di riservatezza, usabilità e stabilità della principale implementazione in C. Il codice è distribuito sotto le licenze Apache 2.0 e MIT.
A differenza dell'implementazione in C, che inizialmente è stata progettata come proxy SOCKS e successivamente adattata ad altre esigenze, Arti si sviluppa fin dall'inizio come una libreria modulare integrabile, che diverse applicazioni possono utilizzare. Inoltre, durante lo sviluppo di questo nuovo progetto viene tenuta in considerazione tutta l'esperienza passata nello sviluppo di Tor, il che consente di evitare noti problemi architettonici, rendendo il progetto più modulare ed efficiente. Quando il codice in Rust raggiungerà un livello in grado di sostituire completamente la variante in C, gli sviluppatori intendono dare ad Arti lo status di implementazione principale di Tor e interrompere il supporto per l'implementazione in C.
Come motivo per la riscrittura di Tor in Rust si cita il desiderio di ottenere un livello maggiore di sicurezza del codice grazie all'uso di un linguaggio che garantisce una gestione sicura della memoria. Secondo gli sviluppatori di Tor, l'uso di Rust senza blocchi 'unsafe' eviterà l'insorgere di almeno la metà di tutte le tipiche vulnerabilità del progetto. Rust permetterà anche di raggiungere una maggiore velocità di sviluppo rispetto all'uso di C, grazie all'espressività del linguaggio e alle garanzie rigorose che consentono di risparmiare tempo evitando verifiche doppie e scrittura di codice superfluo.
La versione 1.2 di Arti è caratterizzata dalla realizzazione di un supporto stabile per i servizi onion. Con Arti ora è possibile non solo connettersi a servizi onion esistenti, ma anche creare i propri servizi onion.
Sono iniziati, ma non sono ancora conclusi, i lavori per implementare funzionalità correlate alla protezione della privacy e alla sicurezza dei servizi onion, come il protocollo di controllo della congestione RTT, strumenti di protezione contro attacchi DDoS, regolazione della larghezza di banda, autorizzazione dei clienti e il meccanismo 'Vanguard' per prevenire l'identificazione dei nodi Guard. Fino al completamento di queste funzionalità, la creazione di servizi onion basati su Arti non è raccomandata per implementazioni in produzione.
Nella nuova versione è stata anche risolta una vulnerabilità nel codice di gestione dei messaggi dai relay, causata dalla possibilità di inviare messaggi DATA vuoti, che possono essere utilizzati per inserire indicatori di traffico indefiniti. Questo problema è stato classificato come a basso livello di pericolo, poiché i pacchetti DATA vengono accettati solo per flussi già aperti.
Il raggiungimento della parità con il client in C è previsto per la versione 2.0, che offrirà anche binding per l'uso di Arti in codici scritti in diversi linguaggi di programmazione. Quando il codice in Rust raggiungerà un livello in grado di sostituire completamente la variante in C, gli sviluppatori intendono promuovere Arti a implementazione principale di Tor e cessare il supporto per l'implementazione in C. Il supporto per la versione in C sarà gradualmente interrotto, consentendo una migrazione fluida.
Fonte: opennet.ru
