有没有办法绕过基于 sni 的 https 过滤?

信息安全 tls 审查制度
2021-08-29 12:36:58

从网站所有者的角度来看,而不是客户。

韩国政府宣布他们将通过 sni 过滤来审查互联网。

根据韩国法律,所有色情网站都将在韩国被永久封锁。

到目前为止,我们通过连接 https 协议绕过了审查。但现在没用了。所有韩国男人都认为这很严重。

我一定会找到一种方法并通知所有韩国在线社区。为了所有韩国人的自由。

我听说 TLS 1.3 还不支持 sni 加密。

那么,目前有什么解决方案可以解决这个问题吗?

有很多方法可以做一些事情,比如使用代理、VPN、tor,但我不认为这是一个基本的解决方案。除非在服务器上采取行动,否则这不是根本的解决方案。

3个回答

我认为您实际上并不了解 TLS 和 SNI 的作用。SNI 是一种允许多个 Web 服务器托管在同一 IP 上并侦听同一端口但使用不同 SSL/TLS 证书进行加密的技术。在 SNI 之前,侦听同一端口的两个 Web 服务器必须共享证书,例如让反向代理处理 TLS 通道并将流量重定向到实际的 Web 服务器

到目前为止,我们通过连接 https 协议绕过了审查。但现在没用了。所有韩国男人都认为这很严重。

HTTPS(带有 TLS 或 SSL 的 HTTP)不能避免审查,它所做的是加密 - 并在某些方案中提供完整性和身份验证 - 通信通道,因此能够监视流量的对手 - 也就是窃听者 - 无法知道正在传输什么信息。它没有任何反审查属性,能够切断传输通道的攻击者将不知道它发送了什么,但无论如何都会停止通信。

更重要的是,对于带有 SNI 的 HTTPS 的特殊情况,并非所有信息都经过加密。进行 TLS 握手时,您要连接的主机名以明文形式发送

有很多方法可以做一些事情,比如使用代理、VPN、Tor,但我不认为这是一个基本的解决方案。除非在服务器上采取行动,否则这不是根本的解决方案。

通常政府禁止通过 DNS 访问某些网站。DNS 是一种将主机名转换为计算机可以连接的 IP 的协议,这意味着如果您已将 DNS 解析器配置为 xxxx,则您只能访问 xxxx 知道 IP 的那些主机名。在某些情况下,更改 DNS 解析器足以恢复对被禁止网站的访问(一些流行的 DNS 解析器是来自 Google 的 8.8.8.8 和 8.8.4.4 或来自 Cloudflare 的 1.1.1.1 和 1.0.0.1)。这种情况发生在几年前的 Siria,当时 Google DNS 是用油漆写在墙上的,以恢复对媒体信息的访问。请注意,在这种情况下,更改 DNS 解析器不会阻止本地网络或中间节点中的对手知道客户端正在与 Web 服务器通信

如果您不希望对手知道您将 VPN 或 Tor 连接到哪台服务器,这是强制性的。当使用 VPN 或 Tor 时,在客户端本地网络或中间节点中的对手,直到 Tor 入口点知道您正在连接到该 VPN 或 Tor 入口节点,但之后将无法知道任何事情. 以类似的方式,Web 服务器 - 以及其本地网络中的对手 - 将知道连接来自 Tor 出口节点。对于 VPN 和 Tor 网络,需要特别注意防止DNS 泄漏

根据代理类型,使用代理可能是安全的。

  • SOCKS 代理的工作方式类似于 Tor 网络,但只有一个节点,这大大降低了隐私,因为窃听代理的传入和传出流量的对手可以轻松识别哪个代理用户正在连接到哪个 Web 服务器,这并不简单在 Tor 中,因为入口和出口节点不同,并且不直接通信。

  • 如果改为使用 HTTPS 代理,则客户端和代理之间的连接使用代理证书加密,然后使用 Web 服务器证书解密和重新加密。这意味着客户端需要信任代理,因为它可以看到通过它的所有流量。此外,客户端的浏览器可能会显示警告,因为代理证书不受信任。

最后,使用 VPN、Tor 或两者都是最好的解决方案。与看起来相反,审查是在连接的“客户端”而不是在 Web 服务器上应用的。不允许的是来自某些国家/地区的客户端连接到网络服务器,网络服务器对此 AFAIK 无能为力

使用 Tor、VPN 甚至代理连接到站点绕过网络过滤器的标准方法。我不知道你为什么不认为它是一个解决方案,或者为什么你想要在服务器上提供一个解决方案(这可能没有什么动机来实现绕过功能)。

通过 TLS 隐藏您正在连接的网站的一种方法是连接请求 TLS 层 (SNI) 中的域,但在 HTTP 层中请求一个不同的域(为此您需要一个非标准软件),一种称为的技术正面

由于网络检查只能看到外部的,您可以在 SNI 中提供一个无害的域,并让服务器回复 HTTP 域。如果两个域都托管在同一个 IP 地址上(例如,它们位于 CDN 上),由于审查代理无法区分对无害域和不需要的域的访问,他们还必须阻止另一个域。Signal 曾经这样做,隐藏他们与 TLS 的连接,说明他们是 google.com,一个太大而无法阻止的网站。

您可以告诉用户使用许多无服务器客户端应用程序。他们不重定向流量,所以没有减速。

您可以在 Android 上使用Intra App或在 Windows 上使用GoodbyeDPIGreen Tunnel似乎可以在 Linux、Windows 和 macOS 上运行,但我从未听说过。

或者,您可以在支持加密 SNI 的 Cloudflare 上托管您的网站,并告诉用户使用Firefox Nightly