El proyecto Tor presentó una implementación en lenguaje Rust, que en un futuro sustituirá a la versión C

Los desarrolladores de la red anónima Tor presentaron el proyecto Arti, en cuyo marco se está trabajando para crear una implementación del protocolo Tor en lenguaje Rust. A diferencia de la implementación C, que primero se diseñó como un proxy SOCKS y luego se adaptó a otras necesidades, Arti se desarrolló inicialmente en forma de una biblioteca modular integrable que puede ser utilizada por varias aplicaciones. El trabajo ha estado en marcha durante más de un año con financiación del programa de subvenciones Zcash Open Major Grants (ZOMG). El código se distribuye bajo las licencias Apache 2.0 y MIT.

Las razones para reescribir Tor en Rust son el deseo de lograr un mayor nivel de seguridad del código mediante el uso de un lenguaje que garantice un funcionamiento seguro con la memoria. Según los desarrolladores de Tor, al menos la mitad de todas las vulnerabilidades monitoreadas por el proyecto se eliminarán en una implementación de Rust si el código no utiliza bloques "inseguros". Rust también permitirá alcanzar velocidades de desarrollo más rápidas que usando C, debido a la expresividad del lenguaje y a las estrictas garantías que permiten evitar perder tiempo comprobando dos veces y escribiendo código innecesario. Además, al desarrollar un nuevo proyecto, se tiene en cuenta toda la experiencia pasada en desarrollo de Tor, lo que evitará problemas arquitectónicos conocidos y hará que el proyecto sea más modular y eficiente.

En su estado actual, Arti ya puede conectarse a la red Tor, comunicarse con servidores de directorio y crear conexiones anónimas sobre Tor con un proxy basado en SOCKS. Aún no se recomienda el uso del desarrollo en sistemas de producción, ya que no todas las funciones de privacidad están implementadas y no se garantiza la compatibilidad con versiones anteriores a nivel de API. La primera versión del cliente compatible con la seguridad, que admite nodos de protección y aislamiento de subprocesos, está programada para ser lanzada en octubre.

La primera versión beta se espera para marzo de 2022 con una implementación experimental de la biblioteca integrada y optimizaciones de rendimiento. La primera versión estable, con una API, CLI y formato de configuración estables, además de auditoría, está prevista para mediados de septiembre de 2022. Esta versión será adecuada para uso inicial por parte de usuarios generales. Se espera la actualización 2022 para finales de octubre de 1.1 con soporte para transporte enchufable y puentes para evitar el bloqueo. El soporte para los servicios cebolla está previsto para la versión 1.2, y se espera lograr la paridad con el cliente C en la versión 2.0, cuyo calendario aún no se ha determinado.

En el futuro, los desarrolladores predicen una disminución gradual de la actividad relacionada con el desarrollo de código C y un aumento del tiempo dedicado a la edición en Rust. Cuando la implementación de Rust alcance un nivel que pueda reemplazar la versión C, los desarrolladores dejarán de agregar nuevas funciones a la implementación C y, después de un tiempo, dejarán de admitirla por completo. Pero esto no sucederá pronto, y hasta que la implementación en Rust alcance el nivel de reemplazo completo, continuará el desarrollo del cliente Tor y el relé en C.

Fuente: opennet.ru

Añadir un comentario