Când o pagină de test WebRTC afișează 172.20.4.15, a aflat că în acea rețea există o interfață locală. Aceasta este o dezvăluire reală și nu este aceeași constatare ca «media au ieșit prin ieșirea VPN». Descoperirea candidaților și rutarea pachetelor sunt mecanisme separate, iar majoritatea rapoartelor despre scurgeri le contopesc într-un singur verdict. Pe care dintre ele îl privești decide remedierea.

Colectarea are loc înainte de a se trimite ceva

Browserul enumeră interfețele locale, trimite o cerere de legare către un server STUN și cere o alocare de la un server TURN, apoi scrie rezultatele în descrierea sesiunii ca linii de candidați. Toate acestea se încheie fără apel, fără media și fără interlocutor. O listă de candidați este deci o înregistrare a descoperirii, nu a transportului.

Browserele moderne pot înlocui adresa literală a unui candidat gazdă cu un nume mDNS .local, astfel încât pagina nu poate citi IP-ul privat. Rețeaua locală vede în continuare interogările multicast care rezolvă acel nume, așa că adresa este ascunsă de aplicație, nu eliminată din rețea.

Și ordinea contează: o încărcare nouă a paginii colectează un set nou, cu altă alocare TURN și posibil altă mapare reflectivă. Două rulări care nu coincid nu sunt neapărat două configurații diferite.

Trei tipuri de candidați, trei feluri de dovezi

Fiecare linie provine dintr-o observație diferită. Fiecare tip răspunde la o întrebare diferită, iar tabelul le separă după ce pot și ce nu pot stabili.

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

Candidatul de releu este confundat frecvent cu adresa de internet a utilizatorului. Aparține serverului TURN, iar prezența lui arată că un releu era disponibil, nu că browserul l-a ales. Aceeași confuzie merge în sens invers la candidații gazdă, unde un nume mDNS ascunde adresa de pagină în timp ce rețeaua transportă în continuare interogările. Citește tipul înainte de a citi valoarea.

Perechea selectată răspunde la întrebarea de rutare

ICE împerechează fiecare candidat local cu fiecare candidat aflat la distanță, rulează verificări de conectivitate pe fiecare pereche și numește un câștigător. Acea pereche nominalizată, vizibilă în diagnosticul browserului însuși, transportă media. Orice altceva din listă este o posibilitate care a pierdut.

Câștigătorul îți spune forma căii. Releu la releu trece prin serverul TURN, o pereche gazdă rămâne în rețeaua locală, iar o pereche reflectivă de server merge direct prin NAT. Acesta este faptul de care are nevoie o verificare VPN și este un fapt diferit de lista de adrese. Două apeluri cu liste de candidați identice pot folosi perechi diferite.

Candidații neselectați au fost totuși colectați, iar colectarea este trafic de rețea care părăsește mașina. Un apel care a folosit în final releul nu înseamnă că nimic nu a fost dezvăluit în timp ce lista era construită.

Controalele corespund obiectivelor, nu unui scor de scurgere

Specificația WebRTC privind tratarea IP descrie mai multe politici: utilizarea doar a interfeței care transportă ruta implicită, utilizarea tuturor interfețelor și dezactivarea UDP fără proxy, astfel încât traficul să treacă printr-un releu sau un proxy. Fiecare schimbă conectivitate și latență pe un alt tip de expunere. Pe care o implementează un browser și sub ce nume variază în funcție de platformă și versiune.

Alege politica în funcție de obiectiv. Ascunderea adreselor locale față de o pagină este un obiectiv; prevenirea traficului direct între egali este altul; păstrarea fiecărui pachet în tunel este al treilea. Primul se referă în principal la ce află aplicația, al doilea la ce cale este permisă, iar al treilea trebuie impus și la limita platformei sau a VPN-ului.

Indiferent de controlul ales, verifică ambele jumătăți: rulează testul de colectare și notează tipurile de candidați, apoi inspectează perechea selectată în timpul unei sesiuni reale. O listă curată de adrese cu o cale media directă rămâne o cale pe care nu ai intenționat-o.

Articole similare