Quan una pàgina de proves WebRTC imprimeix 172.20.4.15, ha après que hi ha una interfície local en aquesta xarxa. Això és una revelació real i no és la mateixa conclusió que «el contingut multimèdia ha sortit per la sortida de la VPN». El descobriment de candidats i l’encaminament de paquets són mecanismes separats, i la majoria d’informes de fuites els ajunten en un sol veredicte. Quin dels dos estàs mirant és el que decideix la solució.

La recollida passa abans que s’enviï res

El navegador enumera les interfícies locals, envia una sol·licitud d’enllaç a un servidor STUN i demana una assignació a un servidor TURN, i després escriu els resultats a la descripció de la sessió com a línies de candidats. Tot això es completa sense trucada, sense contingut multimèdia i sense cap interlocutor. Per tant, una llista de candidats és un registre del descobriment, no del transport.

Els navegadors moderns poden substituir l’adreça literal d’un candidat d’amfitrió per un nom mDNS .local, de manera que la pàgina no pot llegir la IP privada. La xarxa local encara veu les consultes de multidifusió que resolen aquest nom, així que l’adreça s’amaga a l’aplicació en lloc d’eliminar-se del cable.

L’ordre també importa: una càrrega nova de la pàgina recull un conjunt nou, amb una assignació TURN diferent i possiblement un mapatge reflexiu diferent. Dues execucions que no coincideixen no són necessàriament dues configuracions diferents.

Tres tipus de candidats, tres classes de proves

Cada línia prové d’una observació diferent. Cada tipus respon una pregunta diferent, i la taula els separa pel que poden i no poden establir.

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

Un candidat de relé es confon habitualment amb l’adreça d’internet de l’usuari. Pertany al servidor TURN, i la seva presència mostra que hi havia un relé disponible, no que el navegador l’hagi triat. La mateixa confusió va en sentit contrari amb els candidats d’amfitrió, on un nom mDNS amaga l’adreça a la pàgina mentre la xarxa encara transporta les consultes. Llegeix el tipus abans de llegir el valor.

La parella seleccionada respon la pregunta d’encaminament

ICE emparella cada candidat local amb cada candidat remot, fa comprovacions de connectivitat sobre cada parella i nomena un guanyador. Aquesta parella nomenada, visible als diagnòstics del mateix navegador, transporta el contingut multimèdia. Tota la resta de la llista és una possibilitat que va perdre.

El guanyador et diu la forma del camí. Relé a relé passa pel servidor TURN, una parella d’amfitrió es queda a la xarxa local i una parella reflexiva de servidor va directa per NAT. Aquest és el fet que necessita una comprovació de VPN, i és un fet diferent del de la llista d’adreces. Dues trucades amb llistes de candidats idèntiques poden fer servir parelles diferents.

Els candidats no seleccionats també es van recollir, i la recollida és trànsit de xarxa que surt de la màquina. Una trucada que al final va fer servir el relé no vol dir que no s’hagi revelat res mentre es construïa la llista.

Els controls responen a objectius, no a una puntuació de fuites

L’especificació de gestió d’IP de WebRTC descriu diverses polítiques: fer servir només la interfície que porta la ruta per defecte, fer servir totes les interfícies i desactivar l’UDP sense proxy perquè el trànsit hagi de passar per un relé o un proxy. Cadascuna intercanvia connectivitat i latència per un tipus diferent d’exposició. Quina implementa un navegador, i amb quin nom, varia segons la plataforma i la versió.

Tria la política a partir de l’objectiu. Amagar les adreces locals a una pàgina és un objectiu; evitar el trànsit directe entre iguals és un altre; mantenir cada paquet dins del túnel és un tercer. El primer tracta sobretot del que aprèn l’aplicació, el segon de quin camí es permet, i el tercer s’ha de fer complir també a la frontera de la plataforma o de la VPN.

Sigui quin sigui el control que triïs, verifica les dues meitats: executa la prova de recollida i anota els tipus de candidats, i després inspecciona la parella seleccionada durant una sessió real. Una llista d’adreces neta amb un camí multimèdia directe continua sent un camí que no volies.

Articles relacionats