Što popis WebRTC kandidata otkriva o vašem VPN-u
Kandidat host, poslužiteljski refleksivni ili relay kandidat govori odakle dolazi adresa. Samo odabrani ICE par govori kojim je putem medij stvarno išao.
Kada WebRTC testna stranica ispiše 172.20.4.15, saznala je da na toj mreži postoji lokalno sučelje. To je stvarno otkriće i nije isti nalaz kao „medij je izašao kroz VPN izlaz“. Otkrivanje kandidata i usmjeravanje paketa odvojeni su mehanizmi, a većina izvješća o curenju spaja ih u jednu presudu. Koji od njih gledate odlučuje popravak.
Prikupljanje ide prije nego što se bilo što pošalje
Preglednik nabraja lokalna sučelja, šalje zahtjev za povezivanje poslužitelju STUN i traži alokaciju od poslužitelja TURN, a zatim rezultate upisuje u opis sesije kao retke kandidata. Sve to završava bez poziva, bez medija i bez sugovornika. Popis kandidata je stoga zapis otkrivanja, a ne prijenosa.
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 s mreže.
Redoslijed je također važan: novo učitavanje stranice prikuplja novi skup, uz drugu TURN alokaciju i moguće drukčije refleksivno preslikavanje. Dva pokretanja koja se razlikuju nisu nužno dvije različite konfiguracije.
Tri tipa kandidata, tri vrste dokaza
Svaki redak proizlazi iz drugog opažanja. Svaki tip odgovara na drugo pitanje, a tablica ih razdvaja prema 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 rutinski se zamjenjuje s korisnikovom internetskom adresom. Pripada poslužitelju TURN, a njegova prisutnost 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 usmjeravanja
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 popisu je mogućnost koja je izgubila.
Pobjednik vam govori oblik puta. Relay prema relay prolazi kroz poslužitelj TURN, host par ostaje na lokalnoj mreži, a poslužiteljski refleksivni par ide izravno kroz NAT. To je činjenica koja treba VPN provjeri i ona je različita od popisa adresa. Dva poziva s identičnim popisima kandidata mogu izabrati različite parove.
Neodabrani kandidati ipak su prikupljeni, a prikupljanje je mrežni promet koji napušta stroj. Poziv koji je na kraju koristio relay ne znači da ništa nije otkriveno dok se popis gradio.
Kontrole odgovaraju ciljevima, ne ocjeni curenja
WebRTC specifikacija za rukovanje IP-om opisuje nekoliko politika: korištenje samo sučelja koje nosi zadanu rutu, korištenje svih sučelja i isključivanje neposredovanog UDP-a tako da promet 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 jedan je cilj; sprječavanje izravnog prometa između ravnopravnih računala drugi je; držanje svakog paketa unutar tunela treći je. Prvi se uglavnom tiče onoga što aplikacija sazna, drugi toga koji je put dopušten, a treći se mora nametnuti i na granici platforme ili VPN-a.
Koju god kontrolu odabrali, provjerite obje polovice: pokrenite test prikupljanja i zabilježite tipove kandidata, pa pregledajte odabrani par tijekom stvarne sesije. Čist popis adresa s izravnim medijskim putem i dalje je put koji niste namjeravali.