Ką WebRTC kandidatų sąrašas atskleidžia apie jūsų VPN
Prieglobos, serverio atspindžio ar relės kandidatas nurodo, iš kur atsirado adresas. Tik pasirinkta ICE pora nurodo, kurį kelią medija iš tikrųjų naudojo.
Kai WebRTC testo puslapis išspausdina 172.20.4.15, jis sužinojo, kad tame tinkle yra vietinė sąsaja. Tai tikras atskleidimas, ir tai nėra ta pati išvada kaip „medija išėjo per VPN išėjimą“. Kandidatų aptikimas ir paketų maršrutizavimas yra atskiri mechanizmai, o dauguma nutekėjimo ataskaitų juos sulieja į vieną nuosprendį. Kurią iš dviejų matote, lemia sprendimą.
Rinkimas vyksta prieš ką nors siunčiant
Naršyklė išvardija vietines sąsajas, siunčia prisijungimo užklausą STUN serveriui ir prašo TURN serverio paskyrimo, tada rezultatus įrašo sesijos apraše kaip kandidatų eilutes. Visa tai baigiasi be skambučio, be medijos ir be pašnekovo. Todėl kandidatų sąrašas yra aptikimo, o ne perdavimo įrašas.
Šiuolaikinės naršyklės gali pakeisti prieglobos kandidato tiesioginį adresą mDNS vardu .local, todėl puslapis negali perskaityti privataus IP. Vietinis tinklas vis dar mato daugiaadreses užklausas, kurios išsprendžia tą vardą, taigi adresas slepiamas nuo programos, o ne pašalinamas iš tinklo.
Tvarka taip pat svarbi: naujas puslapio įkėlimas surenka naują rinkinį, su kitu TURN paskyrimu ir galbūt kita atspindžio schema. Du nesutariantys paleidimai nebūtinai yra dvi skirtingos konfigūracijos.
Trys kandidatų tipai, trys įrodymų rūšys
Kiekviena eilutė kyla iš skirtingo stebėjimo. Kiekvienas tipas atsako į skirtingą klausimą, o lentelė juos skiria pagal tai, ką jie gali ir ko negali nustatyti.
| 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 |
Relės kandidatas dažnai painiojamas su naudotojo interneto adresu. Jis priklauso TURN serveriui, ir jo buvimas rodo, kad relė buvo prieinama, o ne kad naršyklė ją pasirinko. Ta pati painiava eina priešinga kryptimi su prieglobos kandidatais, kur mDNS vardas slepia adresą nuo puslapio, o tinklas vis dar perduoda užklausas. Skaitykite tipą prieš skaitydami reikšmę.
Pasirinkta pora atsako į maršrutizavimo klausimą
ICE suporuoja kiekvieną vietinį kandidatą su kiekvienu nuotoliniu, atlieka ryšio patikras kiekvienai porai ir nominuoja nugalėtoją. Ta nominuota pora, matoma pačios naršyklės diagnostikoje, perduoda mediją. Viskas kita sąraše yra pralaimėjusi galimybė.
Nugalėtojas pasako kelio formą. Relė į relę eina per TURN serverį, prieglobos pora lieka vietiniame tinkle, o serverio atspindžio pora eina tiesiai per NAT. Tai faktas, kurio reikia VPN patikrai, ir tai kitas faktas nei adresų sąrašas. Du skambučiai su identiškais kandidatų sąrašais gali naudoti skirtingas poras.
Nepasirinkti kandidatai vis tiek buvo surinkti, o rinkimas yra tinklo srautas, paliekantis įrenginį. Skambutis, kuris galiausiai naudojo relę, nereiškia, kad kuriant sąrašą nieko nebuvo atskleista.
Valdikliai atitinka tikslus, o ne nutekėjimo balą
WebRTC IP tvarkymo specifikacija aprašo kelias politikas: naudoti tik sąsają, kuri neša numatytąjį maršrutą, naudoti visas sąsajas ir išjungti neproksišką UDP, kad srautas turėtų eiti per relę arba proksį. Kiekviena keičia ryšį ir delsą į kitokią ekspoziciją. Kurią naršyklė įgyvendina ir kokiu pavadinimu, skiriasi pagal platformą ir versiją.
Politiką rinkitės pagal tikslą. Vietinių adresų slėpimas nuo puslapio yra vienas tikslas; tiesioginio lygiaverčių tarpusavio srauto prevencija yra kitas; kiekvieno paketo laikymas tunelio viduje yra trečias. Pirmasis daugiausia apie tai, ką sužino programa, antrasis apie tai, kuris kelias leidžiamas, o trečiasis turi būti užtikrinamas ir platformos ar VPN riboje.
Kad ir kokį valdiklį pasirinktumėte, patikrinkite abi puses: paleiskite rinkimo testą ir užsirašykite kandidatų tipus, tada tikros sesijos metu apžiūrėkite pasirinktą porą. Švarus adresų sąrašas su tiesioginiu medijos keliu vis tiek yra kelias, kurio nenorėjote.