Strona blokuje cię tylko z włączonym VPN? Oto co widzi
Blokada to zwykle adres wyjściowy, nie wyciek. Sprawdź sieć, z której wygląda twój ruch, resolver, który strona może zalogować, i to, co wie kod strony.
Sklep ładuje się w domu bez problemu i pokazuje ścianę „nietypowego ruchu” w chwili, gdy tunel się podnosi. Forum odmawia zalogowania, a strona streamingowa upiera się, że jesteś w kraju, którego nigdy nie odwiedziłeś. Nic z tego nie wymaga oprogramowania szpiegującego. Strona widzi adres, z którego przychodzą twoje pakiety, a z VPN ten adres należy do centrum danych, a nie do linii domowej. Większość tego, co nazywa się wykrywaniem VPN, zaczyna się i kończy na tym jednym fakcie, a reszta to wnioskowanie z przewidywalnym odsetkiem błędów.
Blokada zaczyna się od tego, skąd wyglądają twoje pakiety
Każde żądanie niesie adres źródłowy, a serwer, który je odbiera, może sprawdzić go w publicznych danych: która sieć go ogłasza, czy ta sieć jest dostawcą hostingu, czy pojawiła się na listach nadużyć i jaki kraj przypisuje mu rejestr. Nic z tego cię nie identyfikuje, a wszystko razem wystarcza, by wrzucić cię do szufladki.
Spójrz na własny ruch tak, jak spojrzałby obcy. Dwie komendy pokrywają większość powierzchni, a druga jest tą, o której ludzie zapominają:
curl -sS https://ipinfo.io/json
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com
Pierwsza zwraca adres wyjściowy, jego organizację i kraj. Druga zwraca adres resolvera, który dotarł do serwera nazw Google; często należy on do innej sieci niż twoje wyjście, i to jest adres, który widzi strona, jeśli loguje dane po stronie resolvera. Gdy te dwa należą do różnych krajów, niektóre strony uznają tę niezgodność za podejrzaną, nawet gdy w twojej konfiguracji nie ma nic złego.
Gdy odmowa zaczyna się dopiero po podniesieniu tunelu, podejrzewaj przede wszystkim adres wyjściowy. Zmień serwer i spróbuj ponownie, zanim dotkniesz przeglądarki. Blokada, która podąża za tobą przez trzy wyjścia tego samego dostawcy, dotyczy zakresów dostawcy; blokada, która znika na innym serwerze, dotyczy tego jednego adresu.
Strefa czasowa, język i zegar nie zgadzają się z adresem
Kod strony może odczytać twoją strefę czasową, preferencje językowe i ustawienia ekranu bez żadnego pytania o zgodę. Przeglądarka zgłaszająca czas środkowoeuropejski, gdy połączenie przychodzi z centrum danych w Singapurze, to silniejszy sygnał niż sam adres, i to właśnie taką niezgodność system oceny oszustw ma wychwytywać.
Intl.DateTimeFormat().resolvedOptions().timeZone
navigator.language
Intl.DateTimeFormat().resolvedOptions().locale
Te trzy linie w konsoli deweloperskiej mówią, co twoja przeglądarka podaje dobrowolnie. Klient VPN może zmienić twoją trasę i nic więcej, więc profil, który nosisz, pozostaje krajowy, podczas gdy twoje wyjście nie. Liczy się tu spójność: laptop ustawiony na ten sam region co wyjście wygląda zwyczajnie, a laptop, który zaprzecza sam sobie, nie.
Dlatego awaria jest okresowa. Wiele stron tego nie obchodzi, kilka to ocenia, a jeden serwis członkowski uznaje cię za oszusta. Klient działa poprawnie we wszystkich trzech przypadkach, dlatego zwykła odpowiedź pomocy technicznej, „to na pewno twoja przeglądarka”, jest jednocześnie irytująca i częściowo prawdziwa.
Co kod strony naprawdę wie o twojej maszynie
JavaScript nie ma API, które wylicza interfejsy sieciowe. Strona nie może zapytać, jakie adresy ma twój laptop, więc stare twierdzenie, że skrypt czyta twój adres LAN, jest głównie wspomnieniem ery wtyczek, gdy kontrolki ActiveX, aplety Java i inny kod natywny mogły robić dokładnie to.
| Signal | What it reveals | Status today |
|---|---|---|
| Source address of the request | Exit network, country, hosting status | Always visible; the main signal |
| Time zone and language | Where the profile claims to be | Readable without permission |
| WebRTC candidates | Local addresses, historically | Host candidates are mDNS-obfuscated by default |
| Interface list | All local addresses | Not available to ordinary JavaScript |
WebRTC to uczciwy wyjątek od zasady „żadnych wycieków adresów lokalnych”. Jego zbieranie kandydatów kiedyś ujawniało adresy lokalne każdej stronie, która o to poprosiła, a poprawka polegała na zastąpieniu kandydatów hosta losowymi nazwami mDNS. To ustawienie domyślne obowiązuje w obecnych przeglądarkach, ale jest decyzją przeglądarki, a nie gwarancją protokołu, więc przestarzała wersja lub utwardzona konfiguracja, która ponownie włącza lokalnych kandydatów, nadal może przeciekać. Aktualizacja przeglądarki pomoże ci tu bardziej niż jakiekolwiek rozszerzenie.
Twój dostawca widzi nazwy, a nie zawartość
HTTPS chroni zawartość strony od końca do końca, a operator tunelu, który przekazuje te bajty, nie może ich odczytać. Operator nadal widzi, z jakim adresem się łączyłeś, a w większości wdrożeń także nazwę serwera w uścisku dłoni, bo nazwa musi być czytelna, aby połączenie trafiło do właściwej strony. Encrypted Client Hello istnieje właśnie po to, by ukryć to pole, i pomaga tylko wtedy, gdy wspierają je zarówno klient, jak i strona.
Rozwiązywanie nazw to druga połowa. Jeśli twój dostawca dostarcza też resolver, widzi każdą nazwę, której szukasz, zanim powstanie jakiekolwiek połączenie. Jeśli twoje urządzenie używa publicznego resolvera przez HTTPS, dostawca widzi połączenie z tym resolverem i nic więcej, a sam resolver widzi listę.
Niezaszyfrowane żądanie HTTP jest czytelne dla operatora z tego samego powodu, z którego jest czytelne dla sieci hotelowej: nic w nim nie jest zaszyfrowane. Tunel nigdy nie twierdził inaczej i nie naprawia wyboru aplikacji.
Oddziel „to VPN” od „to ja”
Wykrywanie jest tanie, probabilistyczne i często błędne. Współdzielone adresy wyjściowe są oznaczane, bo ktoś inny ich nadużył, zakresy korporacyjne są klasyfikowane jako hosting, a operatorzy komórkowi dają wyniki geograficzne, które wszystkich zaskakują. Identyfikacja to inny problem: wymaga trwałego powiązania, takiego jak konto, na które się zalogowałeś, plik cookie, dane płatności lub dwóch obserwatorów porównujących notatki.
Zdecyduj, z którym z nich naprawdę walczysz. Jeśli celem jest przeczytanie strony, HTTPS już wykonuje tę pracę, a tunel zmienia niewiele. Jeśli celem jest uniemożliwienie stronie wiedzy, w jakim mieście jesteś, liczą się wyjście i resolver. Jeśli celem jest zerwanie więzi z twoją prawdziwą tożsamością, słabym punktem jest konto, a zmiana serwerów nic nie robi z logowaniem, którego właśnie użyłeś.
Nowe wyjście nie wylogowuje cię z niczego i nie może usunąć tego, co strona już zapisała o użytym koncie. Praktyczna kolejność jest więc bez blasku: wybierz wyjście, którego sieć wygląda zwyczajnie, utrzymuj profil przeglądarki zgodny z nim, zaktualizuj przeglądarkę, aby funkcje podatne na wycieki używały nowoczesnych ustawień domyślnych, i zaakceptuj, że niewielka liczba stron nadal będzie się co do ciebie mylić.