Šta lista WebRTC kandidata otkriva o vašem VPN-u
Kandidat host, serverski refleksivni ili relay kandidat govori odakle dolazi adresa. Samo odabrani ICE par govori koji je put medij stvarno koristio.
Kada WebRTC testna stranica ispiše 172.20.4.15, ona je saznala da na toj mreži postoji lokalni interfejs. To je stvarno otkriće i nije isti nalaz kao „medij je izašao kroz VPN izlaz“. Otkrivanje kandidata i rutiranje paketa su odvojeni mehanizmi, a većina izvještaja o curenju ih spaja u jednu presudu. Koji od njih gledate odlučuje popravku.
Prikupljanje ide prije nego što se bilo šta pošalje
Preglednik nabraja lokalne interfejse, šalje zahtjev za povezivanje STUN serveru i traži alokaciju od TURN servera, a zatim rezultate upisuje u opis sesije kao linije kandidata. Sve to završava bez poziva, bez medija i bez sagovornika. Lista kandidata je zato zapis otkrivanja, a ne prenosa.
Moderni preglednici mogu zamijeniti doslovnu adresu host kandidata mDNS imenom .local, pa stranica ne može pročitati privatni IP. Lokalna mreža ipak vidi multicast upite koji razrješavaju to ime, dakle adresa je skrivena od aplikacije, a ne uklonjena sa mreže.
Redoslijed je takođe bitan: novo učitavanje stranice prikuplja novi skup, uz drugu TURN alokaciju i moguće drugačije refleksivno mapiranje. Dva pokretanja koja se razlikuju nisu nužno dvije različite konfiguracije.
Tri tipa kandidata, tri vrste dokaza
Svaka linija proizlazi iz drugog opažanja. Svaki tip odgovara na drugo pitanje, a tabela ih razdvaja po tome što mogu i što ne mogu utvrditi.
| 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 |
Relay kandidat se rutinski zamjenjuje s korisnikovom internet adresom. On pripada TURN serveru, a njegovo prisustvo pokazuje da je relay bio dostupan, ne da ga je preglednik odabrao. Ista zabuna ide i u suprotnom smjeru kod host kandidata, gdje mDNS ime skriva adresu od stranice dok mreža još nosi upite. Pročitajte tip prije nego pročitate vrijednost.
Odabrani par odgovara na pitanje rutiranja
ICE spaja svakog lokalnog kandidata sa svakim udaljenim, izvodi provjere povezanosti na svakom paru i nominira pobjednika. Taj nominirani par, vidljiv u dijagnostici samog preglednika, nosi medij. Sve ostalo na listi je mogućnost koja je izgubila.
Pobjednik vam govori oblik puta. Relay prema relay prolazi kroz TURN server, host par ostaje na lokalnoj mreži, a serverski refleksivni par ide direktno kroz NAT. To je činjenica koja treba VPN provjeri i ona je različita od liste adresa. Dva poziva s identičnim listama kandidata mogu izabrati različite parove.
Neodabrani kandidati su ipak prikupljeni, a prikupljanje je mrežni saobraćaj koji napušta mašinu. Poziv koji je na kraju koristio relay ne znači da ništa nije otkriveno dok je lista građena.
Kontrole odgovaraju ciljevima, ne ocjeni curenja
WebRTC specifikacija za rukovanje IP-om opisuje nekoliko politika: korištenje samo interfejsa koji nosi zadanu rutu, korištenje svih interfejsa i isključivanje neproksiranog UDP-a tako da saobraćaj mora ići kroz relay ili proxy. Svaka razmjenjuje povezanost i latenciju za drugu vrstu izloženosti. Koju politiku preglednik provodi i pod kojim imenom zavisi od platforme i verzije.
Odaberite politiku prema cilju. Skrivanje lokalnih adresa od stranice je jedan cilj; sprečavanje direktnog saobraćaja između ravnopravnih računara je drugi; držanje svakog paketa unutar tunela je treći. Prvi se uglavnom tiče onoga što aplikacija sazna, drugi toga koji je put dozvoljen, a treći se mora nametnuti i na granici platforme ili VPN-a.
Koju god kontrolu odabrali, provjerite obje polovine: pokrenite test prikupljanja i zabilježite tipove kandidata, pa pregledajte odabrani par tokom stvarne sesije. Čista lista adresa s direktnim medijskim putem i dalje je put koji niste namjeravali.