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

Twórcy anonimowej sieci Tor zaprezentowali projekt Arti, w ramach którego trwają prace nad stworzeniem implementacji protokołu Tor w języku Rust. 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. Prace trwają już ponad rok i są finansowane z programu grantowego Zcash Open Major Grants (ZOMG). Kod jest rozpowszechniany na licencji Apache 2.0 i MIT.

Powodem przepisania Tora w Rust jest chęć osiągnięcia wyższego poziomu bezpieczeństwa kodu poprzez użycie języka zapewniającego bezpieczną pracę z 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. Ponadto podczas opracowywania nowego projektu brane są pod uwagę wszystkie dotychczasowe doświadczenia związane z tworzeniem Tora, co pozwoli uniknąć znanych problemów architektonicznych i sprawi, że projekt będzie bardziej modułowy i wydajny.

W obecnym stanie Arti może już łączyć się z siecią Tor, komunikować się z serwerami katalogowymi i tworzyć anonimowe połączenia na platformie Tor za pomocą proxy opartego na SOCKS. Rozwój nie jest jeszcze zalecany do stosowania w systemach produkcyjnych, ponieważ nie wszystkie funkcje prywatności są zaimplementowane i nie jest gwarantowana kompatybilność wsteczna na poziomie API. Wydanie pierwszej wersji klienta zgodnej z bezpieczeństwem, obsługującej węzły ochronne i izolację wątków, planowane jest na październik.

Pierwsza wersja beta spodziewana jest w marcu 2022 r. z eksperymentalną implementacją wbudowanej biblioteki i optymalizacjami wydajności. Pierwsza stabilna wersja, ze stabilnym API, CLI i formatem konfiguracji, a także audytem, ​​planowana jest na połowę września 2022 roku. Ta wersja będzie odpowiednia do pierwszego użycia przez zwykłych użytkowników. Aktualizacja 2022 jest oczekiwana pod koniec października 1.1 r. i będzie obsługiwać transport wtyczek i mosty umożliwiające ominięcie blokowania. Obsługa usług cebulowych planowana jest w wersji 1.2, a osiągnięcie zgodności z klientem C w wersji 2.0, której termin nie został jeszcze ustalony.

W przyszłości twórcy przewidują stopniowy spadek aktywności związanej z rozwojem kodu C i wzrost czasu poświęconego na edycję w Rust. Kiedy implementacja Rusta osiągnie poziom mogący zastąpić wersję C, programiści przestaną dodawać nowe funkcje do implementacji C, a po pewnym czasie przestaną ją całkowicie wspierać. Ale to nie nastąpi szybko i dopóki implementacja w Rust nie osiągnie poziomu pełnej wymiany, rozwój klienta Tora i przekaźnika w C będzie kontynuowany.

Źródło: opennet.ru

Dodaj komentarz