Tor è un insieme di protocolli che ambiscono ad assicurare anonimato, privacy e resistenza alla censura su Internet. Tor è anche un programma scritto in C che implementa i protocolli sia lato client che lato server.
Nella nostra guida a Tor Browser abbiamo spiegato come funziona Tor e come la rete possa essere utilizzate anche per navigare anonimi.
Il progetto Tor ha preso forma nel 2002 utilizzando come base i lavori in tema di Onion Routing della metà degli anni ’90. Dal 2006 lo sviluppo di Tor è gestito da un ente senza scopo di lucro ed è cresciuto di anno in anno fino ad essere scelto ogni giorno da milioni di utenti in tutto il mondo.
Oggi la comunità di sviluppo di Tor ha annunciato che entro settembre 2022 dovrebbe debuttare la prima versione stabile di Arti, un client non più scritto in C bensì in Rust.
Rust è un linguaggio di programmazione compilato sviluppato da Mozilla Research in collaborazione con la comunità open source il cui obiettivo primario è quello di consentire la realizzazione di sistemi complessi altamente sicuri, anche multithreaded.
L’attuale client multipiattaforma di Tor non morirà a breve ma in futuro verrà certamente accantonato. “Ci aspettiamo che nei prossimi anni passeremo sempre più tempo a programmare in Rust e meno in C. Alla fine, una volta che la nostra implementazione Rust di Tor sarà un buon sostituto della versione realizzata in C, smetteremo di aggiungere nuove funzionalità all’implementazione C e alla fine abbandoneremo il supporto per quest’ultima“, si legge in una nota ufficiale.
Non si tratterà quindi di un cambiamento imminente ma Rust sarà considerato come un vero e proprio punto di riferimento. Il nome Tor, inoltre, non cambierà: Arti può essere considerato come una sorta di “nome in codice”.
Perché abbandonare C e passare a Rust? Ancora una volta a spiegarlo molto chiaramente sono gli sviluppatori di Tor.
Sebbene il linguaggio C sia storicamente apprezzato e onnipresente, il suo utilizzo espone notoriamente a errori. La mancanza di caratteristiche di alto livello rende molti compiti di programmazione più complessi di quanto non siano ricorrendo a un linguaggio di sviluppo più moderno.
“Programmare in C è un processo lento e scrupoloso. Ogni cosa che scriviamo richiede più codice di quanto vorremmo, e abbiamo bisogno di ricontrollare anche il codice che sembra più sicuro per assicurarci che non cada preda di nessuno degli enormi “gotcha” del C“, spiegano ancora gli autori di Tor. Con il termine gotcha si fa comunemente riferimento a una caratteristica del linguaggio di programmazione che si comporta in un modo corretto dal punto di vista formale ma che all’atto pratico il programma eseguito non rispetta ciò che è nelle intenzioni del programmatore. “Questo ci rallenta seriamente e aumenta il costo dell’aggiunta di nuove funzionalità“.
I gestori del progetto Tor aggiungono che Rust rappresenta la “via d’uscita” più adeguata: è un linguaggio di alto livello significativamente più espressivo del C. Dispone inoltre di alcune caratteristiche davvero innovative che permettono al linguaggio di far rispettare certe proprietà di sicurezza al momento della compilazione.
“Un’enorme vittoria per noi in termini di tempo sia nella fase di sviluppo che di debug, un’enorme vittoria anche per gli utenti finali in termini di sicurezza e affidabilità. Dal 2016 abbiamo tracciato tutti i bug di sicurezza che abbiamo trovato in Tor e si è scoperto che almeno la metà di essi erano specificamente dovuti a errori che dovrebbero essere impossibili da introdurre nel codice di Rust“.
Nell’annuncio della disponibilità della nuova versione di anteprima di Arti si apprende che il nuovo client Rust manca della maggior parte delle funzioni i sicurezza di Tor. Siamo però ancora in fase embrionale e se tutto andrà per il verso giusto dopo l’estate il nuovo client, ancora più sicuro, potrà essere pronto per il rilascio globale.