DNS over TLS:解析器隐私与部署
了解 DoT 如何改变 DNS 传输,以及代理和解析器仍能看到什么。
DNS over TLS(DoT)通过 TCP 上的 TLS 保护 DNS 消息,通常经由 853 端口发送到选定的解析器。它可以减少本地网络读取或修改 DNS 流量的机会,但不会让浏览匿名。浏览器、操作系统、代理、解析器、目标网站和账户分别能看到请求的不同部分。
DoT 改变了什么
DoT 与 DoH 是不同的部署选择
DoT 通过 TCP 上的 TLS(通常使用 853 端口)保护 DNS 消息。DoH 把消息放进 HTTPS 请求,可以复用 Web 基础设施、代理和端口。两者都不会让浏览匿名,也不会单独决定解析器的运营者。
网络可能允许普通 HTTPS 却阻止 DoT,也可能由设备策略终止或限制连接。这些是部署差异,不是绕过网络控制的方法。
两种设计中解析器都必须收到查询才能回答。TLS 限制了不能终止会话的中间观察者,但解析器仍可能看到名称、时间和提供服务所需的元数据。
传统 DNS 通常通过 UDP 或 TCP 访问操作系统或网络配置的解析器。DoT 通过 TCP 上的 TLS 传输 DNS 交换,端点可以由浏览器、操作系统、管理员或用户选择。MDN DNS 指南说明了名称解析;DoT 改变的是传输和解析器关系,而不是目标网站的策略。
RFC 7858 说明 DNS Queries over TLS,但没有要求所有浏览器提供相同设置,也没有要求每次查询都使用 DoT。根据策略与可用性,浏览器还可能使用系统、代理或回退路径。
浏览器控制与用户选择
DoT 是浏览器或操作系统策略,不是网页权限。浏览器可能提供自动、关闭或自定义提供商选项;企业策略可能接管设置;网络也可能阻止端点。网页无法可靠地检测或覆盖这一选择。
Firefox 和 Chrome 的文档展示了各自的控制项,默认值可能随版本变化。提供商名称不能证明所有 DNS、连接和遥测都走同一路径。不要要求用户为完成无关任务而违反管理员策略。
代理、解析器与目标边界
代理承载应用请求,解析器回答名称查询。按配置不同,浏览器可能先通过 DoT 解析再连接代理,也可能让代理解析,或在回退时使用系统路径。顺序取决于实现和策略。
解析器通常能看到查询名称和回答所需的元数据。代理能看到承载的连接及其日志。目标网站能看到到达它的请求,包括请求头和账户上下文。HTTPS 保护浏览器到 DoT 端点的链路,但不会让目标网站看不到自己的请求,也不会删除服务保留的记录。DNS 答案不能证明用户身份、位置或意图。
隐私限制与失败处理
DoT 可以减少本地 DNS 观察者看到的内容,但不能阻止解析器了解查询、代理了解连接,也不能阻止网站了解收到的请求。Cookie、存储、账户和应用遥测仍是独立的数据面。不要把 DNS 事件和其他浏览器信号合并成用户画像。
名称解析可能因端点不可用、策略、证书、门户或网络不兼容而失败。保持任务可用,提供清晰的重试或文档化替代方案。不要静默切换到未批准的解析器或无限重试;保存 resolver-unavailable 这类有限的阶段结果通常比保存查询名称更合适。
实用检查清单
记录解析器、控制者、声明的保留方式和已测试的浏览器版本。使用团队拥有的受控域名检查代理与解析器。测试受管、自定义、不可用和回退状态,不收集真实用户的查询历史。
控制项应说明影响的是浏览器、Profile 还是受管设备。管理员拥有的设置应为只读。工作流使用代理时参考 BotBrowser 代理配置指南。恰当的承诺应保持有限:解释路径、减少记录,并在解析器或策略变化时保持任务可用。
另请参阅防止 DNS 泄漏和代理、DNS 与 WebRTC 一致性。
负责任地选择解析器
解析器选择也属于治理决策。比较提供商公开的运营政策、保留说明和事件处理流程。加密传输并不会让提供商看不到查询名称。
回退路径与受控测试
在发布前定义回退:一次重试、清晰消息和文档化替代方案。使用团队控制的域名测试正常、不可用和受管端点,不收集真实查询历史。
解析器应匹配 Profile 用途:个人偏好、受管批准端点或测试专用域名。
不要只因供应商声称“私密”就选择它;核对运营者、保留、管辖区和事故流程。
供应商选择应独立于应用身份,网页不应无理由强制某个解析器。
浏览器可能使用 DoT、系统路径或管理员禁用;门户和操作系统也可能拦截 DNS。
发布前定义回退:公共页面可重试并显示离线状态,敏感流程可在批准解析器不可用时停止。
绝不静默切换到未经批准的端点,并把决定写入用户可见的说明。
浏览器更新、证书或策略变化都可能改变路径;重启或策略变化时重新计算。
Web 没有可移植 API 能证明具体解析器或 DoT 是否保护了查询;成功与耗时都不足以证明传输。
支持只需收集浏览器版本、Profile/策略状态、时间、可见错误和受控主机名,不要收集完整历史。
代理失败与解析失败要分开记录;代理也可能替浏览器解析名称。
DoT 只是一个控制项,Cookie、存储、权限、Referer、账户、日志和第三方资源仍会暴露上下文。
嵌入内容可能走另一条路径;不要把单个浏览器设置描述成整页都使用私密 DNS。
错误报告、截图和支持链接也可能泄露名称。只保留必要字段、脱敏并按期删除。
测试正常、不可用、受管策略、代理自解析和目标失败等结果,而非供应商宣传。
每种情况都检查消息准确性、表单数据保留和下一步,并使用实际支持的版本。
使用团队拥有的域名,排除测试名称进入分析,测试后删除记录。
耗时不能证明某个解析器或网络参与者。
常见问题。
记录 DoT 模式、责任团队、批准端点和回退条件。
浏览器、系统、代理或网络变化时复审策略,不承诺未来行为完全相同。
清晰区分“可用时使用安全 DNS”和“仅使用此提供商”。
受管设置应显示只读和支持渠道;无效的切换开关会误导用户。
限制重试、保留表单并在允许时提供手动或离线路径。
文档应使用测试主机名和脱敏阶段;DoT 不会保护所有浏览器信号。
DoT 会隐藏 IP 吗?不会;它只加密到解析器的 DNS,代理和目标仍可看到后续连接。
网页能知道 DoT 是否启用吗?不能通过可移植 Web API 可靠知道。
代理等于 DoT 解析器吗?不等于;解析器回答名称,代理承载连接且可能代为解析。
应用应强制指定解析器吗?仅在已审查的明确要求下,否则应遵守受管策略并解释失败。
DNS 失败时支持应收集阶段、版本、获授权的策略状态和时间,不要收集完整查询历史。
设置属于浏览器或系统,而不是网页;网页不能强制改变它。
解析器、代理和目标是不同观察者,应分别记录。
隐私承诺应只描述受保护链路,不应声称完全匿名。
DNS 响应不能证明身份、位置或意图。
诊断只应保存阶段和结果,不要保存查询名称。