我正在帮助运营一个网站,该网站因政治原因被俄罗斯机构封锁,而这个机构之前曾尝试屏蔽 Telegram(RosKomNadzor)。这不是第一次发生这种情况,以前我们只会更改域名,但这有其自身的影响,并会导致读者流失。
他们只阻止域名,而不阻止 IP(反正我们使用 Cloudflare)。我们使用 HTTPS,但 ISP 仍然能够以某种方式从其客户端获取有关我们请求的 DNS 信息。从技术上讲,我们可以建议读者配置他们的/etc/hosts
,但这不是可行的选择。
在我们的服务器端是否可以采取一些措施来加密/模糊化 DNS 信息,而无需用户进行任何更改/安装软件?还是等待 DNS over HTTPS 成为主流是我们唯一的选择?
来自俄罗斯的爱。
答案1
不幸的是,绕过审查最好在客户端解决,因此没有太多的服务器端设置可以帮助解决这个问题。你可以建议你的用户使用 VPN,Tor和/或使用 DNS-over-HTTPS 的公共 DNS(RFC 8484)或 DNS-over-TLS(RFC 7858)。
你假设审查方法与 DNS 有关,但你真的测试过吗?你知道服务器名称指示(SNI,RFC 6066, 3)未加密,也可能用于阻止 TLS 连接?幸运的是,TLS 加密客户端问候(草案-IETF-TLS-ESNI-09) 正在开发中,可以提供帮助。有关此主题的更多阅读材料:
- Seth Schoen:ESNI:HTTPS 的隐私保护升级(有效载荷)
- 马修·普林斯:加密 SNI:修复互联网核心漏洞之一(Cloudflare)
(我们通常不会在问答帖子中添加任何问候,但您的 007 参考非常有用!)
答案2
大多数俄罗斯提供商通过拦截 DNS 流量并动态更改它来实施 Inquisition 请求(由于未加密,因此非常容易),有效地使用中间人方案,例如,所有与 Ertelecom 相关的 ISP 都在使用此方法。在这种情况下(只需比较客户端解析的 IP 与真实 IP 即可轻松确定),服务器端无法执行任何操作:即使您实施 DNSSEC 并且签名的答案将开始流动,但当涉及到您的域名时,这种技术所做的只是完全破坏客户端名称解析堆栈(但是,这纯粹是一种理论,但您可以轻松证明我错了;如果我错了)。
不幸的是,所有可用的绕过 DNS MitM 的解决方案都需要应用于客户端,而不是服务器端。
答案3
通过 IPFS 提供您的内容! https://ipfs.io/ 这是互联网的去中心化版本。每个访问您网站的客户都会将您网站内容的副本存储在他们的机器上。
答案4
我们服务器端能做些什么来加密/混淆 DNS 信息,而无需用户进行任何更改/安装软件?
不是,因为 DNS 请求由专用名称服务器处理,因此它们不会通过您的 Web 服务器进行路由。
或者等待 DNS over HTTPS 成为主流是我们唯一的选择?
基本上;DNS-over-HTTPS 旨在增强隐私、阻止审查并防止您所描述的攻击。最新版本的 Google Chrome 和 Firefox(至少在桌面上)支持它,因此理论上您的大多数用户应该已经能够使用它了。