Shadowsocks: co to jest, jak działa, porównanie z VPN
- May 31, 2024, 2:58 PM
- 9 minut
Opowiadamy o protokole, jego mechanizmie działania, zaletach i wadach, a także porównujemy go z VPN.
Czym jest Shadowsocks
Shadowsocks to darmowe narzędzie dla tych, którzy chcą omijać blokady w prosty, ale mało popularny sposób. Jest to protokół sieciowy z szyfrowaniem danych. Pomaga również w ochronie ruchu i danych osobowych. Opiera się na technologii SOCKS5, a kod źródłowy jest dostępny na GitHub.
Projekt został uruchomiony w 2012 roku. Chiński programista o pseudonimie Clowwindy opublikował pierwsze prace nad Shadowsocks na GitHubie. Protokół ten pomagał omijać ograniczenia "Złotej Tarczy", czyli wielkiego chińskiego firewalla. Projekt stał się popularny na całym świecie po usunięciu z GitHuba, co przyciągnęło uwagę mediów. Dziennikarze przypuszczali, że istnieje związek między usunięciem a atakiem na GitHub, który miał miejsce kilka dni później.
Clowwindy zakończył rozwój w 2015 roku na żądanie chińskich organów ścigania. Od tego czasu społeczność Shadowsocks rozwija się.
Mapa ze strony Freedom House dobrze ilustruje, w których krajach Shadowsocks na pewno się przyda.
Shadowsocks jest potrzebny do podobnych zadań jak VPN:
- Omijanie blokad. Protokoły są stosowane do uzyskania dostępu do zablokowanych zasobów zarówno w kraju, jak i przez dostawców usług i operatorów.
- Ochrona danych osobowych. Trudniej uzyskać dostęp do ruchu i danych osobowych.
- Bezpieczne połączenie z niezabezpieczonych punktów, na przykład przez darmowe Wi-Fi.
Jak to działa
W przypadku standardowego połączenia sieciowego użytkownik łączy się z internetem bezpośrednio za pośrednictwem swojego dostawcy usług. Na przykład, jeśli chce odwiedzić określoną witrynę, najpierw łączy się z routerem dostawcy, a następnie z samą witryną. Jeśli państwo chce zablokować tę witrynę, prosi dostawcę usług o zablokowanie dostępu do jej adresu IP.
Aby ominąć to ograniczenie, używa się proxy. W tym przypadku między dostawcą usług a witryną powstaje "pośrednik" - serwer proxy. Połączenie odbywa się nadal za pośrednictwem dostawcy usług, ale dostawca usług wie tylko, że żądanie jest kierowane do proxy. Dlatego połączenie z witryną odbywa się bez żadnych ograniczeń, a ruch jest przesyłany z powrotem do urządzenia użytkownika. Jednak istnieje kilka problemów, na przykład:
- Witryny i dostawcy usług mogą wykryć, że korzystasz z narzędzi do omijania blokad.
- Połączenie nie jest zabezpieczone. Chociaż możesz używać proxy z szyfrowaniem lub VPN, który zazwyczaj szyfruje ruch.
Shadowsocks jest potrzebny do rozwiązania tych problemów. Szyfruje dane i udaje, że są one zwykłym ruchem HTML. Protokół ten oparty jest na SOCKS5, o którym jest artykuł na naszym blogu. Pomaga również w ochronie połączenia za pomocą algorytmu AEAD.
W AEAD stosuje się ten sam mechanizm co przy tunelowaniu SSH, ale w przypadku AEAD do zaszyfrowanych danych wchodzi również informacja o nadawcy i odbiorcy. Utrudnia to życie przestępcom. Nawet jeśli przechwycą wiadomość, nie będą w stanie sfałszować przesyłki danych.
Generalnie szyfry AEAD nie są uważane za tak bezpieczne, jak wynika z dyskusji na Stack Exchange. Ale są one wystarczające do zapewnienia niezawodnego połączenia i ochrony danych.
Zasada działania Shadowsocks: dla programów SS działa jak zwykły SOCKS5, tylko z adresem IP 127.0.0.1. Taki adres IP nazywany jest Localhost, a połączenie odbywa się lokalnie. Innymi słowy, każdy program, na przykład przeglądarka, łączy się z tym samym urządzeniem, na którym jest uruchomiony. Następnie następuje połączenie między lokalnym komponentem Shadowsocks a serwerem, w tym połączeniu ruch jest już szyfrowany.
Szczegóły można dowiedzieć się z wideo o omijaniu chińskiego firewalla.
Możesz podłączyć inne aplikacje do Shadowsocks, a proxy będzie działać tylko dla wybranych aplikacji. Jeśli jednak jedna z nich nie obsługuje proxy, możesz użyć na przykład Proxifiera.
Aby zainstalować i skonfigurować Shadowsocks, trzeba trochę zrozumieć połączenia. Co trzeba zrobić na początku:
- Kupić i skonfigurować serwer VPS w kraju, w którym nie jest zablokowana potrzebna treść, lub skorzystać z gotowego serwera proxy, które można znaleźć na stronach z proxy Shadowsocks.
- Klient-serwer. Aplikacja mobilna jest dostępna w Google Play, program dla komputera można pobrać dla systemu Windows i Linux.
Następnie wystarczy zainstalować i uruchomić klienta, a następnie skonfigurować połączenie z serwerem: dodać adres IP serwera, port, hasło i metodę szyfrowania.
Shadowsocks oferuje trzy tryby połączenia.
- Tryb bezpośredniego połączenia nie przekierowuje ruchu przez serwer proxy. Domyślne ustawienia dla niektórych aplikacji działają w tym trybie.
- Tryb PAC: ruch będzie przechodził przez serwer proxy podczas dostępu do zablokowanych witryn internetowych.
- W trybie globalnym cały ruch jest przekierowywany przez serwer proxy.
Shadowsocks potrafi udawać połączenie HTTPS do zdalnego serwera. Jest to konieczne do maskowania ruchu. Dzięki temu dostawca nie zrozumie, co przegląda użytkownik i jak omija blokady. Taki trik jest możliwy po zainstalowaniu na serwerze wtyczki do obfuskacji ruchu simple-obfs.
Obfuskacja to maskowanie i zamieszanie ruchu. Za jej pomocą można go chronić przed wykryciem: dostawca nie będzie wiedział, że używasz Shadowsocks. Zazwyczaj do tego celu stosuje się szyfrowanie kodu, zmianę nazw zmiennych na bezsensowne, dodawanie zbędnego kodu lub po prostu korzystanie z rozwiązań takich jak Cloak, Stunnel, OpenVPN Scramble i inne.
Chińczycy potrafią śledzić działanie Shadowsocks za pomocą pasywnego analizy ruchu i aktywnego "sondowania", a następnie blokować połączenia pomimo obfuskacji. Najpierw zapora sieciowa szuka możliwych połączeń Shadowsocks, a następnie łączy się z serwerami uczestniczącymi w tych połączeniach, z ich własnych adresów IP, jakby była klientem Shadowsocks, i obserwuje odpowiedzi serwera.
Na GitHubie można przeczytać szczegóły i mechanikę rozwiązania tego problemu, ale w każdym przypadku Shadowsocks nadal działa lepiej niż VPN.
Zalety
1) Selektywne maskowanie ruchu. Można określić, który ruch wysyłać przez dostawcę usług internetowych, a który przez Shadowsocks. To pomoże jednocześnie ominąć blokowanie i zachować dostęp do niektórych usług.
Przykład: jednoczesne korzystanie z witryn takich jak Instagram i państwowych usług online. Pierwsza może być niedostępna dla twojego kraju, a pozostałe działają tylko z lokalnymi adresami IP. Jeśli użyjesz VPN, będziesz mógł korzystać z Instagrama, ale nie będziesz mógł uruchomić lokalnych usług. Oczywiście niektóre VPN-y obsługują rozłączne tunelowanie. Z Shadowsocks można rozwiązać ten problem: można zasłonić ruch z Instagrama i jednocześnie korzystać z innych usług.
2) Ochrona przed DPI. DPI to technologia sprawdzania ruchu w celu śledzenia działania konkretnych aplikacji. Shadowsocks jest prawie niemożliwy do wykrycia i zablokowania, ponieważ imituje zwykłe połączenie HTTPS. Dlatego dostawca usług nie będzie w stanie wykryć "niestandardowego" zachowania użytkownika.
3) Niezawodność. Shadowsocks nie zniknie nawet w przypadku utraty połączenia, jeśli skonfigurowane jest tylko przez nie. W przypadku utraty połączenia z serwerem VPN ruch będzie kierowany bezpośrednio, a dostawca usług zobaczy całą informację. Częściowo ten problem rozwiązuje KillSwitch: awaryjny przycisk przerywa połączenie z internetem. Ale czasami nie działa lub go w ogóle nie ma.
4) Dobra przepustowość. Shadowsocks działa szybciej niż inne metody szyfrowania, takie jak tunelowanie SSH i VPN, przy odpowiedniej konfiguracji. Przybliżone straty prędkości wynoszą nie więcej niż 3-5%.
5) Uniwersalność. Istnieją programy klientów dla wszystkich systemów operacyjnych - Windows, MacOS, Linux (różnych dystrybucji), Android i iOS.
6) Obniżone obciążenie obliczeniowe podczas szyfrowania. Z perspektywy klienta - oszczędność baterii (ważne dla urządzeń mobilnych), z perspektywy serwera - oszczędność na hostingu VPS/VDS dla Shadowsocks.
7) Oszczędność. Najtańszy serwer VPS będzie odpowiedni dla Shadowsocks. Idealnie, jeśli dostawca hostingu oferuje nielimitowany transfer danych przy użyciu VPS/VDS. Jest to znacznie bardziej opłacalne niż płatna usługa VPN. Możesz również korzystać z cudzych proxy, ale opcje od WannaFlix, 12VPN są znacznie droższe niż własny serwer, kosztują około 10$ miesięcznie.
W porównaniu: można wynająć VPS z 5 GB pamięci, 0,5 GB RAM i nielimitowanym transferem danych za 0,87$. To wystarczy w zupełności dla Shadowsocks. Najtańsze usługi VPN zwykle kosztują około 2$ miesięcznie, czyli dwa razy więcej, przy czym trzeba od razu opłacić subskrypcję na 2-3 lata. Darmowe VPN nie są brane pod uwagę - przesyłają dane, ograniczają prędkość i transfer danych.
Wady
1) Trudność w użyciu. Trzeba zrozumieć, jak działają komputery i połączenia, ale konfiguracja mieści się w 5 linijkach. VPN jest znacznie prostszy.
2) Ryzyko obniżenia prędkości połączenia. W zależności od używanych obfuskatorów, istnieje ryzyko, że Shadowsocks znacznie obniży prędkość internetu.
3) Ograniczenia w zastosowaniu. Można spróbować Shadowsocks do zmiany regionu w Netflix, ale taki schemat nie będzie działał długo: usługa monitoruje różne systemy bypassu. To również nie jest rozsądne rozwiązanie dla plików torrent: jeśli wynajmujesz serwer, łatwo jest ustalić twoje dane osobowe, a następnie oskarżyć o naruszenie praw autorskich.
4) Ograniczona dostępność. Pomimo popularności Shadowsocks, w niektórych regionach trudno jest zdobyć lub podłączyć się do niezawodnych serwerów VPS.
5) Brak oficjalnej audytu. Otwarty kod źródłowy Shadowsocks został przeanalizowany przez wielu specjalistów. Ale nie przeszedł oficjalnej weryfikacji, w przeciwieństwie do OpenVPN. Oficjalna audyt mogłaby zostać przeprowadzona przez fundusz OSTIF (Open Source Technology Improvement Fund), który został stworzony do wzmocnienia ochrony takich projektów. Jednocześnie kod Shadowsocks jest dość prosty - co stwarza ryzyko rozpowszechniania fałszywych pakietów oprogramowania.
VPN vs Shadowsocks
VPN i Shadowsocks to różne narzędzia. Pierwsze to wirtualna sieć prywatna, o której pisaliśmy w naszym blogu, a drugie to protokół proxy. Technicznie, oba:
- Szyfrują ruch
- Pomagają omijać blokady
Jednak Shadowsocks zapewnia prostsze szyfrowanie i nie zapewnia anonimowości w internecie. Projekt początkowo został opracowany nie tyle dla bezpieczeństwa, co dla omijania chińskiego firewalla. Jednak w przypadku ShadowsocksR częściowo rozwiązano ten problem, o czym opowiemy na końcu artykułu. W przypadku VPN zwykle stosuje się skomplikowany algorytm AES-256.
Usługi VPN często mają wiele dodatkowych funkcji. Na przykład KillSwitch. VPN działa jako "tunel", więc jeśli przestanie działać, ruch będzie kierowany bezpośrednio. W takim przypadku łatwo skompromitować rzeczywisty adres IP. KillSwitch chroni przed tym: natychmiast przerywa połączenie z internetem, jeśli utracone zostanie połączenie z serwerem VPN.
Wreszcie, VPN ma ogromną sieć serwerów. Można korzystać z internetu z różnych krajów - za każdym razem adres IP zmienia się na kraj wybranego serwera.
Wniosek: VPN jest wygodniejszy, bezpieczniejszy i prostszy. Jeśli masz do niego dostęp i radzi sobie z zadaniami, używaj go. Jeśli napotkasz trudności, Shadowsocks powinien rozwiązać problem: jest znacznie lepszy w krajach, gdzie blokowane są VPN-y i gdzie trudno jest ominąć ograniczenia. Dane wyglądają podobnie do ruchu HTTPS i nie wzbudzają podejrzeń. Użycie kilku połączeń TCP pomaga osiągnąć wysoką prędkość. Dla prostego omijania blokad jest bardziej korzystny.
Shadowsocks vs VPN
Shadowsocks | VPN | |
---|---|---|
Szyfrowanie | Szyfrowanie jest słabsze niż większość VPN | Większe bezpieczeństwo szyfrowania tylko między Twoim urządzeniem a serwerem |
Dostęp do treści | Omija cenzurę internetową i umożliwia dostęp do zablokowanych treści | Również omija cenzurę, ale łatwiej wykryć fakt korzystania |
Szybkość działania | Szybsze działanie dzięki mniejszemu szyfrowaniu i krótszej drodze do celu | Wolniejsze działanie ze względu na szyfrowanie i większą odległość do serwera VPN |
Złożoność konfiguracji | Trudniejsza konfiguracja i użytkowanie dla zwykłych użytkowników | Relatywnie łatwa konfiguracja i użytkowanie |
Koszt | Niski koszt lub nawet darmowe opcje | Droższe, zwłaszcza za jakościową usługę |
Do czego się nadaje | Do omijania skomplikowanych zapór ogniowych, na przykład w Chinach, i uzyskiwania dostępu do zablokowanych treści | Dla tych, którzy jednocześnie dbają o prywatność i dostęp do zablokowanych treści |
SSR (ShadowsocksR)
Obecnie Shadowsocks ma swoją społeczność i swoją stronę internetową. Dlatego entuzjaści mogą tworzyć swoje rozwiązania oparte na nim. Na przykład po zamknięciu Shadowsocks w 2015 roku inny deweloper breakwa11 stwierdził, że SS łatwo jest wykryć. Stworzył ShadowsocksR oparty na Shadowsocks z obsługą obfuskacji. ShadowsocksR jest więc odgałęzieniem oryginalnego protokołu, napisanym w języku Python, z obfuskacją ruchu.
Jednak częściej użytkownicy polecają korzystanie z aktualnej wersji Shadowsocks-Rust opartej na języku Rust.
Podsumowanie
Shadowsocks - to dostępne cenowo i wygodne narzędzie do omijania blokad. Może być przydatne również do ochrony połączenia. Oczywiście, ma mniej funkcji niż usługa VPN, ale jest nieco szybsze. Jednakże, jest optymalne do rozwiązywania prostych zadań, takich jak przywracanie dostępu do zablokowanych stron internetowych. Jest łatwe w użyciu i konfiguracji: w sieci istnieje wiele instrukcji, jak to zrobić.
W OnlineProxy znajdziesz mobilne proxy z całego świata z dziennymi taryfami zaczynającymi się od 0,7 $ i rotacją IP. Serwery proxy doskonale nadają się do zadań służbowych. Gwarantujemy jakość lub zwracamy pieniądze.