De ontwikkelaars van het Tor-project hebben Arti 1.4.0 uitgebracht, een implementatie van de Tor-client, geschreven in Rust. De 1.x-tak wordt gemarkeerd als geschikt voor gebruik door gewone gebruikers en biedt hetzelfde niveau van privacy, gebruiksvriendelijkheid en stabiliteit als de hoofdimplementatie in C. De gelijkwaardigheid met de C-client is gepland voor de 2.0-tak. Zodra de Rust-code het niveau heeft bereikt dat volledig in staat is om de C-variant te vervangen, zijn de ontwikkelaars van plan Arti de status van hoofdimplementatie van Tor te geven en geleidelijk de ondersteuning van de implementatie in C stop te zetten. De code wordt verspreid onder de Apache 2.0- en MIT-licenties.
Arti wordt oorspronkelijk ontwikkeld in de vorm van een modulaire ingebedde bibliotheek die door verschillende applicaties kan worden gebruikt. Bij het ontwerp van Arti is rekening gehouden met de eerdere ervaringen met de ontwikkeling van Tor, wat heeft geholpen bekende architecturale problemen te vermijden die verband hielden met het feit dat de implementatie in C aanvankelijk was ontworpen als een SOCKS-proxy en later was aangepast voor andere behoeften.
Naast de modernisering van de architectuur was de wens om de beveiliging van de code te verbeteren door gebruik te maken van een taal die veilige geheugenwerking garandeert, een reden om Tor naar Rust te herschrijven. Volgens de ontwikkelaars van Tor zal het gebruik van Rust zonder āunsafeā-blokken ervoor zorgen dat ten minste de helft van alle typische kwetsbaarheden in het project worden voorkomen. Daarnaast wordt verwacht dat Rust de ontwikkelingssnelheid zal verhogen dankzij de expressiviteit van de taal en de strikte garanties, waardoor geen tijd verloren gaat aan dubbele controles en het schrijven van overbodige code.
In de nieuwe release is een nieuwe RPC-interface gereedgekomen, die de managementprotocol via de TCP-poort vervangt, ingesteld via de parameter ControlPort. RPC kan worden gebruikt voor de integratie van applicaties en services met Arti zonder de bibliotheek met Arti-functionaliteit in de applicatie in te voegen.
Belangrijke verschillen met het nieuwe protocol:
- Gebruik van het JSON-formaat in plaats van een specifiek formaat dat zijn eigen parser vereist;
- Eenvoud van protocoluitbreiding. Formalisering van hoe de client en server moeten omgaan met niet-ondersteunde berichten, parameters en gegevens;
- Mechanisme voor het bepalen van de beschikbaarheid van RPC;
- Ondersteuning voor het gelijktijdig verzenden van meerdere aanvragen in ƩƩn netwerkverbinding;
- Beschikbaarheid van kant-en-klare clientbibliotheken voor C, Python en Rust.
Andere wijzigingen in Arti 1.4.0 omvatten voorbereidende werkzaamheden ter ondersteuning van relays en het voortzetten van de uitvoering van mogelijkheden voor de bescherming van onion-diensten tegen DDoS-aanvallen.
Bron: opennet.ru
