Primeira versión estable de Arti, a implementación oficial de Tor en Rust

Os desenvolvedores da rede anónima Tor crearon a primeira versión estable (1.0.0) do proxecto Arti, que desenvolve un cliente Tor escrito en Rust. A versión 1.0 está marcada como adecuada para o seu uso por usuarios xerais e ofrece o mesmo nivel de privacidade, usabilidade e estabilidade que a implementación C principal. Tamén se estabilizou a API que se ofrece para usar a funcionalidade Arti noutras aplicacións. O código distribúese baixo as licenzas Apache 2.0 e MIT.

A diferenza da implementación C, que foi deseñada primeiro como un proxy SOCKS e despois adaptada a outras necesidades, Arti desenvólvese inicialmente en forma dunha biblioteca integrable modular que pode ser utilizada por varias aplicacións. Ademais, á hora de desenvolver un novo proxecto, téñense en conta toda a experiencia de desenvolvemento de Tor pasada, o que evita problemas arquitectónicos coñecidos e fai que o proxecto sexa máis modular e eficiente.

O motivo para reescribir Tor en Rust foi o desexo de acadar un maior nivel de seguridade do código mediante o uso dunha linguaxe segura para a memoria. Segundo os desenvolvedores de Tor, polo menos a metade de todas as vulnerabilidades monitorizadas polo proxecto eliminaranse nunha implementación de Rust se o código non usa bloques "inseguros". Rust tamén permitirá acadar velocidades de desenvolvemento máis rápidas que o uso de C, debido á expresividade da linguaxe e ás estritas garantías que permiten evitar perder o tempo en comprobación dobre e escribir códigos innecesarios.

A partir dos resultados do desenvolvemento da primeira versión, o uso da linguaxe Rust xustificou por si mesmo. Por exemplo, observouse que en cada etapa cometéronse menos erros no código Rust que no desenvolvemento comparable en C; os erros que apareceron durante o proceso de desenvolvemento estaban relacionados principalmente coa lóxica e a semántica. O compilador rustc excesivamente esixente, sinalado por algúns como unha desvantaxe, resultou ser unha bendición, xa que se o código compila e pasa as probas, a probabilidade da súa corrección aumenta significativamente.

Traballar na nova variante tamén confirmou un aumento da velocidade de desenvolvemento, que se debe non só ao feito de que a funcionalidade foi recreada baseándose nun modelo existente, senón tamén á semántica máis expresiva de Rust, ás bibliotecas de funcións convenientes e ao uso da seguridade do código de Rust. capacidades. Unha das desvantaxes é o gran tamaño dos conxuntos resultantes: xa que a biblioteca Rust estándar non se proporciona nos sistemas por defecto, debe incluírse nos paquetes que se ofrecen para descargar.

A versión 1.0 céntrase principalmente no traballo básico no rol de cliente. Na versión 1.1 está previsto implementar soporte para o transporte de complementos e pontes para evitar o bloqueo. Espérase que a versión 1.2 admita servizos onion e funcións relacionadas, como o protocolo de control de conxestión (RTT Congestion Control) e protección contra ataques DDoS. Para a rama 2.0 está previsto acadar a paridade co cliente C, que tamén ofrecerá enlaces para usar Arti en código en varias linguaxes de programación.

Durante os próximos anos, o traballo centrarase na implementación da funcionalidade necesaria para executar relés e servidores de directorios. Cando o código Rust alcanza un nivel que pode substituír completamente a versión C, os desenvolvedores pretenden darlle a Arti o estado da implementación principal de Tor e deixar de manter a implementación C. A versión C eliminarase gradualmente para permitir unha migración sen problemas.

Fonte: opennet.ru

Engadir un comentario