Keď testovacia stránka WebRTC vypíše 172.20.4.15, zistila, že v tejto sieti existuje lokálne rozhranie. To je skutočné odhalenie a nie je to ten istý záver ako „médiá odišli cez výstup VPN“. Zisťovanie kandidátov a smerovanie paketov sú oddelené mechanizmy a väčšina správ o úniku ich spája do jedného verdiktu. Ktorý z nich vidíte, rozhoduje o oprave.

Zhromažďovanie prebieha predtým, než sa čokoľvek odošle

Prehliadač vypíše lokálne rozhrania, pošle požiadavku na pripútanie na server STUN a požiada server TURN o alokáciu, potom výsledky zapíše do opisu relácie ako riadky kandidátov. To všetko sa dokončí bez hovoru, bez médií a bez protistrany. Zoznam kandidátov je teda záznamom zisťovania, nie prenosu.

Moderné prehliadače môžu nahradiť doslovnú adresu kandidáta host menom mDNS .local, takže stránka nemôže prečítať privátnu IP. Lokálna sieť však stále vidí multicastové otázky, ktoré to meno prekladajú, takže adresa je skrytá aplikácii, nie odstránená zo siete.

Záleží aj na poradí: nové načítanie stránky zhromaždí novú sadu, s inou alokáciou TURN a možno iným reflexným mapovaním. Dva rôzne behy nemusia byť dve rôzne konfigurácie.

Tri typy kandidátov, tri druhy dôkazov

Každý riadok vychádza z iného pozorovania. Každý typ odpovedá na inú otázku a tabuľka ich oddeľuje podľa toho, čo môžu a čo nemôžu preukázať.

CandidateDerived fromWhat it establishesWhat it cannot establish
HostAn interface on the deviceA local address exists in that networkThat the peer can reach it
Server-reflexiveA STUN binding responseHow a NAT mapped this sourceWhich exit the media will use
Peer-reflexiveA connectivity check that arrivedAn address seen by the far sideThat it was ever advertised
RelayA TURN allocationThe relay server accepted the sessionThat the relay carries the call

Relay kandidát sa bežne zamieňa s internetovou adresou používateľa. Patrí serveru TURN a jeho prítomnosť ukazuje, že relay bol k dispozícii, nie že si ho prehliadač vybral. Rovnaká zámena ide opačným smerom pri kandidátoch host, kde meno mDNS skrýva adresu pred stránkou, zatiaľ čo sieť otázky stále prenáša. Prečítajte si typ skôr, než prečítate hodnotu.

Na otázku smerovania odpovedá vybraná dvojica

ICE spáruje každého lokálneho kandidáta s každým vzdialeným, vykoná kontroly konektivity na každej dvojici a nominuje víťaza. Tá nominovaná dvojica, viditeľná v diagnostike samotného prehliadača, prenáša médiá. Všetko ostatné v zozname je možnosť, ktorá prehrala.

Víťaz vám povie tvar cesty. Relay k relay ide cez server TURN, dvojica host zostáva v lokálnej sieti a serverovo reflexná dvojica ide priamo cez NAT. To je fakt, ktorý kontrola VPN potrebuje, a je to iný fakt než zoznam adries. Dva hovory s rovnakými zoznamami kandidátov môžu použiť rôzne dvojice.

Nevybraní kandidáti boli napriek tomu zhromaždení a zhromažďovanie je sieťová prevádzka, ktorá opúšťa stroj. Hovor, ktorý napokon použil relay, neznamená, že sa pri zostavovaní zoznamu nič neprezradilo.

Ovládacie prvky zodpovedajú cieľom, nie skóre úniku

Špecifikácia WebRTC pre prácu s IP opisuje niekoľko zásad: používať len rozhranie, ktoré nesie predvolenú trasu, používať všetky rozhrania a vypnúť UDP bez proxy, aby prevádzka musela ísť cez relay alebo proxy. Každá vymieňa konektivitu a latenciu za iný druh vystavenia. Ktorú prehliadač implementuje a pod akým názvom, sa líši podľa platformy a verzie.

Zásadu vyberajte podľa cieľa. Skryť lokálne adresy pred stránkou je jeden cieľ; zabrániť priamej prevádzke medzi rovnocennými uzlami je druhý; udržať každý paket vnútri tunela je tretí. Prvý je hlavne o tom, čo sa aplikácia dozvie, druhý o tom, ktorá cesta je povolená, a tretí sa musí presadiť aj na hranici platformy alebo VPN.

Akýkoľvek prvok si vyberiete, overte obe polovice: spustite test zhromažďovania a zapíšte typy kandidátov, potom počas skutočnej relácie preskúmajte vybranú dvojicu. Čistý zoznam adries s priamou mediálnou cestou je stále cesta, ktorú ste nezamýšľali.

Súvisiace články