Ontwikkelaars van het anonieme netwerk Tor hebben de uitgave van het Arti-project 0.2.0 gepresenteerd, dat de Tor-client, geschreven in Rust, verder ontwikkelt. Het project heeft de status van experimentele ontwikkeling, het blijft achter in functionaliteit ten opzichte van de hoofdzakelijke Tor-client in C en is nog niet klaar om deze volledig te vervangen. In september is er een release 1.0 gepland, waarmee het API, de CLI en de instellingen worden gestabiliseerd, die geschikt zal zijn voor gebruik door gewone gebruikers. In de verdere toekomst, wanneer de Rust-code het niveau heeft bereikt dat het de C-versie volledig kan vervangen, zijn de ontwikkelaars van plan om Arti de status van de hoofdimplementatie van Tor te geven en de ondersteuning van de C-implementatie te stoppen.
In tegenstelling tot de implementatie in C, die aanvankelijk was ontworpen als een SOCKS-proxy en later was aangepast aan andere behoeften, wordt Arti oorspronkelijk ontwikkeld als een modulaire in te bouwen bibliotheek die door verschillende toepassingen kan worden gebruikt. Bovendien wordt bij de ontwikkeling van het nieuwe project rekening gehouden met alle eerdere ervaringen van de Tor-ontwikkeling, waardoor bekende architectonische problemen worden vermeden en het project modulairder en efficiƫnter wordt. De code wordt verspreid onder de licenties Apache 2.0 en MIT.
De redenen voor het herschrijven van Tor in Rust zijn het verlangen om een hoger niveau van codebeveiliging te bereiken door gebruik te maken van een taal die veilige geheugenwerking garandeert. Volgens de ontwikkelaars van Tor zal ten minste de helft van alle kwetsbaarheden die door het project worden gevolgd, worden uitgesloten in de Rust-implementatie, op voorwaarde dat er geen 'unsafe'-blokken in de code worden gebruikt. Rust biedt ook de mogelijkheid om een hogere ontwikkelsnelheid te bereiken dan met C, dankzij de expressiviteit van de taal en strenge garanties die ervoor zorgen dat er geen tijd wordt verspild aan dubbele controles en onnodige code.
De meest opvallende veranderingen in de uitgave 0.2.0 zijn gerelateerd aan het verbeteren van de prestaties en betrouwbaarheid. De werking in netwerken die alleen IPv6 ondersteunen, is verbeterd. Het geheugenverbruik voor gegevensopslag is verminderd met servers directory. De optie dns_port is toegevoegd, waarmee je DNS-verzoeken via Tor kunt configureren. Nieuwe code is voorgesteld voor het werken met configuraties. API's zijn toegevoegd voor het bepalen van isolatieregels van streams en het inschakelen van de slaapstand (pauzeren voor inactieve klanten). Het is mogelijk gemaakt om alternatieve code-implementaties aan te sluiten voor werken met servers directory.
Voor de publicatie van versie 1.0.0 zijn de ontwikkelaars van plan om volledige ondersteuning voor het functioneren als een Tor-cliƫnte in Arti te bieden, die toegang tot het internet biedt (de ondersteuning voor onion-diensten is uitgesteld naar de toekomst). Dit omvat ook het streven naar pariteit met de belangrijkste implementatie in de C-taal op gebieden zoals netwerkkapaciteit, CPU-belasting en betrouwbaarheid, en het bieden van ondersteuning voor alle mogelijkheden met betrekking tot veiligheid.
Bron: opennet.ru
