WebRTC mDNS 候选与本地网络隐私
理解 WebRTC mDNS 主机候选、RFC 8828 的隐私目标及有界浏览器证据。
BotBrowser Team
WebRTC 会收集 ICE 候选,以便两个对等端找到连接路径。主机候选可能暴露本地接口地址,因此浏览器可以用 mDNS 主机名代替私有地址。RFC 8828 描述了这一隐私方向,但不承诺匿名。BotBrowser 可以重复经授权的通话夹具并观察候选与可见状态;它不能控制远端对等端、授予媒体权限或证明服务没有保留网络数据。
要点
把 mDNS 候选看作降低暴露的名称,而不是“没有本地信息”的证明。分别记录浏览器版本、ICE 策略、候选类型、最终 origin 和应用结果。使用合成媒体、自己的路由和有界等待。不要发布地址、ICE 凭据或通话录音。
BotBrowser 可以在声明的浏览器上下文中重复经授权的 WebRTC 测试,并观察脱敏后的候选类别和可见状态。它不能控制远端对等端、提供摄像头、检查服务保留数据,也不能保证所有浏览器行为。用于版本决策的结果必须同时说明这一边界。
目录
mDNS 改变了什么
主机候选描述本地接口。启用 mDNS 后,候选包含本地名称而不是地址。反射候选仍可能显示公网映射,中继候选也可能显示选择了中继。因此候选列表只是隐私观察的一部分。
分开记录证据
| 观察项 | 记录内容 | 不能证明 |
|---|---|---|
| 信令 | 最终 origin 与 HTTP 状态 | 对等端可信 |
| ICE | 类型、协议和脱敏 mDNS 名称 | 匿名或没有服务日志 |
| 连接 | 选中的候选对与状态变化 | 通话质量保证 |
| 应用 | 自有状态标记与超时 | 远端业务记录 |
不要把 mDNS 名称变成主机清单。脱敏 SDP、密码和候选基础字段。浏览器版本或 TURN 配置变化可能改变候选类型,而不改变应用代码。
运行有界夹具
准备两个自有页面:基线控制页和候选页。使用生成的媒体、信令超时,并明确断言 icegatheringstate。分别分类 DNS、证书、权限、信令和连接失败。超时只说明缺少证据,并不说明隐私属性。
候选验证细节
候选类型的上下文
主机、反射和中继候选回答不同的连接问题。主机候选描述本地接口,反射候选表示通过 STUN 看到的映射,中继候选通过 TURN 传输。它们不是从“私有”到“公开”的隐私等级;可见性取决于信令、对等端、中继和浏览器实现。mDNS 只在候选表示中用名称替代本地地址,不应当成为稳定标识或设备清单。
设计对比
先写一个窄问题:“在接口和 ICE 配置不变时,这个浏览器版本是否向我的自有页面暴露 mDNS 主机候选?”让控制页和候选页只相差一个声明的设置。保持 origin、路由、浏览器、ICE 服务器、生成媒体和权限一致;只记录脱敏类别、状态和版本,不记录持久化 profile 标识。
| 字段 | 控制页与候选页 | 原因 |
|---|---|---|
| Origin 与路由 | 同一个自有 HTTPS 路由 | 保持安全上下文一致 |
| ICE 与媒体 | 固定的合成配置 | 排除 STUN/TURN 或真实设备变化 |
| 观察结果 | 脱敏的候选类别 | 不采集地址和凭据 |
| 最终结果 | 状态与候选对类别 | 区分收集和连接 |
谨慎解释结果
如果字符串包含 .local,只记录 mdns-host,不要保存完整名称。收集完成不等于选中了连接对,连接成功也不能说明对等端或信令服务保留了什么。不要从候选收集推断媒体权限。失败可能来自 DNS、防火墙、中继、无效描述或应用断言。
保留有用证据
简短收据应包含问题、夹具版本、浏览器、路由、ICE 配置、候选类别、最终状态、可用时的候选对类别和时间戳,并列出未验证事项:对等端观察、信令保留、真实用户同意和跨浏览器行为。普通报告不得包含地址、SDP、密码、Cookie 或录音;原始数据只能进入有权限和删除日期的受限存储。
分类失败并清理
为每个失败指定责任边界:导航/origin、信令服务、ICE 收集、对等端可达性、中继/防火墙或应用断言。每个阶段都使用有界等待,并保留证据停止的阶段。成功和失败都要关闭连接、停止合成轨道并关闭上下文,避免污染下一次运行。
检查清单
- 页面和信令端点是否自有或已明确授权?
- 问题是否区分候选表示、连接、媒体和服务处理?
- 是否声明浏览器、origin、ICE 配置和合成输入?
- 普通日志是否排除了名称、地址、凭据、SDP 和媒体?
- 每个超时是否标出阶段,结果是否限制在该夹具?
- 成功和失败路径是否都关闭连接与轨道?
实践结论
把 origin、权限、ICE 策略、候选脱敏、选中路径和应用结果作为一条链检查。BotBrowser 可以在声明的上下文中重复经授权的 WebRTC 流程;它不能提供设备、控制对等端日志,也不能保证所有浏览器都符合 RFC 8828。
继续阅读 WebRTC 泄漏防护指南和 SOCKS5 上的 UDP 指南。结果仅适用于声明的版本、路由和配置。
来源
BotBrowser Team