Wydanie konspektu-ss-server 1.4, implementacja proxy Shadowsocks z projektu Outline

Wydano serwer proxy zarys-ss-server 1.4, wykorzystujący protokół Shadowsocks do ukrywania charakteru ruchu, omijania zapór ogniowych i oszukiwania systemów inspekcji pakietów. Serwer rozwijany jest przez projekt Outline, który dodatkowo zapewnia powiązanie aplikacji klienckich oraz interfejs kontrolny pozwalający na szybkie wdrożenie wieloużytkownikowych serwerów Shadowsocks opartych na konspektie-ss-server w środowiskach chmury publicznej lub na własnym sprzęcie, zarządzaj nimi za pomocą interfejsu internetowego i organizuj dostęp użytkowników według kluczy. Kod jest rozwijany i utrzymywany przez Jigsaw, dział Google utworzony w celu opracowywania narzędzi do obchodzenia cenzury i organizowania swobodnej wymiany informacji.

Outline-ss-server jest napisany w Go i dystrybuowany na licencji Apache 2.0. Jako podstawę wykorzystano kod serwera proxy go-shadowsocks2, stworzony przez społeczność programistów Shadowsocks. W ostatnim czasie główna działalność projektu Shadowsocks skupiła się na stworzeniu nowego serwera w języku Rust, a implementacja Go nie była aktualizowana od ponad roku i jest zauważalnie opóźniona w funkcjonalności.

Różnice między konspektem-ss-server a go-shadowsocks2 sprowadzają się do obsługi łączenia wielu użytkowników przez jeden port sieciowy, możliwości otwierania wielu portów sieciowych w celu odbierania połączeń, obsługi gorącego restartu i aktualizacji konfiguracji bez zrywania połączeń, wbudowanego monitorowania oraz narzędzia do modyfikacji ruchu w oparciu o platformę prometheus .io.

Wydanie konspektu-ss-server 1.4, implementacja proxy Shadowsocks z projektu Outline

Serwer konspektu ss dodaje również ochronę przed żądaniami sondy i atakami polegającymi na odtwarzaniu ruchu. Atak poprzez żądania weryfikacji ma na celu ustalenie obecności proxy, np. atakujący może wysłać do docelowego serwera Shadowsocks zestawy danych o różnej wielkości i przeanalizować, ile danych odczyta serwer przed stwierdzeniem błędu i zamknięciem połączenia . Atak powtórkowy polega na przejęciu sesji między klientem a serwerem, a następnie próbie ponownego wysłania przechwyconych danych w celu ustalenia obecności serwera proxy.

Aby zabezpieczyć się przed atakami poprzez żądania weryfikacji, serwer konspektu-ss-serwera w przypadku nadejścia nieprawidłowych danych nie przerywa połączenia i nie wyświetla błędu, lecz kontynuuje odbieranie informacji, działając jak swego rodzaju czarna dziura. Aby zabezpieczyć się przed powtórzeniem, dane otrzymane od klienta są dodatkowo sprawdzane pod kątem powtórzeń za pomocą sum kontrolnych zapisanych dla ostatnich kilku tysięcy sekwencji uzgadniania (maksymalnie 40 tysięcy, rozmiar jest ustalany przy starcie serwera i zużywa 20 bajtów pamięci na sekwencję). Aby zablokować powtarzające się odpowiedzi z serwera, wszystkie sekwencje uzgadniania serwera używają kodów uwierzytelniających HMAC z 32-bitowymi znacznikami.

Pod względem poziomu ukrycia ruchu protokół Shadowsocks w implementacji zarysu-ss-serwera jest zbliżony do podłączalnego transportu Obfs4 w anonimowej sieci Tor. Protokół został stworzony w celu ominięcia chińskiego systemu cenzurowania ruchu (tzw. Great Firewall of China) i pozwala dość skutecznie ukryć ruch przekazywany przez inny serwer (ruch jest problematyczny do zidentyfikowania ze względu na dołączanie losowego ziarna i symulowanie ciągłego przepływu).

SOCKS5 jest używany jako protokół do obsługi żądań proxy - w systemie lokalnym uruchamiany jest serwer proxy z obsługą SOCKS5, który tuneluje ruch do zdalnego serwera, z którego faktycznie wykonywane są żądania. Ruch między klientem a serwerem odbywa się w zaszyfrowanym tunelu (obsługiwane jest uwierzytelnione szyfrowanie AEAD_CHACHA20_POLY1305, AEAD_AES_128_GCM i AEAD_AES_256_GCM), ukrywając fakt, którego stworzenie jest podstawowym zadaniem Shadowsocks. Obsługiwana jest organizacja tuneli TCP i UDP, a także tworzenie dowolnych tuneli, nie ograniczających się do SOCKS5, poprzez użycie wtyczek, które przypominają podłączane transporty w Torze.

Źródło: opennet.ru

Dodaj komentarz