Сайт блокує вас лише з увімкненим VPN? Ось що він бачить
Блокування зазвичай пов'язане з адресою виходу, а не з витоком. Перевірте мережу, з якої нібито надходить ваш трафік, резолвер, який сайт може логувати, і що знає код сторінки.
Магазин нормально завантажується вдома і показує стіну «незвичайного трафіку» тієї миті, коли тунель піднімається. Форум відмовляється впускати вас, а сторінка стрімінгу наполягає, що ви в країні, де ніколи не були. Ніщо з цього не потребує шпигунського програмного забезпечення. Сайт бачить адресу, з якої приходять ваші пакети, а з VPN ця адреса належить дата-центру, а не домашній лінії. Більшість того, що називають виявленням VPN, починається і закінчується цим одним фактом, а решта — висновок із передбачуваною частотою помилок.
Блокування починається з того, звідки нібито надходять ваші пакети
Кожен запит несе адресу джерела, і сервер, що його отримує, може перевірити її у відкритих даних: яка мережа її анонсує, чи є ця мережа хостинг-провайдером, чи потрапляла вона до списків зловживань і яку країну їй призначає реєстр. Ніщо з цього вас не ідентифікує, і всього разом достатньо, щоб віднести вас до категорії.
Погляньте на свій трафік очима стороннього. Дві команди покривають більшу частину поверхні, і друга — та, яку люди забувають:
curl -sS https://ipinfo.io/json
dig +short TXT o-o.myaddr.l.google.com @ns1.google.com
Перша повертає адресу виходу, її організацію та країну. Друга повертає адресу резолвера, який дістався сервера імен Google; вона часто належить іншій мережі, ніж ваш вихід, і це адреса, яку бачить сайт, якщо логує дані на боці резолвера. Коли ці дві належать різним країнам, деякі сайти вважають розбіжність підозрілою, навіть якщо з вашим налаштуванням усе гаразд.
Коли відмова починається лише після підняття тунелю, підозрюйте насамперед адресу виходу. Змініть сервер і спробуйте ще раз, перш ніж торкатися браузера. Блокування, яке йде за вами через три виходи одного провайдера, стосується діапазонів провайдера; блокування, яке зникає на іншому сервері, стосується тієї однієї адреси.
Часовий пояс, мова та годинник не збігаються з адресою
Код сторінки може прочитати ваш часовий пояс, мовні налаштування та параметри екрана без жодного запиту дозволу. Браузер, що повідомляє центральноєвропейський час, коли з'єднання надходить із дата-центру в Сінгапурі, — сильніший сигнал, ніж сама адреса, і саме таку розбіжність система оцінки шахрайства створена помічати.
Intl.DateTimeFormat().resolvedOptions().timeZone
navigator.language
Intl.DateTimeFormat().resolvedOptions().locale
Ті три рядки в консолі розробника кажуть, що ваш браузер віддає добровільно. Клієнт VPN може змінити ваш маршрут і більше нічого, тож профіль, який ви носите, залишається домашнім, а вихід — ні. Тут важлива послідовність: ноутбук, налаштований на той самий регіон, що й вихід, виглядає звичайно, а той, що суперечить сам собі, — ні.
Саме тому збій періодичний. Багатьом сайтам байдуже, кілька його оцінюють, а один членський сайт вирішує, що ви шахрай. Клієнт у всіх трьох випадках працює правильно, і тому звичайна відповідь підтримки, «це точно ваш браузер», водночас дратує і частково правдива.
Що код сторінки насправді знає про вашу машину
У JavaScript немає API, який перелічує мережеві інтерфейси. Сторінка не може запитати, які адреси має ваш ноутбук, тому старе твердження, що скрипт читає вашу LAN-адресу, — здебільшого спогад про епоху плагінів, коли елементи ActiveX, аплети Java та інший нативний код могли робити саме це.
| 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 — чесний виняток із правила «жодних витоків локальних адрес». Збирання його кандидатів колись розкривало локальні адреси кожній сторінці, яка просила, і виправленням стала заміна хостових кандидатів випадковими іменами mDNS. Це стандартне налаштування діє в поточних браузерах, але це рішення браузера, а не гарантія протоколу, тому застаріла збірка або посилена конфігурація, яка знову вмикає локальних кандидатів, усе ще може протікати. Оновлення браузера допомагає вам тут більше, ніж будь-яке розширення.
Ваш провайдер бачить імена, а не вміст
HTTPS захищає вміст сторінки від краю до краю, і оператор тунелю, який передає ці байти, не може їх прочитати. Оператор усе ще бачить, до якої адреси ви зверталися, а в більшості розгортань і ім'я сервера в рукостисканні, бо ім'я має бути читабельним, щоб з'єднання спрямовувалося на потрібний сайт. Encrypted Client Hello існує саме для того, щоб приховати це поле, і допомагає лише тоді, коли його підтримують і клієнт, і сайт.
Розв'язання імен — це друга половина. Якщо ваш провайдер також надає резолвер, він бачить кожне ім'я, яке ви шукаєте, ще до появи з'єднання. Якщо ваш пристрій використовує публічний резолвер через HTTPS, провайдер бачить з'єднання з цим резолвером і більше нічого, а список бачить сам резолвер.
Незашифрований HTTP-запит читається оператором з тієї ж причини, з якої він читається мережею готелю: ніщо в ньому не зашифроване. Тунель ніколи не стверджував протилежного і не виправляє вибір застосунку.
Відокремте «це VPN» від «це я»
Виявлення дешеве, імовірнісне й часто помилкове. Спільні адреси виходу позначаються, бо хтось інший зловживав ними, корпоративні діапазони класифікуються як хостинг, а мобільні оператори видають географічні результати, що дивують усіх. Ідентифікація — інша проблема: їй потрібен постійний зв'язок, наприклад обліковий запис, у який ви ввійшли, cookie, платіжні дані або двоє спостерігачів, які порівнюють нотатки.
Вирішіть, з чим ви насправді боретеся. Якщо мета — прочитати сторінку, HTTPS уже виконує цю роботу, і тунель мало що змінює. Якщо мета — не дати сайту дізнатися, у якому ви місті, важливі вихід і резолвер. Якщо мета — розірвати зв'язок із вашою справжньою особистістю, слабке місце — обліковий запис, і зміна серверів нічого не робить із входом, який ви щойно використали.
Новий вихід нізвідки вас не виводить і не може стерти те, що сайт уже зберіг про використаний обліковий запис. Тому практична послідовність позбавлена блиску: виберіть вихід, чия мережа виглядає звичайно, тримайте профіль браузера узгодженим із ним, оновіть браузер, щоб схильні до витоків функції використовували сучасні стандартні значення, і прийміть, що невелика кількість сайтів усе одно помилятиметься щодо вас.