Los desarrolladores de la red anónima Tor han presentado la primera versión beta (0.1.0) del proyecto Arti, que está desarrollando un cliente Tor escrito en Rust. El proyecto tiene el estatus de desarrollo experimental y se queda atrás en funcionalidad respecto al cliente principal de Tor escrito en C, por lo que aún no está listo para reemplazarlo completamente. En septiembre se planea lanzar la versión 1.0, que estabilizará la API, la CLI y la configuración, lo que la hará adecuada para el uso inicial de los usuarios comunes. En un futuro más remoto, cuando el código en Rust alcance un nivel que pueda reemplazar completamente la versión en C, los desarrolladores tienen la intención de otorgar a Arti el estatus de implementación principal de Tor y cesar el mantenimiento de 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 de la versión 0.1.0 se destaca la estabilización básica de las API de alto nivel y la preparación de la biblioteca para una integración experimental con otros proyectos. Se menciona la adición de una API para crear instancias de TorClient, incluida la capacidad de compilar e inicializar (bootstrap) en segundo plano en el primer uso. Además, se ha añadido una nueva API de alto nivel para el manejo de errores.
Antes de la publicación de la versión 1.0.0, los desarrolladores tienen la intención de asegurar en Arti un soporte completo para funcionar como cliente de Tor, proporcionando acceso a internet (la implementación del soporte de servicios onion se ha pospuesto para el futuro). También se planea lograr paridad con la implementación principal en C en áreas como rendimiento de red, carga de CPU y fiabilidad, así como proporcionar soporte para todas las capacidades relacionadas con la seguridad.
Fuente: opennet.ru
