Wydanie Arti 2.0.0, oficjalnej implementacji Tor w języku Rust

Twórcy projektu Tor opublikowali wersję Arti 2.0.0, oficjalnie rozwijaną wersję narzędzi Tor, napisaną w języku Rust. Wdrożenie zostało oznaczone jako odpowiednie do użytku dla zwykłych użytkowników, zapewniając ten sam poziom prywatności, użyteczności i stabilności co główna implementacja w języku C. Kiedy kod w Rust osiągnie poziom, który pozwoli na pełne zastąpienie wersji w C, twórcy mają zamiar nadać Arti status głównej implementacji Tor i stopniowo zaprzestać wsparcia dla wersji w C. Kod jest udostępniany na licencjach Apache 2.0 i MIT.

Arti początkowo rozwijane jest w formie modułowej, wbudowanej biblioteki, którą mogą wykorzystać różne aplikacje. Przy projektowaniu Arti uwzględniono wcześniejsze doświadczenia z rozwoju Tor, co pozwoliło uniknąć znanych problemów architektonicznych związanych z tym, że implementacja w C początkowo została zaprojektowana jako proxy SOCKS, a dopiero potem dostosowana do innych potrzeb.

Oprócz modernizacji architektury, powodem przepisania Tor w Rust było pragnienie zwiększenia bezpieczeństwa kodu poprzez zastosowanie języka zapewniającego bezpieczne zarządzanie pamięcią. Według oceny twórców Tor, użycie języka Rust bez bloków „unsafe” pozwoli uniknąć powstania co najmniej połowy wszystkich typowych luk w projekcie. Dodatkowo zakłada się, że Rust przyspieszy proces rozwoju dzięki wyrazistości języka i restrykcyjnym gwarancjom, które pozwolą zaoszczędzić czas na podwójne kontrole i pisanie zbędnego kodu.

Znaczna zmiana numeru wersji została dokonana zgodnie z zastosowaną w projekcie modelą semantycznego wersjonowania i wiąże się z wprowadzonymi zmianami, które naruszają kompatybilność wsteczną. Wsparcie dla ustawień proxy.socks_port i proxy.dns_port, które wcześniej ogłoszono jako przestarzałe, zostało zakończone, a w ich miejsce wprowadzono ustawienia proxy.socks_listen i proxy.dns_listen. Zakończono wsparcie dla starej składni definiowania serwerów katalogu (Directory Authority). Wszystkie interfejsy programowania pakietu crate arti, które planuje się przenieść do innych pakietów crate lub usunąć, zostały oznaczone jako eksperymentalne.

Nowa funkcjonalność oferuje wsparcie dla nowego typu gniazd „inet-auto”, który automatycznie przydziela nieużywany port TCP dla serwera RPC. Kontynuowano wdrażanie funkcji dla relacji i serwerów katalogowych. Dla serwerów katalogowych przeprowadzono prace związane z zarządzaniem certyfikatami, dodano możliwość przesyłania, weryfikacji i przechowywania certyfikatów. Dla relacji wdrożono nową modułową architekturę zarządzania łańcuchami węzłów, wsparcie dla tworzenia kanałów komunikacyjnych z innymi relacjami, wsparcie dla przetwarzania zapytań o zgodę na połączenia oraz możliwość pracy relacji w roli serwera przy nawiązywaniu połączenia TLS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster