Navegador y rastreo

WebRTC

Se lee en aproximadamente 4 minutos

Qué es WebRTC

WebRTC (Web Real-Time Communication) es un estándar web que permite comunicación en tiempo real de audio, vídeo y datos entre navegadores sin plugins. Las funciones de videollamada de Google Meet, Discord, Facebook Messenger, entre otros, se basan en WebRTC.

WebRTC adopta un método P2P (Peer-to-Peer) donde los navegadores se conectan directamente para eficiencia de comunicación. Para establecer esta conexión directa, existe un mecanismo que utiliza servidores STUN/TURN para notificar tu dirección IP al otro extremo, lo que causa problemas de privacidad.

Rol de los servidores STUN/TURN

Para establecer una conexión P2P de WebRTC, primero es necesario conocer tu posición en la red. Aquí se utilizan dos tipos de servidores: STUN y TURN.

Servidor STUN
Acrónimo de Session Traversal Utilities for NAT. Cuando el cliente envía una solicitud al servidor STUN, este responde "tu dirección IP es esta". Es un mecanismo para que los dispositivos detrás de NAT conozcan su dirección IP pública y número de puerto. Google publica gratuitamente stun.l.google.com:19302, utilizado por muchas aplicaciones WebRTC.
Servidor TURN
Acrónimo de Traversal Using Relays around NAT. Cuando no se puede establecer una conexión P2P debido a NAT simétrico o firewall, el servidor TURN retransmite la comunicación. Como todo el tráfico pasa por el servidor, el costo de ancho de banda es alto y se usa como último recurso para la conexión P2P.

El problema desde la perspectiva de la privacidad es que las consultas al servidor STUN pueden realizarse sin pasar por el túnel VPN. En ese caso, la dirección IP real que se supone oculta por la VPN se envía al servidor STUN y se puede obtener vía JavaScript.

ICE Candidate y mecanismo de filtración de IP

WebRTC utiliza un framework llamado ICE (Interactive Connectivity Establishment) para establecer rutas de conexión. ICE recopila múltiples candidatos de conexión (ICE Candidates) y selecciona la ruta óptima.

En el proceso de recopilación de ICE Candidates, se generan 3 tipos de candidatos.

  • Host Candidate: Dirección IP local obtenida directamente de la interfaz de red del dispositivo (192.168.x.x o 10.x.x.x). Incluso durante una conexión VPN, puede incluirse la dirección IP de la NIC física, aunque en agosto de 2026 los navegadores basados en Chromium sustituyen este candidato por un nombre .local aleatorio (mDNS) de forma predeterminada, ocultando así la IP local real
  • Server Reflexive Candidate (srflx): Dirección IP pública devuelta por el servidor STUN. Si la consulta STUN se realiza por una ruta que no pasa por la VPN, se expone la IP real fuera de la VPN
  • Relay Candidate: Dirección del servidor TURN. Bajo riesgo de privacidad

Un sitio web malicioso puede obtener estas direcciones IP vía JavaScript simplemente generando un objeto RTCPeerConnection e iniciando la recopilación de ICE Candidates, sin necesidad de realizar una llamada real. Como se puede ejecutar con solo unas pocas líneas de código, se ha convertido en una de las principales vías de filtración de información al usar VPN, junto con las fugas de DNS.

Ocultar la IP local ya es el comportamiento predeterminado, pero el candidato srflx que se obtiene cuando la consulta STUN sale por fuera de la VPN sigue exponiendo la dirección IP real tal cual. Al usar una VPN, lo que conviene revisar es ese candidato srflx antes que la IP local.

Contramedidas por navegador

  • Firefox: Introduce about:config en la barra de direcciones y establece media.peerconnection.enabled en false para deshabilitar completamente WebRTC. Para un control más fino, establecer media.peerconnection.ice.default_address_only en true expone solo la IP de la interfaz de red predeterminada, previniendo la filtración de IP de otras interfaces (adaptador VPN, etc.).
  • Chrome: WebRTC en sí no se puede deshabilitar desde la pantalla de configuración. Una extensión que cambie la política de recopilación de ICE Candidates a disable_non_proxied_udp bloquea la comunicación UDP que no pasa por el proxy ni por la VPN, evitando que la IP real aparezca en la lista de candidatos. Algunas de estas extensiones ya no reciben mantenimiento, así que revisa la fecha de la última actualización y los permisos que solicitan antes de instalarlas.
  • Safari: Las restricciones de ICE Candidates están activas de forma predeterminada, por lo que normalmente no hace falta configurar nada más. Si activas la visualización del menú Desarrollo en "Configuración" → "Avanzado", en "Desarrollo" → "WebRTC" aparece Disable ICE Candidate Restrictions, pero ese interruptor levanta las restricciones, así que no lo habilites con fines de privacidad.
  • Brave: En "Configuración" → "Privacidad y seguridad" → "Política de manejo de IP WebRTC" puedes elegir cómo se tratan los candidatos. El valor predeterminado es el mismo Default que usa Chromium; si quieres priorizar la prevención de fugas, elige Disable non-proxied UDP.

Incluso con el kill switch de VPN habilitado, puede que no prevenga las fugas de WebRTC. Las contramedidas del lado del navegador son imprescindibles.

Usos legítimos de WebRTC

WebRTC tiende a recibir atención por sus riesgos de privacidad, pero es una tecnología poderosa que permite comunicación en tiempo real sin plugins. Comprender sus principales usos facilita juzgar el impacto de deshabilitarlo.

  • Videoconferencias: Google Meet, Zoom (versión web), Microsoft Teams (versión web) todos usan WebRTC. Deshabilitarlo impide participar desde el navegador
  • Llamadas de voz: Versión web de Discord, función de llamadas de Facebook Messenger, etc.
  • Intercambio de archivos P2P: WebTorrent y servicios de transferencia directa de archivos entre navegadores
  • Juegos en tiempo real: Usado para comunicación de baja latencia en juegos multijugador basados en navegador
  • Streaming en vivo: WebRTC se utiliza en transmisiones en vivo que necesitan una latencia inferior a un segundo

Si usas videoconferencias frecuentemente, en lugar de deshabilitar completamente WebRTC, es más práctico utilizar la función de prevención de fugas de WebRTC proporcionada por el proveedor VPN o la configuración de restricción de ICE Candidates del navegador.

Cómo verificar fugas de WebRTC

Puedes verificar fácilmente si hay fugas de WebRTC en tu navegador con sitios de prueba dedicados. Ejecuta la prueba con la VPN conectada; si aparece alguna IP distinta a la del servidor VPN, hay una fuga.

Los pasos de verificación son los siguientes.

  1. Conectarse a la VPN
  2. Acceder a un sitio de prueba de fugas de WebRTC
  3. Verificar las direcciones IP mostradas
  4. Si aparece alguna dirección distinta a la IP del servidor VPN, hay fuga

Verificar periódicamente junto con las pruebas de huella digital del navegador permite validar la efectividad de la configuración de privacidad.

Para obtener más información sobre este tema, consulte Fugas de WebRTC - Cómo se expone tu dirección IP incluso con una VPN.

Conceptos erróneos comunes

Si uso VPN no ocurren fugas de IP por WebRTC
WebRTC accede directamente a la interfaz de red eludiendo el túnel VPN, por lo que la VPN sola no puede prevenirlo. Es necesario deshabilitar WebRTC en el navegador o usar extensiones de prevención de fugas.
Deshabilitar WebRTC impide usar internet
Deshabilitar WebRTC no afecta la navegación web normal, la visualización de vídeos ni las descargas. Solo afecta funciones que usan comunicación en tiempo real dentro del navegador, como videollamadas y compartición de archivos P2P.
Compartir

Términos relacionados

Artículos relacionados