Un proxy poate acoperi traficul HTTP, în timp ce WebRTC schimbă adrese candidate prin STUN/ICE peste UDP. Articolul explică atunci când pot fi expuse adrese locale și private și cum pot rămâne coerente ieșirea de rețea și mediul browserului.
Ai configurat un proxy, iar o pagină de verificare IP afișează regiunea și furnizorul așteptate. Identitatea de rețea pare în regulă. Totuși, când deschizi un test de scurgeri, secțiunea WebRTC apare cu roșu și afișează adresa conexiunii tale reale la Internet.
Nu este nevoie să schimbi imediat proxy-ul. În cele mai multe cazuri, problema nu ține de calitatea lui, ci de traficul pe care nu îl poate controla.
Proxy-ul gestionează HTTP, iar WebRTC folosește o altă rută
Un proxy funcționează la nivelul rețelei. Fie că este implementat ca extensie de browser, fie ca tunel la nivel de sistem, el procesează cererile HTTP/HTTPS și trimite acest trafic prin ieșirea proxy-ului.
WebRTC funcționează diferit. Este o capacitate de comunicare în timp real integrată în browser. Pentru ca apelurile audio/video și transferurile P2P să găsească o rută potrivită, browserul poate trimite activ interogări STUN către servere externe — practic întrebând „ce adresă vezi pentru mine?” — apoi poate organiza răspunsurile sub formă de candidați ICE pe care îi transmite paginii web. Aceste interogări folosesc UDP, un canal independent de tunelul HTTP.
Apare astfel o nepotrivire: cererile web ies prin proxy, în timp ce browserul poate raporta simultan o adresă locală. Presupunerea că simpla configurare a unui proxy înseamnă automat că întreaga identitate de rețea este curată este cel mai frecvent punct de plecare al acestei probleme.
Poate fi expus mai mult decât IP-ul public
Candidații ICE conțin de obicei două tipuri de adrese. Primul este adresa publică, adică ieșirea furnizorului tău real de Internet. Al doilea este o adresă locală, de exemplu o adresă privată care începe cu 192.168, iar uneori și o adresă asociată unui adaptor de rețea virtual.
O adresă de rețea privată, luată separat, nu dovedește mare lucru; aproape orice calculator are una. Dar poate fi suficient de stabilă încât suprapunerile repetate ale candidaților între mai multe conturi să ofere unei platforme un semnal suplimentar pentru a le asocia cu același dispozitiv. Adresa publică este mai directă: indică furnizorul real și o zonă geografică aproximativă. Precizia depinde de platformă, dar direcția este clară: cu cât adresa este mai autentică, cu atât asocierea este mai simplă.
Când poate un site să citească efectiv adresa?
Nu toate site-urile încearcă să facă acest lucru. Schimbul de adrese necesită ca pagina să creeze activ un obiect RTCPeerConnection, lucru de care paginile obișnuite de conținut, în general, nu au nevoie.
Cele mai frecvente cazuri sunt serviciile care necesită comunicare în timp real, precum videoconferințele, asistența online și unele pagini de streaming live; site-urile care depind în mare măsură de publicitate sau prevenirea fraudei; și platformele cu sisteme de control al riscului mai dezvoltate. Citirea are loc în afara interfeței vizibile, iar după colectarea datelor, de regulă, nu primești o notificare despre modul în care sunt folosite ulterior.
Există și o situație care nu depinde de site. În scurtul interval în care proxy-ul se reconectează sau schimbă nodul, o cerere STUN a browserului poate ajunge să fie trimisă prin rețeaua locală. Fereastra este mică, dar suficientă pentru ca o observație să fie înregistrată.
Trei scenarii frecvente de eșec
Proxy-urile sub formă de extensie de browser preiau de obicei doar cererile HTTP/HTTPS. UDP rămâne în afara domeniului lor, iar bifarea unei opțiuni „globale” în interfață nu schimbă acest lucru.
Un proxy global la nivel de sistem pare mai complet, deoarece acoperă traficul întregului dispozitiv. Totuși, colectarea adreselor candidate se poate lega direct de o interfață de rețea locală și poate ocoli tabela de rutare a sistemului, lăsând tunelul expus în acel punct.
A treia problemă nu este strict tehnică, ci ține și de evoluția controalelor. Sistemele de risc folosesc tot mai des adresele WebRTC ca unul dintre semnalele pentru asocierea conturilor. Date care în trecut nu erau măsurate sau erau ignorate pot fi acum incluse în evaluare.
Scopul este o ieșire coerentă, nu doar dezactivarea unui comutator
Există câteva abordări generale. Dacă un flux de lucru nu are deloc nevoie de comunicare în timp real, dezactivarea WebRTC este cea mai simplă opțiune, cu dezavantajul că funcții precum apelurile video sau asistența online nu vor mai funcționa.
Dacă aceste funcții trebuie păstrate, o abordare obișnuită este ca adresa returnată la nivel WebRTC să fie în concordanță cu ieșirea proxy-ului. O variantă mai robustă este ca și cererile STUN să fie redirecționate prin canalul proxy, astfel încât interfața să nu expună adresa locală. Pentru scenarii care necesită P2P sau apeluri video, întregul trafic UDP trebuie să treacă prin proxy, nu doar stratul HTTP.
O greșeală frecventă este presupunerea că simpla dezactivare a WebRTC face mediul curat. Importantă este coerența dintre ieșirea de rețea, rezoluția DNS, apartenența IP-ului și ASN-ul, fusul orar și limba, precum și caracteristicile dispozitivului. Orice nepotrivire poate genera un semnal anormal; WebRTC este doar unul dintre elementele cel mai ușor de trecut cu vederea.
Verificarea este simplă. Testează o dată după schimbarea nodului și încă o dată înainte de folosirea normală a mediului: deschide un test de scurgeri și verifică dacă secțiunea WebRTC afișează ieșirea proxy-ului, o adresă locală sau adresa publică reală. O verificare IP obișnuită nu arată acest element.
Soluțiile de izolare la nivelul motorului browserului pot defini o politică separată de adrese WebRTC pentru fiecare mediu și o pot asocia cu ieșirea de rețea a acelui mediu. PurpleMark oferă acest tip de capabilitate. Dacă mai multe medii folosesc aceeași ieșire sau politicile lor de adresă sunt incoerente, valoarea izolării scade considerabil.
Aceasta este doar o explicație tehnică. Folosește instrumentele relevante cu respectarea regulilor platformelor și a legislației locale.


