Gli sviluppatori della rete anonima Tor hanno pubblicato la versione del progetto Arti 1.1.0, che sviluppa un client Tor scritto in Rust. La branch 1.x è stata contrassegnata come idonea all'uso da parte degli utenti normali e garantisce lo stesso livello di riservatezza, usabilità e stabilità della principale implementazione scritta in C.
A differenza dell'implementazione in C, che inizialmente è stata progettata come SOCKS proxy e poi adattata a diverse esigenze, Arti è sviluppato fin dall'inizio come una libreria modulare integrabile, che diverse applicazioni possono utilizzare. Inoltre, durante lo sviluppo di questo nuovo progetto si tiene conto di tutta l'esperienza passata nella progettazione di Tor, il che consente di evitare problemi architettonici noti, rendendo il progetto più modulare ed efficiente.
Come motivo per la riscrittura di Tor in Rust si cita il desiderio di raggiungere un livello di sicurezza del codice più elevato grazie all'uso di un linguaggio che garantisca un uso sicuro della memoria. Secondo i valutatori di Tor, almeno la metà di tutte le vulnerabilità tracciate dal progetto sarà esclusa nell'implementazione in Rust, a condizione che nel codice non si utilizzino blocchi "unsafe". Rust offrirà anche la possibilità di raggiungere una velocità di sviluppo superiore rispetto all'uso di C, grazie all'espressività del linguaggio e alle sue garanzie rigorose che permettono di risparmiare tempo su verifiche doppie e scrittura di codice superfluo.
Nella versione 1.1 è stata implementata la supporto ai bridge per bypassare le restrizioni e il trasporto plug-in. Tra i trasporti testati con Arti per nascondere il traffico e combattere le restrizioni, si segnalano obfs4proxy e snowflake. Sono stati aumentati i requisiti per l'ambiente di build: ora, per compilare Arti, è necessaria almeno la branch Rust 1.60.
Nella prossima versione (1.2) ci si aspetta l'arrivo del supporto ai servizi onion e funzionalità correlate, come il protocollo di controllo della congestione RTT e gli strumenti di protezione contro gli attacchi DDoS. Il raggiungimento della parità con il client in C è previsto per la branch 2.0, che offrirà anche i binding per utilizzare Arti in codice scritto in diversi linguaggi di programmazione. Nei prossimi anni, il lavoro sarà focalizzato sull'implementazione delle funzionalità necessarie per il funzionamento dei relay e server directory. Quando il codice Rust raggiungerà un livello in grado 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 l'implementazione in C. Il supporto per la versione in linguaggio C sarà gradualmente dismesso, fornendo la possibilità di una migrazione fluida.
Fonte: opennet.ru
