Eerste stabiele release van Arti, de officiële implementatie van Tor in Rust

De ontwikkelaars van het anonieme Tor-netwerk hebben de eerste stabiele release (1.0.0) van het Arti-project gemaakt, dat een Tor-client ontwikkelt geschreven in Rust. De 1.0-release is gemarkeerd als geschikt voor gebruik door algemene gebruikers en biedt hetzelfde niveau van privacy, bruikbaarheid en stabiliteit als de belangrijkste C-implementatie. Ook de aangeboden API voor het gebruik van Arti-functionaliteit in andere applicaties is gestabiliseerd. De code wordt gedistribueerd onder de Apache 2.0- en MIT-licenties.

In tegenstelling tot de C-implementatie, die eerst is ontworpen als een SOCKS-proxy en vervolgens is afgestemd op andere behoeften, is Arti in eerste instantie ontwikkeld in de vorm van een modulair in te sluiten bibliotheek die door verschillende toepassingen kan worden gebruikt. Bovendien wordt bij het ontwikkelen van een nieuw project rekening gehouden met alle eerdere Tor-ontwikkelingservaringen, waardoor bekende architectonische problemen worden vermeden en het project modulair en efficiënter wordt.

De reden voor het herschrijven van Tor in Rust was de wens om een ​​hoger niveau van codebeveiliging te bereiken door een geheugenveilige taal te gebruiken. Volgens Tor-ontwikkelaars zal minstens de helft van alle kwetsbaarheden die door het project worden gemonitord, worden geëlimineerd in een Rust-implementatie als de code geen “onveilige” blokken gebruikt. Rust maakt het ook mogelijk om snellere ontwikkelingssnelheden te bereiken dan met C, vanwege de expressiviteit van de taal en strikte garanties waarmee u geen tijd verspilt aan dubbele controles en het schrijven van onnodige code.

Op basis van de resultaten van de ontwikkeling van de eerste versie rechtvaardigde het gebruik van de Rust-taal zichzelf. Zo viel het ons op dat er in elke fase minder fouten werden gemaakt in de Rust-code dan bij een vergelijkbare ontwikkeling in C - de fouten die tijdens het ontwikkelingsproces aan het licht kwamen, hadden voornamelijk betrekking op logica en semantiek. De buitensporig veeleisende rustc-compiler, door sommigen als een nadeel beschouwd, bleek eigenlijk een zegen te zijn, want als de code compileert en de tests doorstaat, neemt de kans op juistheid aanzienlijk toe.

Het werken aan de nieuwe variant bevestigde ook een toename in de ontwikkelingssnelheid, die niet alleen te danken is aan het feit dat de functionaliteit opnieuw werd gecreëerd op basis van een bestaande sjabloon, maar ook aan de meer expressieve semantiek van Rust, handige functiebibliotheken en het gebruik van Rust's codebeveiliging. mogelijkheden. Een van de nadelen is de grote omvang van de resulterende assemblages - aangezien de standaard Rust-bibliotheek niet standaard op systemen wordt geleverd, moet deze worden opgenomen in de pakketten die worden aangeboden om te downloaden.

De 1.0-release richt zich vooral op basiswerk in de rol van de cliënt. In versie 1.1 is het de bedoeling om ondersteuning te implementeren voor plug-in transport en bruggen om blokkering te omzeilen. Versie 1.2 zal naar verwachting uiendiensten en aanverwante functies ondersteunen, zoals het congestiecontroleprotocol (RTT Congestion Control) en bescherming tegen DDoS-aanvallen. Het bereiken van pariteit met de C-client is gepland voor de 2.0-tak, die ook bindingen zal bieden voor het gebruik van Arti in code in verschillende programmeertalen.

De komende jaren zal het werk zich richten op het implementeren van de functionaliteit die nodig is om relays en directoryservers te laten draaien. Wanneer de Rust-code een niveau bereikt dat de C-versie volledig kan vervangen, zijn de ontwikkelaars van plan Arti de status van de hoofdimplementatie van Tor te geven en te stoppen met het onderhouden van de C-implementatie. De C-versie zal geleidelijk worden uitgefaseerd om een ​​soepele migratie mogelijk te maken.

Bron: opennet.ru

Voeg een reactie