Il primo rilascio stabile di Arti, l'implementazione ufficiale di Tor in Rust

Gli sviluppatori della rete anonima Tor hanno rilasciato la prima versione stabile (1.0.0) del progetto Arti, che sviluppa un client Tor scritto in Rust. La versione 1.0 è considerata adatta per l'uso da parte degli utenti comuni e offre lo stesso livello di privacy, usabilità e stabilità della principale implementazione scritta in C. Stabilito anche l'API, che può essere utilizzata per integrare le funzionalità di Arti in altre applicazioni. Il codice è distribuito sotto le licenze Apache 2.0 e MIT.

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.

La ragione principale per riscrivere Tor in Rust è stata la volontà di ottenere un livello di sicurezza superiore grazie all'uso di un linguaggio che garantisce una gestione sicura della memoria. Secondo i programmatori di Tor, almeno la metà di tutte le vulnerabilità monitorate dal progetto sarà esclusa nell'implementazione in Rust, a condizione che nel codice non vengano utilizzati blocchi 'unsafe'. Rust permetterà anche di aumentare la velocità di sviluppo rispetto all'utilizzo di C, grazie all'espressività del linguaggio e alle severe garanzie, evitando di spendere tempo in controlli duplicati e nella scrittura di codice superfluo.

Al termine dello sviluppo della prima versione, l'uso del linguaggio Rust si è rivelato giustificato. Ad esempio, è stato notato che in ogni fase del codice in Rust si sono verificati meno errori rispetto a uno sviluppo comparabile in C: gli errori emersi durante lo sviluppo erano principalmente legati alla logica e alla semantica. L'esigente compilatore rustc, visto da alcuni come un difetto, si è rivelato una benedizione, poiché se il codice si compila e supera i test, aumenta notevolmente la probabilità della sua correttezza.

Lavorando su una nuova versione, si è anche confermato un aumento della velocità di sviluppo, legato non solo al fatto che la funzionalità è stata ricreata sulla base di un modello esistente, ma anche alla semantica più espressiva di Rust, alle librerie di funzioni convenienti e all'utilizzo delle capacità di Rust per garantire la sicurezza del codice. Tra i difetti emerge la grande dimensione dei pacchetti risultanti, poiché la libreria standard di Rust non è preinstallata nei sistemi, ma deve essere inclusa nei pacchetti proposti per il download.

Il rilascio della versione 1.0 è principalmente focalizzato sul funzionamento di base come client. Nella versione 1.1 si prevede di implementare il supporto per i trasporti plug-in e i bridge per il bypass delle restrizioni. Nella versione 1.2 si attende il supporto per i servizi onion e le relative funzionalità, come il protocollo di controllo della congestione RTT e i mezzi di protezione dagli attacchi DDoS. Il raggiungimento della parità con il client in linguaggio C è previsto per la versione 2.0, nella quale saranno anche proposte le bindings per l'utilizzo di Arti in codici scritti in vari linguaggi di programmazione.

Nel corso dei prossimi anni, il lavoro sarà rivolto all'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

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster