Когда вы включаете VPN, сайты должны видеть адрес VPN-сервера, а не ваш. Чаще всего именно так и происходит. Но проверить всё же стоит: в браузерах есть одна функция, WebRTC, которая может раскрывать сетевые адреса там, где этого не ждёшь.
В этом руководстве мы расскажем, что такое IP-адрес, что он говорит о вас, как возникает утечка через WebRTC и как шаг за шагом проверить собственную конфигурацию.
Что раскрывает ваш IP-адрес
IP-адрес — это число, которое идентифицирует ваше подключение в интернете. Вам встретятся два вида адресов:
- Публичный IP-адрес. Адрес, который видит весь остальной интернет. Дома он обычно принадлежит вашему роутеру и выдаётся интернет-провайдером. В мобильной сети он принадлежит сети оператора связи.
- Локальный (частный) IP-адрес. Адрес вашего устройства внутри домашней или офисной сети, например начинающийся с 192.168 или 10. Из интернета он недоступен, но всё равно может помочь составить цифровой отпечаток устройства.
Публичный IP не сообщает сайту ваше имя или домашний адрес, но обычно указывает на провайдера и примерное местоположение — часто город или регион. Сайты могут использовать его, чтобы оценить, где вы находитесь, а вместе с cookie и другими сигналами он становится частью профиля.
Шаг 1. Проверьте свой публичный IP
Откройте наш инструмент Какой у меня IP. Он показывает публичный IP-адрес, с которого подключается ваш браузер, а также связанные с ним примерное местоположение и владельца сети. Кроме того, он показывает простой статус:
- Защищено — ваш трафик приходит с сервера VPNRice.
- Открыто — сайт видит адрес, который не принадлежит серверу VPNRice; обычно это ваше реальное подключение.
Сделайте проверку дважды: один раз с выключенным VPN и один раз с включённым. Запишите или запомните первый адрес. При включённом VPN адрес и местоположение должны смениться на адрес и местоположение VPN-сервера.
Если вам нужны сведения о любом другом адресе, например найденном в лог-файле, воспользуйтесь инструментом Поиск по IP. Он показывает страну, регион и сеть, за которыми зарегистрирован этот адрес. Данные о местоположении предоставляет DB-IP, и они по своей природе приблизительны.
Шаг 2. Разберитесь, что такое WebRTC
WebRTC — это браузерная технология, на которой работают видеозвонки, голосовые чаты и часть обмена файлами прямо на веб-странице. Чтобы эффективно соединить двух собеседников, WebRTC пытается найти между ними кратчайший сетевой путь. Используемый для этого процесс называется ICE и описан в RFC 8445.
ICE собирает «кандидатов» — возможные адреса, по которым можно достучаться до вашего устройства. В документации MDN по интерфейсу RTCIceCandidate перечислены основные типы:
- Host-кандидаты — собственные адреса устройства на его сетевых интерфейсах.
- Server reflexive-кандидаты — ваш публичный адрес в том виде, в каком его видит STUN-сервер. STUN, описанный в RFC 8489, — простой протокол, который сообщает устройству, с каким адресом оно выглядит снаружи.
- Relay-кандидаты — адреса на ретрансляционном сервере, который пересылает трафик, когда прямой путь невозможен.
Веб-страница может попросить браузер собрать этих кандидатов, а JavaScript на этой странице может их прочитать. В этом и кроется суть проблемы: если браузер включит в список адрес, который не проходит через ваш VPN, страница сможет его узнать.
Как выглядит утечка через WebRTC
Утечка происходит, когда кандидат WebRTC показывает адрес, который вы считали скрытым. Типичные случаи:
- Ваш реальный публичный IP появляется среди кандидатов при включённом VPN. Так бывает, если браузер отправляет STUN-запрос по сетевому пути вне туннеля или если трафик IPv6 не защищён, а IPv4 защищён.
- Раскрывается ваш локальный IP-адрес. Это менее серьёзно, но всё равно добавляет информации для цифрового отпечатка.
IETF описал, как должны вести себя браузеры. RFC 8828 определяет четыре режима обработки IP-адресов в WebRTC: от перечисления всех адресов (режим 1) до принудительной отправки всего трафика через прокси (режим 4). Согласно документу, режим 1 нельзя использовать без согласия пользователя, а без такого согласия браузерам следует использовать режим 2, при котором раскрываются только адреса маршрута по умолчанию. Многие современные браузеры также заменяют локальные адреса случайными именами, оканчивающимися на «.local», поэтому страницы видят заглушку вместо частного адреса.
На практике это значит, что правильно работающий VPN для всей системы обычно предотвращает утечки, потому что маршрут по умолчанию проходит через туннель. Проблемы, как правило, возникают из-за раздельной маршрутизации, прокси только для браузера или необработанного IPv6.
Шаг 3. Запустите тест утечки WebRTC
Откройте наш тест утечки WebRTC. Тест работает в вашем браузере: в течение нескольких секунд он просит браузер собрать ICE-кандидатов и показывает все найденные адреса. Затем он сравнивает их с публичным адресом, который использует ваше подключение. Тест не обращается ни к каким сторонним STUN-серверам, поэтому показывает только host-кандидатов (часто скрытых под именами .local). Это значит, что он может выявить раскрытие локального адреса, но не способен обнаружить утечку публичного IP через STUN-запрос.
Запустите его с включённым VPN и читайте результаты так:
- Появляется только адрес VPN-сервера или публичных адресов нет вовсе. Утечки нет.
- Появляется имя «.local». Это браузер скрывает ваш локальный адрес. Это не утечка.
- Появляется публичный адрес, который не принадлежит VPN-серверу. Считайте это раскрытием адреса.
- Появляется частный адрес вида 192.168.x.x. Незначительное раскрытие. Обратите внимание на настройки браузера ниже.
Как устранить утечку
Пробуйте эти шаги по порядку и после каждого проверяйте снова:
- Используйте VPN-приложение для всей системы, а не прокси только для браузера. Браузерные расширения, работающие как прокси, отправляют веб-запросы через другой сервер, но трафик WebRTC не всегда следует настройкам прокси. Полноценное VPN-приложение направляет маршрут по умолчанию через туннель. Так работают приложения VPNRice для Android, iPhone и iPad, а также Windows; расширения для Chrome и Firefox — это браузерные прокси, которые направляют трафик вашего браузера через серверы VPNRice (сами они не добавляют шифрования; сайты, открытые по HTTPS, по-прежнему защищены сквозным шифрованием).
- Переподключите VPN и перезагрузите страницу. Кандидаты собираются в момент, когда страница их запрашивает, поэтому страница, загруженная до подключения VPN, может показывать устаревшие результаты.
- Проверьте IPv6. Если в вашей сети есть IPv6 и утечка показывает IPv6-адрес, убедитесь, что VPN его охватывает, или проведите тест в сети без IPv6, чтобы подтвердить причину.
- Включите Kill-switch. Kill-switch не даёт трафику покидать устройство мимо туннеля. На Android Kill-switch VPNRice опирается на системную настройку «Постоянная VPN» вместе с параметром, который не пропускает подключения без VPN.
- Ограничьте WebRTC в браузере. В некоторых браузерах есть настройки или политики, ограничивающие сетевые интерфейсы, которые может использовать WebRTC. Пользователи Firefox могут изменить параметры WebRTC на странице about:config. Полное отключение WebRTC нарушит работу видеозвонков в браузере, поэтому прибегайте к нему только в крайнем случае.
Краткий чек-лист
- Проверьте IP с выключенным, а затем с включённым VPN. Адрес должен смениться.
- Найдите статус «Защищено» на странице Какой у меня IP.
- Запустите тест утечки WebRTC с включённым VPN.
- Повторяйте проверку после обновлений браузера или при смене сети.
- Пользуйтесь инструментом Поиск по IP, когда хотите разобраться в незнакомом адресе.
Эти тесты занимают меньше минуты и показывают главное, что раскрывает ваше подключение. Инструменты VPNRice работают в вашем браузере или на собственном сервисе VPNRice, без сторонних трекеров и cookie.
Если вам нужен VPN, который защищает всё устройство, а не только браузер, скачайте VPNRice и повторите тесты с включённым VPN.