WebRTC позволяет раскрыть локальный IP-адрес
30 января 2015 года

Как сообщает online-издание I Programmer, поддерживаемая браузерами Firefox и Chromium технология WebRTC, которая позволяет осуществлять аудио- и видеозвонки непосредственно из браузера, имеет существенный недостаток.
Практически все внутренние сети используют приватные или локальные IP-адреса, которые не могут применяться в открытом интернете. Когда система подключается к глобальной Сети, она использует публичный IP-адрес, «видимый» для других систем. Тем не менее, WebRTC позволяет раскрыть локальный IP-адрес.
Для осуществления аудио- и видеозвонков из браузера с помощью WebRTC создается пиринговая сеть без промежуточного сервера. Для этого системам необходимо обменяться как публичными, так и локальными IP-адресами. Узнать свой публичный IP-адрес машине помогает протокол STUN. Это происходит следующим образом: система отправляет на STUN-сервер UDP-пакет, а сервер возвращает пакет, содержащий открытый IP-адрес.
WebRTC допускает отправку запросов к STUN-серверам, которые возвращают как публичный, так и локальный IP-адрес. Поскольку подобные запросы можно осуществлять с помощью скрипта, IP-адреса отображаются средствами JavaScript. При этом не используется XMLHttpRequest, и запросы не видны из консоли разработчика. Кроме того, они не поддаются блокировке с помощью AdBlock Plus, Ghostery и т. п.
Отметим, что эти запросы могут использоваться в разных целях, в том числе рекламодателями для отслеживания пользователей. Избежать этого можно, либо установив соответствующие настройки браузера, либо с помощью расширений, которые запрещают выполнение скриптов.
Отключить функцию в Firefox можно в about: config, установив переменную media.peerconnection.enabled в «false»[1].
Ссылки
- Демонстрация:
- net.ipcalf.com (код).
- dl.dropboxusercontent.com/u/1878671/enumhosts.html (Архивная копия от 14 декабря 2014 на Wayback Machine) (код).
Примечания
Источники
- Bugzilla@Mozilla: Bug 959893 — WebRTC Internal IP Address Leakage.
