Když testovací stránka WebRTC vypíše 172.20.4.15, zjistila, že v dané síti existuje lokální rozhraní. To je skutečné odhalení a není to stejný závěr jako „média odešla přes výstup VPN“. Zjišťování kandidátů a směrování paketů jsou oddělené mechanismy a většina zpráv o únicích je slévá do jednoho verdiktu. Který z nich vidíte, rozhoduje o opravě.

Shromažďování probíhá dřív, než se cokoli odešle

Prohlížeč vypíše lokální rozhraní, pošle požadavek na navázání na server STUN a požádá server TURN o alokaci, poté výsledky zapíše do popisu relace jako řádky kandidátů. To vše se dokončí bez hovoru, bez médií a bez protistrany. Seznam kandidátů je tedy záznamem zjišťování, ne přenosu.

Moderní prohlížeče mohou nahradit doslovnou adresu kandidáta host jménem mDNS .local, takže stránka nemůže přečíst privátní IP. Lokální síť přesto vidí multicastové dotazy, které to jméno překládají, takže adresa je skrytá aplikaci, ne odstraněná z drátu.

Záleží i na pořadí: nové načtení stránky shromáždí novou sadu, s jinou alokací TURN a možná jiným reflexivním mapováním. Dva běhy, které se liší, nemusí být dvě různé konfigurace.

Tři typy kandidátů, tři druhy důkazů

Každý řádek vychází z jiného pozorování. Každý typ odpovídá na jinou otázku a tabulka je odděluje podle toho, co mohou a co nemohou prokázat.

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 se běžně zaměňuje za internetovou adresu uživatele. Patří serveru TURN a jeho přítomnost ukazuje, že relay byl k dispozici, ne že si ho prohlížeč vybral. Stejná záměna běží opačným směrem u kandidátů host, kde jméno mDNS skrývá adresu před stránkou, zatímco síť dotazy stále přenáší. Přečtěte si typ dřív, než přečtete hodnotu.

Na otázku směrování odpovídá vybraný pár

ICE spáruje každého lokálního kandidáta s každým vzdáleným, provede kontroly konektivity na každém páru a nominuje vítěze. Ten nominovaný pár, viditelný v diagnostice samotného prohlížeče, přenáší média. Všechno ostatní v seznamu je možnost, která prohrála.

Vítěz vám řekne tvar cesty. Relay k relay jde přes server TURN, pár host zůstává v lokální síti a serverově reflexivní pár jde přímo přes NAT. To je fakt, který kontrola VPN potřebuje, a je to jiný fakt než seznam adres. Dva hovory s totožnými seznamy kandidátů mohou použít různé páry.

Nevybraní kandidáti byli přesto shromážděni a shromažďování je síťový provoz, který opouští stroj. Hovor, který nakonec použil relay, neznamená, že se při sestavování seznamu nic neprozradilo.

Ovládací prvky odpovídají cílům, ne skóre úniku

Specifikace WebRTC pro práci s IP popisuje několik zásad: používat jen rozhraní, které nese výchozí trasu, používat všechna rozhraní a vypnout UDP bez proxy, aby provoz musel jít přes relay nebo proxy. Každá směňuje konektivitu a latenci za jiný druh vystavení. Kterou prohlížeč implementuje a pod jakým názvem, se liší podle platformy a verze.

Zásadu vybírejte podle cíle. Skrýt lokální adresy před stránkou je jeden cíl; zabránit přímému provozu mezi rovnocennými uzly je druhý; udržet každý paket uvnitř tunelu je třetí. První je hlavně o tom, co se aplikace dozví, druhý o tom, která cesta je povolená, a třetí se musí vynutit i na hranici platformy nebo VPN.

Ať zvolíte jakýkoli prvek, ověřte obě poloviny: spusťte test shromažďování a zapište typy kandidátů, potom během skutečné relace prohlédněte vybraný pár. Čistý seznam adres s přímou mediální cestou je pořád cesta, kterou jste nezamýšleli.

Související články