Lanzamiento de Arti 1.4.0, la implementación oficial de Rust de Tor

Los desarrolladores del proyecto Tor han lanzado Arti 1.4.0, una implementación del cliente Tor escrita en Rust. La rama 1.x está marcada como adecuada para ser utilizada por usuarios regulares y proporciona el mismo nivel de privacidad, usabilidad y estabilidad que la implementación principal de C. Está previsto alcanzar la paridad con el cliente C para la rama 2.0. Una vez que el código Rust alcance un nivel que pueda reemplazar completamente la versión C, los desarrolladores pretenden promover Arti al estado de implementación principal de Tor y dejar gradualmente de mantener la implementación C. El código se distribuye bajo las licencias Apache 2.0 y MIT.

Arti se desarrolló inicialmente como una biblioteca modular e integrable que puede utilizarse en una variedad de aplicaciones. El diseño de Arti tiene en cuenta la experiencia previa con Tor, lo que evita los problemas arquitectónicos conocidos asociados con la implementación de C que inicialmente fue diseñada como un proxy SOCKS y luego adaptada a otras necesidades.

Además de modernizar la arquitectura, la razón para reescribir Tor en Rust fue el deseo de aumentar la seguridad del código mediante el uso de un lenguaje que garantice un trabajo seguro con la memoria. Según los desarrolladores de Tor, utilizar el lenguaje Rust sin bloques "inseguros" evitará al menos la mitad de todas las vulnerabilidades típicas del proyecto. También se espera que Rust aumente la velocidad de desarrollo gracias a la expresividad del lenguaje y a las fuertes garantías que eliminan la necesidad de perder tiempo en verificar dos veces y escribir código innecesario.

La nueva versión pone a disposición una nueva interfaz RPC, que reemplaza el protocolo de control a través del puerto TCP especificado mediante el parámetro ControlPort. RPC se puede utilizar para integrar aplicaciones y servicios con Arti sin incorporar una biblioteca con funcionalidad Arti en la aplicación.

Diferencias clave del nuevo protocolo:

  • Utilizando el formato JSON en lugar de un formato específico que requiere su propio analizador;
  • Facilidad de extensión del protocolo. Formalización de cómo el cliente y el servidor deben manejar mensajes, parámetros y datos no compatibles;
  • Mecanismo para determinar la disponibilidad de RPC;
  • Soporte para transmitir múltiples solicitudes simultáneamente a través de una única conexión de red;
  • Disponibilidad de bibliotecas de cliente listas para usar para C, Python y Rust.

Otros cambios en Arti 1.4.0 incluyen trabajo preparatorio para soportar relés y la implementación continua de capacidades para proteger los servicios de cebolla de ataques DDoS.

Fuente: opennet.ru

Añadir un comentario