我希望我的政府在所有页面上都使用 HTTPS 的网站上阻止某些网页(在我的国家内)。My Govt 同意需要阻止特定 URL,但表示无奈,因为他们的 ISP 声称他们无法选择性地阻止 HTTPS URL,但必须阻止整个网站/域/子域,这将导致真正的用户受到影响。尽管我的政府和执法部门提出了要求,但该著名网站仍拒绝删除受到质疑的网页。
ISP 是否可以选择性地阻止 HTTPS 网站上的页面 URL,而单独保留其他页面 URL?
不,ISP 无法阻止特定的 HTTPS 保护页面,因为它无法确定正在访问的页面。
HTTPS 不会隐藏正在访问的服务器,因为它需要 SNI(服务器名称指示)明确,以便服务器知道在连接时使用哪个证书。握手建立后,其他所有内容都会加密,包括您请求的页面。
所以 ISP 有两种非最佳方式来回答:不阻止任何东西,或者阻止整个服务器。
加密的 SNI实际上是一回事(我认为 Cloudflare 确实在 2018 年增加了支持)。诚然,我不知道它有多普遍。– s1lv3r
加密 SNI 是面向未来的事情。它是 TLS 1.3 规范的一部分,但不能通过更改网络服务器上的配置选项来启用。它需要更改 DNS 记录,并需要网络服务器的支持。它仍然没有在网络服务器和网络浏览器中得到广泛的支持,并且还不够成熟,无法让高流量的服务器采用它。
ESNI 将有助于向 ISP 和政府隐藏您正在访问的域(很大程度上取决于您的网络配置),但不会帮助 ISP 选择性地阻止该域上的页面。
只是为了完整起见,实际上有一些方法可以实现这一点,但它们通常是极权主义政权的工作,他们想要窃听每个人的谈话和/或阻止不符合“党派路线”的内容,当然不会这样做“只为你”:强制所有用户安装备用根证书,并让该站点的所有流量通过代理,该代理将在转发到原始服务器之前提供由该备用根签名的 TLS 证书,除了当然是问题。
就像其他人所说的那样,在大多数情况下,检查 TLS 流量需要安装证书甚至是一些软件,这并不适用于大多数人。另一方面,根据您考虑阻塞的方式,有一种方法可以使它成为可能:
有一项研究表明,在某些情况下可以识别 HTTPS 加密内容:有一篇论文 ( PDF ) 表明可以建立一个指纹数据库,该数据库可用于实时识别受 HTTPS 保护的 Netflix 视频。存在一些限制,例如需要一些时间来识别视频:“[...] 大多数识别发生在视频流中不到两分半钟的时间内。”。
它不能识别具体访问的是哪个 URL,也不能用于完全屏蔽内容,但如果该 URL 只是指向视频且需要屏蔽的内容在检测余量之后,则可用于检测何时有人开始观看它,然后阻止与服务器的连接。在极权主义政权的背景下,它甚至可以用来寻找那些观看反对它的视频的人。在 ISP 的上下文中,它可以用来猜测是否一些用户观看了一些流行视频,然后将这些数据出售给广告商。
由于本文的日期是 2017 年,在 TLS 1.3 之前,这种方法可能不再有效。我希望。