Wydanie Arti 1.1, oficjalnej implementacji Tora w Rust

Twórcy anonimowej sieci Tor opublikowali wydanie projektu Arti 1.1.0, który rozwija klienta Tora napisanego w języku Rust. Gałąź 1.x jest oznaczona jako odpowiednia 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 C. Kod jest rozpowszechniany na licencji Apache 2.0 i MIT.

W przeciwieństwie do implementacji w języku C, która została najpierw zaprojektowana jako proxy SOCKS, a następnie dostosowana do innych potrzeb, Arti jest początkowo rozwijany w postaci modułowej, osadzanej biblioteki, z której można korzystać w różnych aplikacjach. Ponadto podczas opracowywania nowego projektu brane są pod uwagę wszystkie dotychczasowe doświadczenia związane z tworzeniem Tora, co pozwala uniknąć znanych problemów architektonicznych i sprawia, że ​​projekt jest bardziej modułowy i wydajny.

Powodem przepisania Tora w Rust jest chęć osiągnięcia wyższego poziomu bezpieczeństwa kodu poprzez użycie języka bezpiecznego dla pamięci. Według twórców Tora, co najmniej połowa wszystkich luk monitorowanych przez projekt zostanie wyeliminowana w implementacji Rusta, jeśli kod nie będzie korzystał z „niebezpiecznych” bloków. Rust umożliwi również osiągnięcie większych prędkości programowania niż przy użyciu C, ze względu na wyrazistość języka i ścisłe gwarancje, które pozwalają uniknąć marnowania czasu na podwójne sprawdzanie i pisanie niepotrzebnego kodu.

Wersja 1.1 wprowadza obsługę mostów w celu ominięcia blokowania i transportu wtykowego. Wśród transportów testowanych z Arti pod kątem ukrywania ruchu i zwalczania blokowania odnotowano obfs4proxy i płatek śniegu. Zwiększono wymagania dotyczące środowiska kompilacji - zbudowanie Arti wymaga teraz co najmniej gałęzi Rust 1.60.

Oczekuje się, że kolejna wersja (1.2) będzie obsługiwać usługi cebulowe i powiązane funkcje, takie jak protokół kontroli zatorów (RTT Congestion Control) i ochronę przed atakami DDoS. Osiągnięcie parytetu z klientem C planowane jest dla gałęzi 2.0, która będzie oferować także powiązania umożliwiające wykorzystanie Arti w kodzie w różnych językach programowania. Przez najbliższe kilka lat prace skupią się na zaimplementowaniu funkcjonalności potrzebnej do uruchomienia przekaźników i serwerów katalogowych. Kiedy kod Rusta osiągnie poziom, który będzie w stanie całkowicie zastąpić wersję C, programiści zamierzają nadać Artiemu status głównej implementacji Tora i zaprzestać utrzymywania implementacji C. Wersja C będzie wycofywana stopniowo, aby umożliwić płynną migrację.

Źródło: opennet.ru

Dodaj komentarz