Gli sviluppatori della rete anonima Tor hanno pubblicato il rilascio del progetto Arti 1.1.0, che sviluppa un client Tor scritto in Rust. Il ramo 1.x è contrassegnato come adatto all'uso da parte di utenti normali e garantisce lo stesso livello di riservatezza, usabilità e stabilità dell'implementazione principale scritta in C. Il codice è distribuito sotto le licenze Apache 2.0 e MIT.
A differenza dell'implementazione in C, che è stata inizialmente progettata come un proxy SOCKS e successivamente adattata ad altre esigenze, Arti viene sviluppato fin dall'inizio come una libreria incorporabile modulare, che varie applicazioni potranno utilizzare. Inoltre, durante lo sviluppo del nuovo progetto si tiene conto di tutta l'esperienza passata nella progettazione di Tor, il che consente di evitare problemi architettonici noti e rende il progetto più modulare ed efficiente.
Tra le motivazioni per la riscrittura di Tor in Rust c'è la volontà di ottenere un livello di sicurezza del codice più elevato grazie all'uso di un linguaggio che garantisce una gestione sicura della memoria. Secondo i sviluppatori di Tor, almeno la metà di tutte le vulnerabilità monitorate dal progetto sarà esclusa nella versione scritta in Rust, a patto che nel codice non vengano utilizzati blocchi "unsafe". Inoltre, Rust permetterà di ottenere una maggiore velocità di sviluppo rispetto all'uso di C, grazie all'espressività del linguaggio e alle sue solide garanzie, che consentono di risparmiare tempo su controlli duplicati e codice superfluo.
Nella versione 1.1 è stata implementata la supporto per i bridge per eludere i blocchi e il trasporto plug-and-play. Tra i trasporti testati con Arti per oscurare il traffico e combattere i blocchi spiccano obfs4proxy e snowflake. Sono stati elevati i requisiti per l'ambiente di build: ora per compilare Arti è necessaria almeno la versione 1.60 del branch di Rust.
Nella prossima versione (1.2) è prevista l'introduzione del supporto per i servizi onion e funzionalità correlate, come il protocollo di controllo della congestione (RTT Congestion Control) e strumenti di protezione contro gli attacchi DDoS. Il raggiungimento della parità con il client in linguaggio C è previsto per il ramo 2.0, in cui verranno anche proposte le binding per l'utilizzo di Arti in codice scritto in vari linguaggi di programmazione. Nei prossimi anni, il lavoro sarà concentrato sull'implementazione delle funzionalità necessarie per il funzionamento dei relay e server directory. 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 la versione in C. Il supporto per la versione in linguaggio C sarà gradualmente dismesso, fornendo la possibilità di una migrazione fluida.
Fonte: opennet.ru
