Pierwsza wersja beta Arti, implementacji Tora w Rust

Twórcy anonimowej sieci Tor zaprezentowali pierwszą wersję beta (0.1.0) projektu Arti, który rozwija klienta Tor napisanego w języku Rust. Projekt ma status rozwoju eksperymentalnego, odstaje od funkcjonalności głównego klienta Tora w C i nie jest jeszcze gotowy, aby go w pełni zastąpić. We wrześniu planowane jest stworzenie wersji 1.0 ze stabilizacją API, CLI i ustawieniami, która będzie odpowiednia do pierwszego użycia przez zwykłych użytkowników. W dalszej przyszłości, gdy kod Rusta osiągnie poziom mogący całkowicie zastąpić wersję C, programiści zamierzają nadać Artiemu status głównej implementacji Tora i zaprzestać utrzymywania implementacji C.

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 pozwoli uniknąć znanych problemów architektonicznych i sprawi, że projekt będzie bardziej modułowy i wydajny. Kod jest rozpowszechniany na licencji Apache 2.0 i MIT.

Powodem przepisywania Tora w Ruście 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.

Wśród zmian w wersji 0.1.0 znajduje się podstawowa stabilizacja API wysokiego poziomu i doprowadzenie biblioteki do gotowości do eksperymentalnej integracji z innymi projektami. Wśród zmian wspomniano o dodaniu API do tworzenia instancji TorClient, w tym możliwości budowania i inicjowania (bootstrap) w tle przy pierwszym użyciu. Ponadto dodano nowe API wysokiego poziomu do obsługi błędów.

Przed publikacją wersji 1.0.0 twórcy zamierzają zapewnić Arti pełne wsparcie dla pracy jako klient Tor zapewniający dostęp do Internetu (wdrożenie obsługi usług cebulowych przesunięte na przyszłość). Obejmuje to osiągnięcie zgodności z głównym nurtem implementacji języka C w obszarach takich jak wydajność sieci, obciążenie procesora i niezawodność, a także zapewnienie obsługi wszystkich funkcji związanych z bezpieczeństwem.

Źródło: opennet.ru

Dodaj komentarz