Los desarrolladores de la red anónima Tor han presentado la versión 0.0.3 del proyecto Arti, que está desarrollando un cliente Tor escrito en Rust. El proyecto tiene el estatus de desarrollo experimental, no alcanza la funcionalidad del cliente principal de Tor en C y aún no está listo para reemplazarlo completamente. Se espera el lanzamiento de la versión 0.1.0 en marzo, que se posiciona como la primera versión beta del proyecto, y en otoño se lanzará la versión 1.0 con la estabilización de la API, CLI y configuraciones, que será adecuada para el uso inicial por usuarios comunes. En un futuro más lejano, cuando el código en Rust alcance un nivel capaz de reemplazar completamente la variante en C, los desarrolladores tienen la intención de otorgar a Arti el estatus de implementación principal de Tor y detener el soporte para la implementación en C.
A diferencia de la implementación en C, que inicialmente fue diseñada como un proxy SOCKS y luego adaptada a otras necesidades, Arti se desarrolla desde el principio como una biblioteca modular incrustable, que podrán utilizar diversas aplicaciones. Además, en el desarrollo del nuevo proyecto se tiene en cuenta toda la experiencia pasada en el desarrollo de Tor, lo que permitirá evitar problemas arquitectónicos conocidos y hacer el proyecto más modular y eficiente. El código se distribuye bajo las licencias Apache 2.0 y MIT.
Como motivos para reescribir Tor en Rust se menciona el deseo de lograr un nivel más alto de seguridad del código mediante el uso de un lenguaje que garantice un manejo seguro de la memoria. Según la evaluación de los desarrolladores de Tor, al menos la mitad de todas las vulnerabilidades rastreadas por el proyecto se eliminarán en la implementación en Rust, siempre que no se utilicen bloques "unsafe" en el código. Rust también permitirá lograr una mayor velocidad de desarrollo que al usar C, gracias a la expresividad del lenguaje y a las estrictas garantías que evitan gastar tiempo en verificaciones dobles y en la escritura de código innecesario.
Entre los cambios en la versión 0.0.3, se destaca una revisión completa del sistema de configuración y de la API relacionada. Este cambio permite modificar configuraciones desde Rust en tiempo real durante el funcionamiento del cliente Tor. También se ha añadido un nuevo sistema para la construcción proactiva de circuitos, que tiene en cuenta los puertos utilizados anteriormente para la creación anticipada de circuitos que probablemente se necesiten en el futuro.
Fuente: opennet.ru
