A primeira versão estável do Arti, a implementação oficial do Tor em Rust.

Os desenvolvedores da rede de anonimato Tor lançaram a primeira versão estável (1.0.0) do projeto Arti, que desenvolve um cliente Tor escrito em Rust. A versão 1.0 está pronta para uso por usuários comuns e oferece o mesmo nível de privacidade, usabilidade e estabilidade da implementação principal em C. A API, que permite que a funcionalidade do Arti seja usada em outros aplicativos, também foi estabilizada. O código é distribuído sob as licenças Apache 2.0 e MIT.

Ao contrário da implementação C, que foi inicialmente projetada como um proxy SOCKS e depois adaptada para outras necessidades, o Arti é inicialmente desenvolvido na forma de uma biblioteca modular incorporável que pode ser usada por vários aplicativos. Além disso, ao desenvolver um novo projeto, toda a experiência anterior de desenvolvimento do Tor é levada em consideração, o que evita problemas arquitetônicos conhecidos e torna o projeto mais modular e eficiente.

A motivação para reescrever o Tor em Rust foi alcançar um nível mais alto de segurança de código usando uma linguagem que garante a segurança da memória. De acordo com os desenvolvedores do Tor, pelo menos metade de todas as vulnerabilidades monitoradas pelo projeto serão eliminadas em uma implementação em Rust se o código não usar blocos "inseguros". O Rust também permitirá um desenvolvimento mais rápido do que em C, graças à expressividade da linguagem e às fortes garantias, eliminando a necessidade de perder tempo com verificações duplas e escrita de código desnecessário.

Após o desenvolvimento da primeira versão, o uso da linguagem Rust provou ser um investimento valioso. Por exemplo, observou-se que, em cada etapa, o código Rust continha menos erros do que o desenvolvimento em C comparável — os erros que surgiram durante o desenvolvimento estavam principalmente relacionados à lógica e à semântica. A natureza excessivamente exigente do compilador rustc, apontada por alguns como uma desvantagem, acabou se revelando uma vantagem, já que, se o código compila e passa nos testes, a probabilidade de sua correção aumenta significativamente.

Ao trabalharmos na nova versão, também confirmamos um aumento na velocidade de desenvolvimento, o que se deve não apenas ao fato de a funcionalidade ter sido recriada com base em um modelo existente, mas também à semântica mais expressiva do Rust, às bibliotecas de funções convenientes e ao uso dos recursos de segurança de código do Rust. Uma desvantagem é o tamanho considerável dos pacotes gerados — como a biblioteca padrão do Rust não é distribuída por padrão nos sistemas, ela precisa ser incluída nos pacotes de download.

A versão 1.0 concentra-se principalmente na funcionalidade básica do cliente. O suporte para pontes de transporte plugáveis ​​e bypass de bloqueio está planejado para a versão 1.1. O suporte para serviços onion e recursos relacionados, como controle de congestionamento RTT e mitigação de DDoS, é esperado na versão 1.2. A paridade com o cliente C está planejada para a versão 2.0, que também oferecerá integrações para usar o Arti em várias linguagens de programação.

Nos próximos anos, o trabalho se concentrará na implementação da funcionalidade necessária para a operação do relé e servidores diretórios. Assim que o código Rust atingir um nível capaz de substituir completamente a versão em C, os desenvolvedores pretendem tornar o Arti a implementação principal do Tor e cessar a manutenção da versão em C. O suporte à versão em C será descontinuado gradualmente, permitindo uma migração tranquila.

Fonte: opennet.ru

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