Kva ei WebRTC-kandidatliste avdekkjer om VPN-en din
Ein verts-, tenarrefleksiv eller relay-kandidat fortel kvar ei adresse kom frå. Berre det valde ICE-paret fortel kva veg mediet faktisk nytta.
Når ei WebRTC-testsida skriv ut 172.20.4.15, har ho fått vita at det finst eit lokalt grensesnitt på det nettet. Det er ei reell avdekking, og det er ikkje same funnet som «mediet gjekk ut gjennom VPN-utgangen». Kandidatopptaking og pakkeruting er skilde mekanismar, og dei fleste lekkasjerapportane smeltar dei saman til éin dom. Kva av dei du ser på, avgjer løysinga.
Innsamlinga skjer før noko vert sendt
Nettlesaren listar opp lokale grensesnitt, sender ein bindingsførespurnad til ein STUN-tenar og ber ein TURN-tenar om ei tildeling, og skriv deretter resultata inn i sesjonsskildringa som kandidatliner. Alt dette vert fullført utan samtale, utan medie og utan motpart. Ei kandidatliste er difor eit oversyn over oppdaging, ikkje over transport.
Moderne nettlesarar kan byta ut den bokstavlege adressa til ein vertskandidat med eit mDNS-namn .local, slik at sida ikkje kan lesa den private IP-adressa. Det lokale nettet ser framleis multicast-førespurnadene som løyser opp namnet, så adressa vert løynt for programmet i staden for å verta fjerna frå nettet.
Rekkjefylgja har òg noko å seia: ei ny sideinnlasting samlar eit nytt sett, med ei anna TURN-tildeling og moglegvis ei anna refleksiv kartlegging. To køyringar som ikkje er samde er ikkje naudsynt to ulike oppsett.
Tre kandidattypar, tre slag prov
Kvar linje kjem frå ei anna observing. Kvar type svarar på eit anna spørsmål, og tabellen skil dei etter kva dei kan og ikkje kan fastslå.
| 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 |
Ein relay-kandidat vert rutinemessig forveksla med internettadressa til brukaren. Han høyrer til TURN-tenaren, og tilstaden viser at ein relay var tilgjengeleg, ikkje at nettlesaren valde han. Den same forvekslinga går den andre vegen med vertskandidatar, der eit mDNS-namn løyner adressa for sida medan nettet framleis ber førespurnadene. Les typen før du les verdien.
Det valde paret svarar på rutingspørsmålet
ICE parar kvar lokal kandidat med kvar ekstern, køyrer tilkoplingskontrollar på kvart par og nominerer ein vinnar. Det nominerte paret, synleg i diagnostikken til nettlesaren sjølv, ber mediet. Alt anna på lista er ein mogleik som tapte.
Vinnaren fortel deg forma på vegen. Relay til relay går gjennom TURN-tenaren, eit vertspar vert verande på det lokale nettet, og eit tenarrefleksivt par går rett gjennom NAT. Det er det faktumet ein VPN-kontroll treng, og det er eit anna faktum enn adresselista. To samtalar med identiske kandidatlister kan ta ulike par.
Ikkje-valde kandidatar vart likevel samla inn, og innsamling er nettraffikk som forlèt maskinen. Ein samtale som til slutt nytta relayen tyder ikkje at ingenting vart avdekt medan lista vart bygd.
Kontrollar svarar til mål, ikkje til ein lekkasjepoengsum
WebRTC-spesifikasjonen for IP-handtering skildrar fleire retningslinjer: å bruka berre grensesnittet som ber standardruta, å bruka alle grensesnitt, og å slå av UDP utan proxy slik at trafikken må gå gjennom ein relay eller proxy. Kvar av dei byter tilkopling og ventetid mot ein annan type eksponering. Kva ein nettlesar implementerer, og under kva namn, varierer etter plattform og versjon.
Vel retningslinja ut frå målet. Å løyna lokale adresser for ei side er eitt mål; å hindra direkte peer-to-peer-trafikk er eit anna; å halda kvar pakke inne i tunnelen er eit tredje. Det første handlar mest om kva programmet lærer, det andre om kva veg som er tillaten, og det tredje må òg handhevast ved plattform- eller VPN-grensa.
Uansett kva kontroll du vel, verifiser båe halvdelar: køyr innsamlingstesten og noter kandidattypane, og gransk deretter det valde paret under ein ekte sesjon. Ei rein adresseliste med ein direkte medieveg er framleis ein veg du ikkje hadde tenkt deg.