Una fuga de WebRTC es la exposición de las direcciones IP reales de un dispositivo a través de WebRTC, la tecnología del navegador para audio, video y datos entre pares, incluso cuando el navegador está configurado para usar un proxy o VPN. El RFC 8828 señala que las verificaciones STUN de WebRTC pueden eludir un proxy configurado y revelar la dirección IP pública del cliente a un sitio web.

WebRTC necesita encontrar una ruta de red directa entre pares. Para hacer eso, recopila direcciones candidatas para el dispositivo, y una página web puede leerlas. El RFC 8828 también advierte que con una VPN de túnel dividido, WebRTC puede descubrir la dirección pública del ISP así como la de la VPN.

Cómo Ocurre la Fuga

  • ICE: Establecimiento de Conectividad Interactiva es el marco que WebRTC utiliza para conectar pares. Recopila direcciones candidatas.
  • STUN: Un servidor STUN le dice al navegador su dirección pública. Esa búsqueda puede viajar fuera del proxy.
  • Direcciones locales: Las candidatas pueden incluir direcciones de red privadas, que el RFC 8828 llama una superficie de huellas digitales.
  • Nombres mDNS: Un borrador del IETF reemplaza las direcciones privadas en estas candidatas con nombres de host mDNS generados, por lo que las páginas no ven la IP local real.

Limitando la Exposición de WebRTC

El RFC 8828 define cuatro modos para la cantidad de información de dirección que WebRTC recopila:

  • Modo 2 (predeterminado sin consentimiento): Usa la ruta predeterminada y comparte las direcciones privadas de esa interfaz.
  • Modo 3: Usa solo la ruta predeterminada y retiene las direcciones privadas.
  • Modo 4 (forzar proxy): También envía medios a través del proxy cuando el tráfico HTTP usa uno. El RFC 8828 señala que la mayoría de los proxies no soportan UDP, por lo que esto puede retroceder a TCP y disminuir la calidad del medio.

Cómo Probar una Fuga de WebRTC

Cualquier página puede leer las direcciones que WebRTC recopila. MDN señala que las direcciones IP candidatas siempre están expuestas a la aplicación a través de la propiedad address de cada candidato ICE. Para probar, conéctate a través de tu proxy y abre una página que liste las direcciones candidatas de WebRTC. Si tu IP pública real aparece en lugar de la IP de salida del proxy, el navegador está filtrando.

Configuraciones del Navegador que Limitan la Exposición

Los navegadores basados en Chromium ofrecen una configuración de manejo de IP de WebRTC con cuatro valores:

  • Predeterminado: Usa todas las interfaces y expone la dirección IP local.
  • Interfaces públicas y privadas predeterminadas: Usa la ruta predeterminada HTTP y aún expone la dirección IP local.
  • Solo interfaz pública predeterminada: Usa la ruta predeterminada HTTP y no expone la dirección IP local.
  • Deshabilitar UDP no proxied: Usa TCP a menos que el proxy soporte UDP. No expone direcciones locales. Brave hace de esto el predeterminado cuando la Protección contra Huellas Digitales está activada.

En Microsoft Edge, los administradores configuran esto con la política WebRtcLocalhostIpHandling. Los usuarios de Brave lo cambian en chrome://settings/privacy.

Términos Relacionados