Magazinul se încarcă bine acasă și afișează un zid de „trafic neobișnuit” în momentul în care tunelul se ridică. Un forum refuză să te autentifice, iar o pagină de streaming insistă că ești într-o țară pe care nu ai vizitat-o niciodată. Nimic din toate acestea nu necesită program spion. Un site vede adresa de la care sosesc pachetele tale, iar cu un VPN acea adresă aparține unui centru de date, nu unei linii de acasă. Cea mai mare parte din ce se numește detectarea VPN începe și se termină cu acel singur fapt, iar restul este inferență cu o rată de eroare previzibilă.

Blocarea începe de la locul de unde par să vină pachetele tale

Fiecare cerere poartă o adresă sursă, iar serverul care o primește o poate căuta în date publice: ce rețea o anunță, dacă acea rețea este un furnizor de găzduire, dacă a apărut în liste de abuz și ce țară îi atribuie registrul. Nimic din toate acestea nu te identifică, iar totul împreună este suficient ca să te încadreze într-o categorie.

Privește-ți propriul trafic așa cum ar face-o un străin. Două comenzi acoperă cea mai mare parte a suprafeței, iar a doua este cea pe care oamenii o uită:

curl -sS https://ipinfo.io/json
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com

Prima returnează adresa de ieșire, organizația și țara ei. A doua returnează adresa resolver-ului care a ajuns la serverul de nume al Google; aceasta aparține adesea unei alte rețele decât ieșirea ta și este adresa pe care un site o vede dacă înregistrează date pe partea resolver-ului. Când acestea două aparțin unor țări diferite, unele site-uri consideră discrepanța suspectă, chiar dacă nu este nimic greșit în configurația ta.

Când refuzul începe abia după ce tunelul se ridică, suspectează adresa de ieșire înainte de orice altceva. Schimbă serverul și încearcă din nou înainte de a atinge browserul. O blocare care te urmărește prin trei ieșiri ale aceluiași furnizor ține de intervalele furnizorului; o blocare care dispare pe alt server ține de acea singură adresă.

Fusul orar, limba și ceasul nu se potrivesc cu adresa

Codul paginii poate citi fusul tău orar, preferințele de limbă și setările ecranului fără nicio cerere de permisiune. Un browser care raportează ora Europei Centrale în timp ce conexiunea vine dintr-un centru de date din Singapore este un semnal mai puternic decât adresa singură, și exact acest tip de discrepanță este construită să observe evaluarea antifraudă.

Intl.DateTimeFormat().resolvedOptions().timeZone
navigator.language
Intl.DateTimeFormat().resolvedOptions().locale

Acele trei linii din consola dezvoltatorului îți spun ce oferă browserul tău voluntar. Un client VPN poate schimba ruta ta și nimic altceva, așa că profilul pe care îl porți rămâne autohton în timp ce ieșirea ta nu este. Consecvența este ceea ce contează aici: un laptop setat pe aceeași regiune ca ieșirea pare obișnuit, iar unul care se contrazice nu pare.

De aceea eșecul este intermitent. Multe site-uri nu le pasă, câteva îl punctează, iar un site de abonament decide că ești un escroc. Clientul funcționează corect în toate cele trei cazuri, și de aceea răspunsul obișnuit al suportului, „sigur este browserul tău”, este în același timp enervant și parțial adevărat.

Ce știe de fapt codul paginii despre mașina ta

JavaScript nu are niciun API care să enumere interfețele de rețea. O pagină nu poate întreba ce adrese are laptopul tău, așa că vechea afirmație că un script îți citește adresa LAN este mai ales o amintire din epoca pluginurilor, când controalele ActiveX, applet-urile Java și alt cod nativ puteau face exact asta.

SignalWhat it revealsStatus today
Source address of the requestExit network, country, hosting statusAlways visible; the main signal
Time zone and languageWhere the profile claims to beReadable without permission
WebRTC candidatesLocal addresses, historicallyHost candidates are mDNS-obfuscated by default
Interface listAll local addressesNot available to ordinary JavaScript

WebRTC este excepția onestă de la „nicio scurgere de adrese locale”. Colectarea candidaților săi expunea cândva adrese locale oricărei pagini care cerea, iar remedierea a fost înlocuirea candidaților de gazdă cu nume mDNS aleatorii. Acea valoare implicită este valabilă în browserele actuale, dar este o decizie a browserului, nu o garanție a protocolului, așa că o versiune învechită sau o configurație întărită care reactivează candidații locali poate încă scăpa. Actualizarea browserului te ajută aici mai mult decât orice extensie.

Furnizorul tău vede numele, nu conținutul

HTTPS protejează conținutul unei pagini de la un capăt la altul, iar operatorul tunelului care redirecționează acei octeți nu îi poate citi. Operatorul poate vedea în continuare la ce adresă ai apelat, iar în majoritatea implementărilor și numele serverului din handshake, deoarece numele trebuie să fie lizibil pentru ca conexiunea să fie direcționată către site-ul corect. Encrypted Client Hello există exact pentru a ascunde acel câmp și ajută doar când atât clientul, cât și site-ul îl acceptă.

Rezolvarea numelor este cealaltă jumătate. Dacă furnizorul tău oferă și resolver-ul, vede fiecare nume pe care îl cauți înainte să existe vreo conexiune. Dacă dispozitivul tău folosește un resolver public prin HTTPS, furnizorul vede o conexiune către acel resolver și nimic altceva, în timp ce resolver-ul însuși vede lista.

O cerere HTTP necifrată este lizibilă pentru operator din același motiv pentru care este lizibilă pentru rețeaua hotelului: nimic din ea nu este cifrat. Un tunel nu a susținut niciodată contrariul și nu repară alegerea aplicației.

Separă „acesta este un VPN” de „acesta sunt eu”

Detectarea este ieftină, probabilistică și adesea greșită. Adresele de ieșire partajate sunt marcate pentru că altcineva le-a abuzat, intervalele corporative sunt clasificate ca găzduire, iar operatorii mobili produc rezultate geografice care îi surprind pe toți. Identificarea este o altă problemă: are nevoie de o legătură persistentă precum un cont în care ai intrat, un cookie, un detaliu de plată sau doi observatori care compară notițe.

Decide împotriva căruia dintre ele lupți de fapt. Dacă scopul este să citești o pagină, HTTPS face deja acea muncă, iar tunelul schimbă puțin. Dacă scopul este să împiedici site-ul să știe în ce oraș ești, ieșirea și resolver-ul sunt cele care contează. Dacă scopul este să rupi legătura cu identitatea ta reală, contul este punctul slab, iar schimbarea serverelor nu face nimic pentru autentificarea pe care tocmai ai folosit-o.

O ieșire nouă nu te deconectează de nicăieri și nu poate șterge ce a stocat deja un site despre contul pe care l-ai folosit. Prin urmare, ordinea practică este lipsită de fast: alege o ieșire a cărei rețea pare obișnuită, menține profilul browserului consecvent cu ea, actualizează browserul pentru ca funcțiile predispuse la scurgeri să folosească valorile implicite moderne și acceptă că un număr mic de site-uri vor ghici în continuare greșit despre tine.

Articole similare