Руководства

Утечка WebRTC: как браузер может выдать ваш настоящий IP

Как WebRTC в браузере может раскрыть ваш реальный IP-адрес несмотря на VPN, как проверить это тестом Colitu и как безопасно закрыть эту лазейку.

Вы включили VPN, сайт показывает страну сервера, всё выглядит правильно. И всё же одна функция браузера может передать сайту ваш настоящий IP-адрес — это WebRTC. Она затрагивает не каждую конфигурацию, проверяется за минуту, а если понять, как она устроена, легко исправляется.

Что такое WebRTC

WebRTC — технология, на которой работают видеозвонки, демонстрация экрана и передача файлов прямо в браузере, без плагинов. Чтобы соединить двух людей как можно напрямую, браузер собирает возможные сетевые пути — так называемых ICE-кандидатов:

  • host — собственные локальные адреса устройства;
  • server-reflexive — ваш публичный адрес, каким его видит интернет; браузер узнаёт его, обращаясь к STUN-серверу;
  • relay — адрес на ретрансляционном TURN-сервере, если прямой путь не работает.

Веб-страница может запустить этот процесс несколькими строками JavaScript, а для базового канала данных браузер разрешения не спрашивает.

Как возникает утечка

STUN-запрос — это небольшой UDP-пакет. Пойдёт ли он через VPN, зависит от того, как VPN подключён к системе:

  • VPN на всё устройство (TUN или системная VPN-служба). Весь трафик, включая UDP, попадает в туннель. STUN-сервер видит адрес VPN-сервера, и именно его узнаёт страница. Утечки нет.
  • Только прокси. Браузер отправляет веб-страницы через прокси, но UDP-запрос WebRTC может уйти напрямую. Тогда STUN-сервер видит ваш реальный публичный адрес, и страница может его прочитать.

Так что утечка — не ошибка WebRTC: браузер честно сообщает, каким путём идёт его UDP-трафик.

Что утечкой не является

Современные браузеры прячут ваш адрес в локальной сети за случайным именем, оканчивающимся на .local (mDNS-имя). Если тест показывает такое имя, это нормально и безопасно. Частные адреса вроде 192.168.x.x тоже не идентифицируют вас в интернете, хотя браузеры, заботящиеся о приватности, стараются скрывать и их.

Проверка с Colitu

Наш тест утечки WebRTC просит браузер собрать кандидатов через публичный STUN-сервер Cloudflare (stun.cloudflare.com) и сравнивает найденные адреса с тем, который видят сайты. Результат оценивается только в вашем браузере.

  1. Выключите VPN и запустите тест. Запомните публичный адрес — это ваш настоящий.
  2. Включите VPN, дождитесь статуса «Подключено» и перезагрузите страницу теста.
  3. Сравните. Каждый публичный адрес, который находит WebRTC, теперь должен быть адресом сервера — тем же, что видят сайты.
  4. Если ваш настоящий адрес из шага 1 всё ещё виден, WebRTC протекает.

Чтобы проверить IP, DNS и WebRTC сразу, воспользуйтесь проверкой VPN-соединения. Про DNS отдельно — в статье утечка DNS.

Как это исправить

Windows: включите режим TUN. Colitu для Windows по умолчанию работает в режиме системного прокси. В режиме TUN весь трафик, включая UDP, идёт через туннель, и WebRTC видит адрес сервера. Включите его в настройках приложения и повторите тест.

Android и iOS. Там Colitu работает как VPN для всего устройства (VPN-служба Android, packet tunnel в iOS), поэтому трафик WebRTC тоже идёт через туннель.

Linux (бета). Как и на Windows, используйте режим TUN; он запрашивает sudo.

Настройки браузера — если нужен дополнительный уровень защиты или режим TUN недоступен:

  • Firefox: откройте about:config и установите media.peerconnection.enabled в значение false — WebRTC отключится полностью.
  • Браузеры на Chromium: простого встроенного переключателя нет; расширения, ограничивающие сетевое поведение WebRTC, могут сократить список раскрываемых адресов.

Помните: отключённый WebRTC ломает видеозвонки в браузере, например веб-версии сервисов для встреч. В режиме TUN обычно ничем жертвовать не приходится.

Два частых вопроса

Утечка значит, что мой трафик не зашифрован? Нет. Сёрфинг по-прежнему идёт через туннель. Утечка WebRTC раскрывает ваш IP-адрес странице, которая его запросила, — это важно, если вы пользуетесь VPN, чтобы сайты не определяли ваше местоположение.

Приложения тоже так протекают? Тест проверяет браузер. Десктопные приложения для звонков используют собственный сетевой стек; в режиме системного прокси на Windows некоторые из них могут вообще идти мимо VPN, и это тоже решает режим TUN.

Сделайте проверку привычкой

Утечки обычно возвращаются, когда что-то меняется. Повторяйте тест после того, как вы:

  • переключили Colitu на Windows между режимом системного прокси и TUN;
  • установили новый браузер или расширение для приватности либо «VPN-расширение»;
  • поставили другой VPN, «защищённое соединение» антивируса или игровой «ускоритель»;
  • обновили операционную систему или перешли на новый компьютер.

Шпаргалка

Что показывает тест при включённом VPNЧто это значитЧто делать
Только адрес сервераУтечки нетНичего
Имя на .localСкрытый локальный адресНичего
Ваш реальный публичный адресУтечка WebRTCРежим TUN на Windows или Linux
Ваш реальный адрес на телефонеНетипичноПереподключиться, закрыть другие VPN, написать в поддержку

Подробнее в справочном центре: проверки подключения и руководство по Windows.

Источники