Што спіс кандыдатаў WebRTC выдае пра ваш VPN
Кандыдат хоста, серверна-рэфлексіўны або рэлейны кандыдат паказвае, адкуль узяўся адрас. Толькі выбраная пара ICE кажа, які шлях медыяфайлы фактычна выкарысталі.
Калі тэставая старонка WebRTC друкуе 172.20.4.15, яна даведалася, што ў гэтай сетцы існуе лакальны інтэрфейс. Гэта сапраўднае раскрыццё, і гэта не той жа выснова, што «медыя выйшлі праз выйсце VPN». Выяўленне кандыдатаў і маршрутызацыя пакетаў — розныя механізмы, а большасць справаздач пра ўцечкі злівае іх у адзін вердыкт. Якая з двух перад вамі — гэта і вызначае рашэнне.
Збор ідзе да таго, як нешта будзе адпраўлена
Браўзер пералічвае лакальныя інтэрфейсы, адпраўляе запыт прывязкі да сервера STUN і просіць у сервера TURN выдзяленне, затым запісвае вынікі ў апісанне сесіі як радкі кандыдатаў. Усё гэта завяршаецца без званка, без медыя і без суразмоўцы. Таму спіс кандыдатаў — гэта запіс выяўлення, а не перадачы.
Сучасныя браўзеры могуць замяніць літаральны адрас кандыдата хоста на mDNS-імя .local, таму старонка не можа прачытаць прыватны IP. Лакальная сетка ўсё яшчэ бачыць multicast-запыты, якія развязаюць гэтае імя, значыць адрас хаваецца ад праграмы, а не выдаляецца з сеткі.
Парадак таксама важны: новая загрузка старонкі збірае новы набор, з іншым выдзяленнем TURN і, магчыма, іншым рэфлексіўным адлюстраваннем. Два запускі, што разыходзяцца, не абавязкова дзве розныя канфігурацыі.
Тры тыпы кандыдатаў, тры віды доказаў
Кожны радок паходзіць з іншага назірання. Кожны тып адказвае на іншае пытанне, а табліца раздзяляе іх па тым, што яны могуць і не могуць устанавіць.
| Candidate | Derived from | What it establishes | What it cannot establish |
|---|---|---|---|
| Host | An interface on the device | A local address exists in that network | That the peer can reach it |
| Server-reflexive | A STUN binding response | How a NAT mapped this source | Which exit the media will use |
| Peer-reflexive | A connectivity check that arrived | An address seen by the far side | That it was ever advertised |
| Relay | A TURN allocation | The relay server accepted the session | That the relay carries the call |
Рэлейны кандыдат звычайна блытаюць з інтэрнэт-адрасам карыстальніка. Ён належыць серверу TURN, і яго наяўнасць паказвае, што рэлей быў даступны, а не што браўзер выбраў яго. Тое ж непаразуменне працуе ў адваротны бок з кандыдатамі хоста: mDNS-імя хавае адрас ад старонкі, а сетка ўсё яшчэ пераносіць запыты. Чытайце тып раней, чым чытаць значэнне.
Выбраная пара адказвае на пытанне маршрутызацыі
ICE спароўвае кожнага лакальнага кандыдата з кожным аддаленым, праводзіць праверкі злучэння па кожнай пары і вылучае пераможцу. Гэтая вылучаная пара, бачная ў дыягностыцы самога браўзера, і пераносіць медыя. Усё астатняе ў спісе — магчымасць, якая прайграла.
Пераможца кажа вам пра форму шляху. Рэлей-да-рэлея ідзе праз сервер TURN, пара хостаў застаецца ў лакальнай сетцы, а серверна-рэфлексіўная пара ідзе наўпрост праз NAT. Гэта і ёсць факт, патрэбны праверцы VPN, і ён адрозны ад спіса адрасоў. Два званкі з аднолькавымі спісамі кандыдатаў могуць выбраць розныя пары.
Нявыбраныя кандыдаты ўсё роўна былі сабраныя, а збор — гэта сеткавы трафік, што пакідае машыну. Званок, які ўрэшце выкарыстаў рэлей, не азначае, што падчас пабудовы спіса нічога не было раскрыта.
Кіраванне адпавядае мэтам, а не балу ўцечкі
Спецыфікацыя WebRTC па апрацоўцы IP апісвае некалькі палітык: выкарыстоўваць толькі інтэрфейс, што нясе маршрут па змаўчанні; выкарыстоўваць усе інтэрфейсы; і адключыць UDP без проксі, каб трафік мусіў ісці праз рэлей або проксі. Кожная абменьвае злучанасць і затрымку на іншы від уздзеяння. Якую палітыку і пад якой назвай рэалізуе браўзер — залежыць ад платформы і версіі.
Выбірайце палітыку зыходзячы з мэты. Схаваць лакальныя адрасы ад старонкі — адна мэта; прадухіліць прамы трафік паміж камп’ютарамі — другая; трымаць кожны пакет унутры тунэля — трэцяя. Першая пераважна пра тое, што даведваецца праграма, другая — пра тое, які шлях дазволены, а трэцюю трэба забяспечваць і на мяжы платформы або VPN.
Якое б кіраванне вы ні абралі, праверце абедзве паловы: запусціце тэст збору і занатуйце тыпы кандыдатаў, потым агледзьце выбраную пару падчас рэальнай сесіі. Чысты спіс адрасоў з прамым шляхам медыя — гэта ўсё яшчэ шлях, якога вы не хацелі.