Primeiro lançamento estável do Arti, a implementação oficial do Tor em Rust

Os desenvolvedores da rede anônima Tor lançaram a primeira versão estável (1.0.0) do projeto Arti, que desenvolve um cliente Tor escrito na linguagem Rust. A versão 1.0 é 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. A API também foi estabilizada, permitindo o uso da funcionalidade do Arti em outras aplicações. 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 foi o desejo de alcançar um nível mais alto de segurança do código, utilizando uma linguagem que garante um manuseio seguro da memória. De acordo com os desenvolvedores do Tor, pelo menos metade de todas as vulnerabilidades rastreadas pelo projeto será eliminada na implementação em Rust, desde que blocos 'unsafe' não sejam utilizados no código. O Rust também proporcionará uma velocidade de desenvolvimento mais alta do que ao usar C, devido à expressividade da linguagem e às rigorosas garantias que evitam retrabalho e escrita de código desnecessário.

Após o desenvolvimento da primeira versão, o uso da linguagem Rust se mostrou justificado. Por exemplo, foi observado que em cada etapa do código em Rust ocorreram menos erros do que no desenvolvimento comparável em C — os erros que surgiram durante o desenvolvimento estavam principalmente relacionados à lógica e semântica. A exigência excessiva do compilador rustc, que alguns consideram uma desvantagem, acabou sendo uma bênção, pois se o código compila e passa nos testes, a probabilidade de sua correção aumenta significativamente.

No trabalho sobre a nova versão, também foi confirmada um aumento na velocidade de desenvolvimento, o que está relacionado não apenas ao fato de a funcionalidade ser recriada com base em um modelo existente, mas também à semântica mais expressiva do Rust, ao uso de bibliotecas funcionais convenientes e à aplicação das capacidades do Rust para garantir a segurança do código. Entre as desvantagens, destaca-se o grande tamanho das compilações resultantes — uma vez que a biblioteca padrão do Rust não vem instalada por padrão nos sistemas, ela precisa ser incluída nos pacotes oferecidos para download.

A versão 1.0 está essencialmente focada no funcionamento básico como cliente. A versão 1.1 irá implementar suporte a transporte plugável e pontes para contornar bloqueios. A versão 1.2 deverá incluir suporte a serviços onion e funcionalidades associadas, como o protocolo de controle de congestionamento (RTT Congestion Control) e medidas de proteção contra ataques DDoS. O objetivo de alcançar paridade com o cliente em linguagem C está previsto na versão 2.0, que também oferecerá bindings para o uso do Arti em códigos de várias linguagens de programação.

Nos próximos anos, o trabalho será direcionado para a implementação das funcionalidades necessárias para o funcionamento do relé 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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster