Deweloperzy anonimowej sieci Tor opublikowali wersję projektu Arti 1.1.0, rozwijającego klienta Tor napisanego w języku Rust. Wersja 1.x jest uznawana za nadającą się do użytku przez zwykłych użytkowników i zapewnia ten sam poziom prywatności, użyteczności i stabilności, co główna implementacja w języku C. Kod jest rozpowszechniany na licencjach Apache 2.0 i MIT.
W przeciwieństwie do realizacji w C, która najpierw została zaprojektowana jako proxy SOCKS, a dopiero później dostosowana do innych potrzeb, Arti jest rozwijane od podstaw jako modułowa, wbudowana biblioteka, którą będą mogły wykorzystywać różne aplikacje. Co więcej, w trakcie rozwoju nowego projektu uwzględniono całe dotychczasowe doświadczenie związane z rozwojem Tor, co pozwala uniknąć znanych problemów architektonicznych, czyniąc projekt bardziej modularnym i efektywnym.
Jako powód przepisania Tor w Rust podaje się chęć osiągnięcia wyższego poziomu bezpieczeństwa kodu dzięki użyciu języka, który zapewnia bezpieczną obsługę pamięci. Według oceny deweloperów Tor, co najmniej połowa wszystkich śledzonych przez projekt luk zostanie wyeliminowana w implementacji w Rust, o ile w kodzie nie będą używane bloki „unsafe”. Rust pozwoli także na osiągnięcie wyższej szybkości rozwoju niż w przypadku użycia C, dzięki ekspresyjności języka i ścisłym gwarancjom, które pozwalają zaoszczędzić czas na podwójne sprawdzenia i pisanie zbędnego kodu.
W wersji 1.1 wprowadzono wsparcie dla mostków do obejścia blokad oraz transportu do podłączenia. W testowanych z Arti transportach do ukrywania ruchu i walki z blokadami wyróżniają się obfs4proxy i snowflake. Zwiększono wymagania dotyczące środowiska budowy — do kompilacji Arti wymagana jest teraz co najmniej wersja Rust 1.60.
W następnej wersji (1.2) oczekuje się pojawienia wsparcia dla serwisów onion oraz towarzyszących możliwości, takich jak protokół zarządzania przeciążeniem (RTT Congestion Control) i środki ochrony przed atakami DDoS. Osiągnięcie parytetu z klientem w języku C planowane jest w wersji 2.0, w której także zaproponowane zostaną powiązania do użycia Arti w kodzie w różnych językach programowania. W ciągu następnych kilku lat prace będą ukierunkowane na wprowadzenie funkcjonalności niezbędnej do pracy w relayach oraz serwerów katalogów. Gdy kod w Rust osiągnie poziom, który będzie w stanie w pełni zastąpić wersję w C, deweloperzy zamierzają nadać Arti status głównej realizacji Tor i zaprzestać wsparcia dla implementacji w C. Wsparcie dla wersji w języku C będzie stopniowo wygaszane z zapewnieniem możliwości płynnej migracji.
Źródło: opennet.ru
