Tor también se une a la fiebre de Rust y pretende reemplazar a C en un futuro

julio 09, 2021 , 0 Comments

Todo indica que Rust se está comenzado a volver un favorito dentro de la programación, ya que muchos desarrolladores de aplicaciones ya sean independientes, grupos, comunidades o compañías han comenzado a mostrar su interés y sobre todo a tomar cartas en el asunto sobre implementar este lenguaje dentro de sus proyectos.

Uno de los ejemplos más populares de estos momentos en relación al open source es la introducción de controladores en Rust dentro del Kernel de Linux o tambien el proyecto «Prossimo» el cual básicamente se enfoca en coordinar los esfuerzos para trasladar la infraestructura de software crítico a un código seguro para asegurar la memoria del kernel de Linux con Rust.

Y ahora otro grande se une a esta fiebre y no es nada mas ni nada menos que Tor, ya que hace poco sus desarrolladores presentaron el proyecto Arti, dentro del cual se está trabajando para crear una implementación del protocolo Tor en el lenguaje Rust.

A diferencia de la implementación en C, que inicialmente se diseñó como un proxy SOCKS y solo luego se adaptó a otras necesidades, Arti inicialmente se desarrolla en forma de una biblioteca modular integrada que pueden usar varias aplicaciones. Se ha trabajado durante más de un año con fondos del programa de subvenciones Zcash Open Major Grants (ZOMG).

Tor de hoy está escrito en el lenguaje de programación C. Aunque C es venerable y omnipresente, es notoriamente propenso a errores de uso, y su falta de características de alto nivel hace que muchas tareas de programación sean más complejas de lo que serían en un lenguaje más moderno…

Rust parece la forma más clara de salir de nuestro apuro. Es un lenguaje de alto nivel y significativamente más expresivo que C. Además, tiene algunas características realmente innovadoras que permiten que el lenguaje aplique ciertas propiedades de seguridad en tiempo de compilación. En una primera aproximación, si el código se compila y no está marcado explícitamente como » unsafe», entonces se supone que las grandes categorías de errores son imposibles.

Las razones para reescribir Tor en Rust se citan como el deseo de lograr un mayor nivel de seguridad del código mediante el uso de un lenguaje que garantice un trabajo seguro con la memoria. Según los desarrolladores de Tor, al menos la mitad de todas las vulnerabilidades monitoreadas por el proyecto serán eliminadas en la implementación en Rust, si el código no usa bloques «inseguros».

Rust también permitirá lograr una velocidad de desarrollo más rápida que usando C, debido a la expresividad del lenguaje y las estrictas garantías de que no pierdas el tiempo en verificaciones dobles y escribiendo código innecesario. Además, al desarrollar un nuevo proyecto, se tiene en cuenta toda la experiencia pasada con el desarrollo de Tor, lo que evitará problemas arquitectónicos conocidos, hará que el proyecto sea más modular y eficiente.

En su estado actual, Arti ya puede conectarse a la red Tor, interactuar con servidores de directorio y crear conexiones anónimas a través de Tor con la provisión de un proxy basado en el protocolo SOCKS.

El desarrollo aún no se recomienda para su uso en sistemas de producción, ya que no se implementan todas las funciones de privacidad y no se garantiza la compatibilidad con versiones anteriores a nivel de API. La primera versión del cliente que cumple con los criterios de seguridad, que admite nodos de protección y aislamiento de subprocesos, está programada para su lanzamiento en octubre.

La primera versión beta se espera para marzo de 2022 con la implementación experimental de la biblioteca incorporada y optimizaciones de rendimiento, mientras que la primera versión estable, con una API estable, CLI y formato de configuración, así como auditoría, está programada para mediados de septiembre de 2022.

Esta versión será adecuada para su uso inicial por parte de usuarios generales. Se espera la actualización 1.1 para fines de octubre de 2022 con soporte para transporte enchufable y puentes para evitar bloqueos. La compatibilidad con los servicios de cebolla está programada para la versión 1.2, y se espera la paridad con el cliente C en la versión 2.0, para la cual aún no se ha determinado un cronograma.

Fuente: https://blog.torproject.org/


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.