Cloudflare为改善互联网上每个人的隐私做出贡献。Encrypted Client Hello 是一项新提议的标准,可防止网络窥探用户正在访问的网站,现已在所有 Cloudflare 计划中提供。
加密客户端问候 (ECH) 是ESNI的后继者,它屏蔽了用于协商 TLS 握手的服务器名称指示 (SNI)。这意味着,每当用户访问 Cloudflare 上启用了 ECH 的网站时,除了用户、Cloudflare 和网站所有者之外,没有人能够确定访问了哪个网站。Cloudflare 是每个人隐私的大力支持者,并且对将这项技术变为现实的前景感到兴奋。
浏览互联网和您的隐私
每当您访问网站时,您的浏览器都会向网络服务器发送请求。网络服务器响应内容,网站开始在您的浏览器中加载。早在互联网的早期,这种情况就以“纯文本”的形式发生,这意味着您的浏览器只会通过网络发送每个人都可以读取的位:您可能正在浏览的公司网络、为您提供互联网的互联网服务提供商连接性以及请求在到达托管网站的 Web 服务器之前所经过的任何网络。隐私倡导者长期以来一直担心“纯文本”中可以看到多少信息:如果您和网络服务器之间的任何网络可以看到您的流量,这意味着他们也可以准确地看到您在做什么。
那么如何开始让这些数据更加私密呢?为了防止窃听,以SSL和后来的TLS的形式引入了加密。这些令人惊叹的协议不仅可以保护您的隐私,还可以确保没有中间人可以篡改您查看或上传的任何内容。但加密也仅限于此。
虽然实际内容(您正在访问的网站上的特定页面以及您上传的任何信息)已被加密并免受中介机构的影响,但仍有一些方法可以确定用户在做什么。例如,用于确定您正在访问的网站的地址 (IP) 的 DNS 请求和 SNI都是中介机构跟踪使用情况的常用方法。
让从DNS开始。每当您访问网站时,您的操作系统都需要知道要连接到哪个 IP 地址。这是通过 DNS 请求完成的。DNS 默认情况下未加密,这意味着任何人都可以看到您所询问的网站。为了帮助用户屏蔽这些请求免受中介机构的影响,Cloudflare 于 2019 年推出了基于 HTTPS 的 DNS (DoH)。2020 年,更进一步,引入了基于 HTTPS 的 Oblivious DNS,这甚至可以让 Cloudflare 无法看到用户正在询问哪些网站。
这使得 SNI 成为中介机构可以用来确定您正在访问哪个网站的最后一个未加密位。执行 DNS 查询后,浏览器要做的第一件事就是执行TLS 握手。握手由几个步骤组成,包括使用哪个密码、哪个 TLS 版本以及哪个证书将用于验证 Web 服务器的身份。作为握手的一部分,浏览器将指示它打算访问的服务器(网站)的名称:服务器名称指示。
由于会话尚未加密,并且服务器不知道要使用哪个证书,因此浏览器必须以纯文本形式传输此信息。以明文形式发送 SNI 意味着任何中介只需检查连接的第一个数据包即可查看您正在访问的网站:
这意味着,尽管 TLS 和 DoH 做出了惊人的努力,您在互联网上访问的网站仍然不是真正的隐私。今天用 ECH 添加最后一个缺失的部分。使用 ECH,浏览器与 Cloudflare 执行 TLS 握手,但不是客户特定的主机名。这意味着虽然中介机构能够看到您正在访问Cloudflare 上的网站,但他们永远无法确定是哪个网站。
ECH如何运作?
为了解释 ECH 的工作原理,首先了解 TLS 握手是如何执行的会有所帮助。TLS 握手从ClientHello部分开始,它允许客户端说出要使用哪些密码、哪个 TLS 版本,最重要的是,它试图访问哪个服务器(SNI)。
使用 ECH,ClientHello 消息部分被分为两个单独的消息:内部部分和外部部分。外部部分包含非敏感信息,例如使用哪些密码和 TLS 版本。它还包括“外部 SNI”。内部部分已加密并包含“内部 SNI”。
外部 SNI 是一个通用名称,在例子中,表示用户正在尝试访问 Cloudflare 上的加密网站。选择 cloudflare-ech.com 作为所有网站将在 Cloudflare 上共享的 SNI。由于 Cloudflare 控制该域,cloudflare拥有适当的证书,能够协商该服务器名称的 TLS 握手。
内部 SNI 包含用户尝试访问的实际服务器名称。这是使用公钥加密的,只能由 Cloudflare 读取。握手完成后,网页将正常加载,就像通过 TLS 加载的任何其他网站一样。
实际上,这意味着任何尝试确定您正在访问哪个网站的中介都只会看到正常的 TLS 握手,但有一个警告:任何时候您在 Cloudflare 上访问启用 ECH 的网站时,服务器名称都会看起来相同。每次 TLS 握手都会显得相同,因为它看起来像是在尝试加载 cloudflare-ech.com 的网站,而不是实际的网站。已经解决了保护用户隐私的最后一个难题,这些用户不喜欢中间人看到他们正在访问哪些网站。
有关 ECH 技术的详细信息,请访问介绍性博客。
隐私的未来
cloudflare对这对互联网隐私意味着什么感到兴奋。Google Chrome和Firefox等浏览器已经开始加强对 ECH 的支持。如果您是一个网站,并且您关心用户以不允许任何中介查看用户在做什么的方式访问您的网站,请立即在 Cloudflare 上启用 ECH。cloudflare已经为所有自由区启用了 ECH。如果您是现有付费客户,只需前往 Cloudflare 仪表板并申请该功能即可。cloudflare将在未来几周内为所有注册的人启用此功能。
随着时间的推移,希望其他人能够追随cloudflare的脚步,为每个人带来更加私密的互联网。提供 ECH 的提供商越多,任何人就越难监听用户在互联网上的行为。甚至可能永远解决隐私问题。
如果您正在寻找有关 ECH、其工作原理以及如何启用它的更多信息,请参阅有关ECH 的开发人员文档。