Volver al Blog
Red

Candidatos mDNS de WebRTC y privacidad de la red local

Comprende los candidatos de host mDNS de WebRTC y la evidencia limitada de privacidad.

BotBrowser Team

Documentación

Quieres la documentación estructurada de Red?

Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.

Una sesión WebRTC mantiene los candidatos de host detrás de un nombre mDNS y separa la evidencia del navegador, la red y la aplicación

WebRTC reúne candidatos ICE para encontrar una ruta entre pares. Un candidato de host puede revelar una interfaz local; por eso el navegador puede usar un nombre mDNS en lugar de una dirección privada. RFC 8828 describe este objetivo de privacidad, pero no promete anonimato. BotBrowser puede repetir un escenario autorizado y observar candidatos y estados visibles; no puede controlar al par remoto ni demostrar la retención del servicio.

Resumen

Trata el nombre mDNS como un nombre que protege parcialmente al host, no como prueba de que no existe información local. Registra por separado versión del navegador, política ICE, tipo de candidato, origen final y resultado visible. Usa medios sintéticos, rutas propias y tiempos limitados. No publiques direcciones, credenciales ICE ni grabaciones.

BotBrowser puede repetir una prueba WebRTC autorizada en un contexto declarado y observar categorías de candidatos redactadas y el estado visible. No puede controlar al par remoto, proporcionar una cámara, inspeccionar la retención del servicio ni garantizar el comportamiento de todos los navegadores. Esa limitación debe acompañar cualquier resultado usado para una decisión de versión.

Contenido

Qué cambia mDNS

El candidato de host describe una interfaz local útil para el par. Con mDNS contiene un nombre con alcance local en vez de la dirección. Los candidatos reflexivos pueden mostrar una asignación pública y un relay puede mostrar que se eligió un relay. La lista de candidatos es una observación, no un informe completo de privacidad.

Separar la evidencia

ObservaciónRegistrarNo demuestra
Señalizaciónorigen final y estado HTTPque el par sea confiable
ICEtipo, protocolo y nombre mDNS redactadoanonimato o ausencia de registros
Conectividadpar seleccionado y transicióncalidad o estabilidad
Aplicaciónmarcador propio y límite de tiempoun registro remoto

No conviertas un nombre mDNS en un inventario. Redacta SDP, contraseñas y credenciales. Un cambio del navegador o de TURN puede cambiar los tipos sin cambiar tu aplicación.

Ejecutar una prueba limitada

Mantén dos páginas propias: control y candidata. Usa pistas generadas, señalización con límite y una aserción explícita de icegatheringstate. Clasifica por separado DNS, certificados, permisos, señalización y conexión. Un tiempo agotado significa que falta evidencia.

const state = await page.evaluate(async () => {
  const pc = new RTCPeerConnection({ iceServers: [] });
  const values = [];
  pc.onicecandidate = e => {
    const candidate = e.candidate;
    if (!candidate) return;
    const isMdnsHost = candidate.type === 'host' && /\\.local(?:\\s|$)/.test(candidate.candidate);
    values.push(isMdnsHost ? 'mdns-host' : candidate.type || 'unknown');
  };
  await pc.setLocalDescription(await pc.createOffer({ offerToReceiveAudio: true }));
  await new Promise(resolve => setTimeout(resolve, 1500));
  pc.close();
  return { gathering: pc.iceGatheringState, values };
});

Detalles para revisar candidatos

Tipos de candidato en contexto

Los candidatos host, reflexivo y relay responden a preguntas distintas de conectividad. El host describe una interfaz local; el reflexivo muestra un mapeo observado mediante STUN; el relay usa TURN. No son una escala de privacidad: quién puede verlos depende de la señalización, del par, del relay y del navegador. mDNS sustituye la dirección local por un nombre para la representación del candidato; no es un identificador estable ni debe convertirse en un inventario.

Diseñar la comparación

Escribe primero una pregunta estrecha: «¿Esta versión expone un candidato host con formato mDNS a mi página propia bajo la misma configuración?». Compara una página control y una candidata que difieran en una sola configuración declarada. Conserva el mismo origen, ruta, navegador, servidores ICE, medios generados y permisos; registra solo categorías redactadas, estado y versión, nunca un identificador persistente.

CampoControl y candidataMotivo
Origen y rutamisma ruta HTTPS propiamismo contexto de seguridad
ICE y mediosconfiguración sintética fijaevita cambios de STUN/TURN o dispositivos reales
Observacióncategoría de candidato redactadaevita direcciones y credenciales
Resultadoestado y categoría del parsepara recolección de conectividad

Interpretar los resultados

Si aparece un nombre .local, registra únicamente mdns-host; no guardes el nombre completo. La recolección completada no implica que exista un par conectado, y una conexión no revela qué retuvo el servicio o el par. No infieras permisos de cámara desde ICE. Un fallo puede ser DNS, firewall, relay, descripción inválida o una aserción de la aplicación.

Conservar evidencia útil

Un recibo pequeño incluye pregunta, versión del fixture, navegador, ruta, configuración ICE, categorías, estado final, categoría del par si existe y hora. Declara también lo que no prueba: observación del par, retención de señalización, consentimiento real o comportamiento universal. No pongas direcciones, SDP, contraseñas, cookies ni grabaciones en informes comunes; los datos crudos requieren almacenamiento restringido y fecha de eliminación.

Clasificar fallos y limpiar

Asigna cada fallo a su dueño: navegación/origen, servicio de señalización, recolección ICE, alcance del par, relay/firewall o aserción de aplicación. Cada etapa debe tener un tiempo límite y conservar la etapa donde se detuvo la evidencia. En éxito y error cierra el RTCPeerConnection, detén pistas sintéticas y cierra el contexto para no contaminar la siguiente ejecución.

Lista de comprobación

  • ¿La página y la señalización son propias o están autorizadas?
  • ¿La pregunta separa representación, conectividad, medios y servicio?
  • ¿Se declararon navegador, origen, ICE y entradas sintéticas?
  • ¿Se excluyeron nombres, direcciones, credenciales, SDP y medios de los registros?
  • ¿Cada tiempo límite identifica su etapa y el resultado queda limitado al fixture?
  • ¿Se cerraron conexiones y pistas en éxito y error?

Conclusión práctica

Revisa origen, permiso, política ICE, redacción de candidatos, ruta elegida y resultado de la aplicación como una cadena. BotBrowser repite el viaje autorizado en un contexto declarado; no proporciona dispositivos, controla registros de pares ni garantiza cumplimiento universal.

Para continuar, consulta la guía de prevención de fugas WebRTC y la guía de UDP sobre SOCKS5. Una prueba solo describe su versión, ruta y configuración declaradas.

Fuentes

BotBrowser Team

#WebRTC#mDNS#RFC 8828#Privacidad

Lleva BotBrowser de la investigación a producción

Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.