Projekt Tor zaprezentował implementację w języku Rust, która w przyszłości zastąpi wersję w C

Twórcy anonimowej sieci Tor zaprezentowali projekt Arti, w ramach którego prowadzona jest praca nad stworzeniem implementacji protokołu Tor w języku Rust. W przeciwieństwie do implementacji w C, która początkowo została zaprojektowana jako SOCKS-proxy, a następnie dostosowana do innych potrzeb, Arti rozwija się od początku w formie modułowej biblioteki wbudowanej, z której mogą korzystać różne aplikacje. Prace trwają już od ponad roku i są finansowane w ramach programu grantów Zcash Open Major Grants (ZOMG). Kod jest dystrybuowany na podstawie licencji Apache 2.0 i MIT.

Jako powody przepisania Tora na Rust podaje się chęć osiągnięcia wyższego poziomu bezpieczeństwa kodu dzięki wykorzystaniu języka, który zapewnia bezpieczną pracę z pamięcią. Z szacunków twórców Tora wynika, że co najmniej połowa wszystkich wykrywanych przez projekt podatności zostanie wyeliminowana w implementacji na Rust, pod warunkiem, że w kodzie nie będą używane bloki „unsafe”. Rust umożliwi również osiągnięcie wyższej prędkości rozwoju, niż w przypadku użycia C, dzięki ekspresyjności języka oraz surowym gwarancjom, które pozwalają zaoszczędzić czas na podwójne kontrole i pisanie zbędnego kodu. Ponadto, podczas opracowywania nowego projektu uwzględniono całe dotychczasowe doświadczenie w tworzeniu Tora, co pozwoli uniknąć znanych problemów architektonicznych i uczyni projekt bardziej modułowym i efektywnym.

W obecnym stanie Arti może już łączyć się z siecią Tor, zapewniając interakcję z serwerami dierktoriów i tworzyć zanonimizowane połączenia na bazie Tor z zapewnieniem proxy opartego na protokole SOCKS. Rozwoju nie zaleca się jeszcze do używania w systemach roboczych, ponieważ nie wszystkie możliwości zapewnienia prywatności są wdrożone, a również nie gwarantuje się wstecznej kompatybilności na poziomie API. Pierwszą wersję klienta, która będzie spełniać kryteria bezpieczeństwa, wspierającą węzły strażnicze i izolację strumieni, planuje się wydać w październiku.

W marcu 2022 roku planowane jest pierwsze wydanie beta z eksperymentalną implementacją wbudowanej biblioteki oraz optymalizacjami wydajności. Pierwsze stabilne wydanie, z stabilnym API, CLI i formatem konfiguracji, a także audytem, zaplanowane jest na połowę września 2022 roku. Ta wersja będzie odpowiednia do wstępnego użytku przez zwykłych użytkowników. Na koniec października 2022 roku oczekiwane jest wydanie 1.1 z obsługą transportu wtyczkowego i mostów do omijania blokad. Obsługa usług onion planowana jest na wydanie 1.2, a osiągnięcie parytetu z klientem w języku C oczekiwane jest w wersji 2.0, terminy dla których są jeszcze nieustalone.

W dalszej kolejności deweloperzy prognozują stopniowe zmniejszenie aktywności związanej z rozwojem kodu w C oraz zwiększenie czasu poświęcanego na edycję w Rust. Kiedy implementacja w Rust osiągnie poziom zdolny do zastąpienia wersji w C, deweloperzy zakończą dodawanie nowych możliwości do implementacji w C i po jakimś czasie całkowicie zaprzestaną jej wsparcia. Ale to nie nastąpi wkrótce, a dopóki implementacja w Rust nie osiągnie pełnej zamiany, prace nad klientem i relayerem Tor w C będą kontynuowane.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster