
Чому проксі може розкрити IP: перевірка та захист WebRTC
Звичайна перевірка показує проксі, а WebRTC-тест — інший IP або .local. Це не доводить витік без типу ICE-кандидата й фактичного маршруту.
HTTP-проксі часто переносить лише вебзапити. WebRTC збирає кандидати з локальних інтерфейсів, STUN і TURN через UDP або TCP. Якщо UDP чи IPv6 не проходить через проксі, STUN може побачити публічне відображення вихідної мережі.
| Тип | Значення |
|---|---|
host | Локальна, приватна, IPv6 або mDNS-адреса; сама не доводить публічний витік |
srflx | NAT-відображення від STUN; вихідний IP провайдера тут — сильний доказ |
prflx | Кандидат, знайдений під час перевірки з'єднання |
relay | Адреса TURN, а не кінцевого пристрою |
W3C описує ризики розкриття адрес у розділі про IP.
Перевірка та захист
Запишіть вихідні IPv4/IPv6, увімкніть проксі, перезапустіть профіль і перевірте HTTP, DNS та обидва протоколи. Зберіть type, protocol і адресу кожного кандидата та порівняйте з проксі, ISP і TURN. srflx з вихідним ISP IP — ризик; private або .local потребує контексту; relay означає TURN. Див. типи ICE.
Використовуйте тунель, що явно обробляє потрібні UDP та IPv6, перевірте split tunneling і за можливості заблокуйте непроксований UDP. Вимкнення WebRTC порушить відеозв'язок. Розробники можуть використовувати relay-only TURN, але з додатковою затримкою та вартістю.
PurpleMark має Forward, Replace, Real, Disable і Proxy UDP. Replace узгоджує IPv4 з проксі; Real залишає справжні дані; Disable блокує читання; Proxy UDP потребує Patch 2.8.2.0+; Forward зберігає налаштовану функціональність. Кожен режим тестуйте в реальній мережі.
Висновок
Другий адрес не дорівнює витоку. Потрібні тип кандидата й зіставлення з вихідною мережею та проксі. PurpleMark ізолює дозволені середовища, але не замінює перевірку й правила платформ.