![OpenNIC DNS 服务器的可信度](https://linux22.com/image/1551467/OpenNIC%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E5%8F%AF%E4%BF%A1%E5%BA%A6.png)
尽管 Google 的8.8.8.8
DNS 服务器是您的 ISP 提供的 DNS 服务器的流行替代 DNS 服务器,但隐私问题对我来说太麻烦了。在研究尊重隐私的替代 DNS 服务器时,我发现 OpenNIC 池相当受欢迎。
不过,我不确定我对这些服务器的可信度有何看法。他们在 IANA 权限之外实施了自己的根区扩展。除了公众监督之外,还有什么能阻止他们重新定义 IANA 定义的根区部分?
我知道将 DNS 查询直接转发到大规模 DNS 根名称服务器是有害的,但似乎确保正确*和私密结果的唯一方法是在本地网络上安装缓存递归解析器。对于单个家庭网络,这不会给根服务器带来负担,但肯定不会扩展到每个家庭。
那么我应该使用 OpenNIC 还是转发到根服务器?我自己的 ISP 不行,因为他们经常进行 DNS 劫持。
*如果没有广泛采用 DNSSEC,这只能解决正确性问题,但不能解决隐私问题。
答案1
信任问题本质上并不是一个技术问题,因此你永远无法完全回答诸如“我应该信任 X 吗”这样的问题,特别是如果你补充说“... 在遥远的 Z 未来不要执行操作 Y”。
特别是因为在您的问题中,您似乎既不确定提供商本身,也不确定提供商和您之间的路径上发生了什么。
如果您想更好地控制解析过程,您主要别无选择,只能运行自己的递归缓存名称服务器,要么直接在您的主机上,要么在您信任的其他主机上。特别是如果您想要完全确定使用 DNSSEC 提供的功能:如果您使用远程验证名称服务器,您相信它会为您正确完成所有 DNSSEC 计算。
因此,我不会尝试评估1.1.1.1
(CloudFlare)或8.8.8.8
(Google)或9.9.9.9
(IBM+PCH+GlobalCyberAlliance)或OpenNIC 或任何其他https://en.wikipedia.org/wiki/Public_recursive_name_server或者其他人值得信任或比其他人更值得信任。这也是一种非常个人化的观点(你信任谁),而且它会随着时间而改变。
您的断言“但它肯定不会扩展到每个家庭。”并不那么明确。人们越来越多地在内部处理他们的 DNS 解析(或转发到以前的公共 DNS 解析之一),并且根服务器有足够的容量。请注意,问题可能实际上不在这里,因为这个区域文件移动缓慢、很小,并且缓存在各处。问题可能更多地出现在某些 TLD 名称服务器中,例如.COM
,其中区域文件既有数百万个条目,又有可能不小的定期更改。
您有多种选择,有时您可以混合搭配:
- 使用QNAME 最小化(由上述一些公共服务支持)在您使用的名称服务器上。这样可以减少每个名称服务器的信息量,同时保持 DNS 协议的运行方式与以前完全相同
- 您可以使用现在的标准基于 TLS 的 DNS能够查询任何提供该服务的名称服务器(同样,一些公共名称服务器正在提供或计划提供)或甚至“很快”通过 HTTPS 提供 DNS。当然,这样做只是转移了问题:您可以安全地抵御路径中的劫持者,但您需要建立与您交换的端点的身份验证;同样,如果您自己管理,会更简单。
- 有些人建议以随机方式使用“多个”公共 DNS 服务器(这样它们就不会获取你的所有流量),甚至比较结果
- 你还可以使用一些更精细的工具,例如斯塔比(使用 getdns API)尝试为您提供隐私方面的最佳功能,但如果您更看重可用性而非安全性,也可以配置为回退到早期的不安全机制。类似dnssec 触发器还会尝试首先使用您的默认名称服务器并检查它们确实正常工作并在需要时自行处理请求,从而为您提供 DNSSEC 好处。
- 为了详尽,我需要列出DNS加密(开放但未标准化)旨在防止欺骗。但是您需要特定的客户端和服务器才能使用此协议进行通信。
为了扩展你的知识,这个 wiki 可能是一个很好的开始:https://dnsprivacy.org/wiki/