政府审查我们网站的 HTTPS 流量。解决方法?

Mar*_*ary 63 domain-name-system domain isp block

我正在帮助运营一个网站,该网站因政治原因被之前曾尝试阻止 Telegram (RosKomNadzor)的同一俄罗斯机构阻止。这不是第一次发生,以前我们只会更改域,但这有其自身的影响和读者流失。

他们只阻止域名,而不是 IP(无论如何我们都在使用 Cloudflare)。我们正在使用 HTTPS,但 ISP 仍然能够以某种方式从他们的客户端获取有关我们的请求的 DNS 信息。从技术上讲,我们可以建议我们的读者配置他们的/etc/hosts,但这不是一个可行的选择。

是否可以在我们的服务器端做一些事情来加密/混淆 DNS 信息,而无需用户进行任何更改/安装软件?还是等待 DNS over HTTPS 成为我们唯一的选择?

来自俄罗斯的爱。

Esa*_*nen 58

不幸的是,绕过审查最好在客户端解决,因此没有多少服务器端设置可以帮助解决这个问题。您可以建议您的用户使用 VPN、Tor和/或带有 DNS-over-HTTPS ( RFC 8484 ) 或 DNS-over-TLS ( RFC 7858 ) 的公共 DNS 。

您假设审查方法与 DNS 有关,但您是否真的对此进行了测试?您是否知道ClientHello中的服务器名称指示(SNI, RFC 6066, 3 ) 是未加密的,也可能用于阻止 TLS 连接?幸运的是,TLS 加密客户端 Hello ( draft-ietf-tls-esni-09 ) 正在开发中,可以提供帮助。关于该主题的更多阅读:

我们通常不会在 Q/A 帖子中添加任何问候,但您的 007 参考是金子!

  • @JamesTheAwesomeDude 服务器将使用欺骗(或“SNI-less”默认,如果已配置)域名的证书进行响应(假设它有!)。这种技术称为域前端,供您进一步研究。 (7认同)
  • 众所周知,俄罗斯 ISP 使用 DNS 欺骗作为政府强制审查的第一道防线。 (6认同)
  • 他们使用 SNI,至少最后我检查过。对于由于 RKN 被阻止的站点,您可以通过禁用 SNI 客户端来绕过它们(显然这仅适用于 IP 上只有一台主机的站点),除非最近情况发生了变化。这不是一个真正的解决方案,但至少它表明他们确实使用了 SNI。 (4认同)

dro*_*kie 19

大多数俄罗斯供应商通过拦截 DNS 流量并动态更改它来实现 Inquisition 请求(这很容易,因为它是未加密的),有效地使用了中间人方案,例如,所有 Ertelecom 附属的 ISP 都是使用这种方法。在这种情况下(只需比较客户端解析的 IP 与真实 IP,就可以轻松确定)服务器端无法做任何事情:即使您将实施 DNSSEC 并且签名答案将开始流动,所有这些技术都可以当涉及到您的域时,正在完全破坏客户端名称解析堆栈(但是,这纯粹是一个理论,但您可以轻松证明我错了;如果我错了)。

不幸的是,绕过 DNS MitM 的所有可用解决方案都需要应用于客户端,而不是服务器端。

  • DoH 可能会有所帮助(DNS over Https),但这也是客户端的事情。 (3认同)
  • 如果我将其设置为俄罗斯,我会拦截 DNS 并删除所有内容的 DNSSEC 记录,从而使公共互联网上不存在 DNSSEC 的任何软件看起来都如此。 (3认同)

fra*_*nus 5

众所周知,俄罗斯政府授权的审查使用 DNS 欺骗(这就是阻止选择色情网站的方式)。

他们还使用基于 IP 地址/范围的数据包过滤器(这就是他们试图阻止 Telegram 并失败的方式)。

一个想法:基于时间的域名!

RosComNadzor 是一个政府机构,所以他们的反应应该有点慢。

DOS他们!例子:

等等...

您每周都需要一个新域名(10 美元),而您可爱的 RosKomNadzor 官僚们并不是那么能干。

您的用户应该记住将最后一个星期日的日期添加到域名中。如果情况变得更糟,你也可以走得更快,只是更贵一点(你也可以为那么多域名协商一个更好的价格)。

在某些时候,他们也可以根据您的计划调整他们的程序。你只需要稍微改变它。

  • 您打算在多长时间内注册域名?没有什么能阻止我或代理机构注册任何即将推出的免费域名。这其实更危险。人们会相信他们访问了合法网站,而事实并非如此。他们可以提供虚假信息,可以收集凭据和/或跟踪到最小的细节! (23认同)
  • 为了补充此方法,您可以为用户提供一个 [书签](https://en.wikipedia.org/wiki/Bookmarklet),自动将他们带到正确的域名。 (6认同)
  • 嗯,这就是我们已经在做的事情,更改域名。主动而不是被动地这样做听起来像是一个有趣的想法。 (4认同)

Nic*_*lla 5

通过 IPFS 使您的内容可用! https://ipfs.io/ 这是互联网的去中心化版本。每个访问您网站的客户都将您的内容副本存储在他们的机器上。

去中心化网络

  • 使用 IPFS,您的内容的 URL 是内容本身的哈希。散列可防止篡改,因为所有 URL 都是您获取的内容的散列,因此如果您篡改内容,该内容的 URL 将具有不同的散列,因此没有人会请求它。参见:https://docs.ipfs.io/concepts/hashing/“内容本身用于形成地址” (2认同)