Os desenvolvedores da rede anônima Tor publicaram a versão Arti 1.1.0, que desenvolve um cliente Tor escrito na linguagem Rust. A ramificação 1.x é considerada adequada para uso por usuários comuns e oferece o mesmo nível de privacidade, usabilidade e estabilidade que a implementação principal em C. O código é distribuído sob as licenças Apache 2.0 e MIT.
Ao contrário da implementação em C, que foi inicialmente projetada como um proxy SOCKS e posteriormente ajustada para outras necessidades, o Arti se desenvolve originalmente na forma de uma biblioteca modular embutida, que poderá ser utilizada por diferentes aplicações. Além disso, ao desenvolver o novo projeto, todo o conhecimento adquirido na criação do Tor é levado em conta, permitindo evitar problemas arquitetônicos conhecidos, tornando o projeto mais modular e eficiente.
A razão para reescrever o Tor em Rust é o desejo de alcançar um nível mais elevado de segurança do código, utilizando uma linguagem que garante um trabalho seguro com a memória. Segundo os desenvolvedores do Tor, pelo menos metade de todas as vulnerabilidades monitoradas pelo projeto será eliminada na implementação em Rust, desde que não sejam usados blocos 'unsafe' no código. O Rust também permitirá uma maior rapidez no desenvolvimento em comparação ao C, devido à expressividade da linguagem e garantias rigorosas, que evitam o desperdício de tempo com verificações duplas e escrita de código excessivo.
Na versão 1.1, foi implementado o suporte a bridges para contornar bloqueios e transporte plugável. Entre os transportes testados com o Arti para ocultação de tráfego e combate a bloqueios, destacam-se o obfs4proxy e o snowflake. As exigências para o ambiente de construção foram aumentadas — agora é necessário no mínimo a ramificação Rust 1.60 para compilar o Arti.
Na próxima versão (1.2), espera-se que haja suporte para serviços onion e recursos relacionados, como o protocolo de controle de congestionamento (RTT Congestion Control) e ferramentas de proteção contra ataques DDoS. Atingir a paridade com o cliente em C está previsto para a ramificação 2.0, que também oferecerá bindings para utilizar Arti em código em várias linguagens de programação. Nos próximos anos, o trabalho será focado na implementação das funcionalidades necessárias para operar relés e servidores diretórios. Quando o código em Rust atingir um nível capaz de substituir completamente a versão em C, os desenvolvedores pretendem dar ao Arti o status de implementação principal do Tor e interromper o suporte à implementação em C. O suporte à versão em C será gradualmente descontinuado, oferecendo uma migração suave.
Fonte: opennet.ru
