⑴ ECH(Encrypted Client Hello) 技术简述
ECH(Encrypted Client Hello)技术是TLS协议的一个扩展,旨在加密TLS连接握手过程中的Client Hello明文信息。以下是对ECH技术的详细简述:
一、背景与目的在TLS(传输层安全协议)连接建立过程中,Client Hello是客户端向服务器发送的第一个消息,其中包含了诸如SNI(服务器名称指示)等敏感信息。这些信息通常被网络运营商用于分析用户的上网行为,并可能被打包售卖给广告营销商,从而给用户带来不必要的麻烦和骚扰。ECH技术的出现,正是为了加密这些信息,保护用户的隐私。
二、工作原理ECH技术的工作原理相对简单,但实现起来却相当复杂。其核心在于将原Client Hello信息拆分成两个部分:明文的Client Hello Outer和密文的Client Hello Inner。
facing server在收到Client Hello Outer后,会使用自己的私钥解密Client Hello Inner,从而获取到完整的Client Hello信息。然后,facing server会中断这次TLS握手,并使用解密后的参数(如SNI)尝试与对应的upstream(上游服务器,即实际提供服务的web服务器)进行正常的TLS握手。
三、关键组件与流程facing server:一个web服务器的代理网关,拥有一个或多个IP地址,背后可能托管着数个或数万个网站。facing server的公钥由浏览器客户端在DNS解析阶段从支持DoH(DNS over HTTPS)的DNS服务器获得。
DoH(DNS over HTTPS):一种通过HTTPS协议进行DNS查询的技术。它允许客户端在加密的通道上向DNS服务器发送查询请求,并接收加密的响应。DoH服务器支持HTTPS Resource Record,其中包含了facing server的公钥。
Client Hello Outer与Client Hello Inner的生成与传输:
浏览器客户端在发起TLS连接时,首先会生成Client Hello Outer和Client Hello Inner。
Client Hello Outer以明文形式发送给facing server。
Client Hello Inner使用facing server的公钥进行加密,并发送给facing server。
facing server的解密与重定向:
facing server使用自己的私钥解密Client Hello Inner,获取完整的Client Hello信息。
facing server中断这次TLS握手,并使用解密后的参数(如SNI)尝试与对应的upstream进行正常的TLS握手。
ECH技术的实现需要同时满足以下三个条件:
ECH技术通过加密TLS连接握手过程中的Client Hello明文信息,有效保护了用户的隐私。然而,其实现需要同时满足多个条件,包括web服务器套件的支持、启用DoH协议的DNS服务器以及支持ECH协议的浏览器。随着技术的不断发展,ECH技术有望在未来得到更广泛的应用和推广。