跳到主要内容
ecdsa.com

ClientHello

TLS 握手的第一条消息,以明文发送,客户端在其中列出支持的版本、密码套件、组、签名算法、密钥共享以及服务器名称等扩展。
其他写法Client HelloClientHello messageGREASE

服务器选择参数所需的一切都在其中:supported_versions、cipher_suites、supported_groups(10)、key_share(51)、signature_algorithms(13)、server_name(0)、ALPN(16)、pre_shared_key(41,始终位于最后)等。由于它没有加密,会暴露目标主机名(除非使用加密 ClientHello)以及客户端软件的指纹。

大小重新变得重要:混合 X25519MLKEM768 密钥共享会增加约 1.2 KB,因此现代的 ClientHello 常常要占用两个 TCP 报文段或 QUIC 数据包。一些服务器、负载均衡器和防火墙假定它能装进一个数据包,在浏览器启用后量子密钥交换后就出了故障;Chrome 在 124 版(2024年)默认启用混合 Kyber 密钥共享后,tldr.fail 记录了这一类服务器缺陷。

GREASE 值(RFC 8701)和 Chrome 的随机扩展顺序(自2023年初起)可以防止服务器僵化地依赖确切的内容。TLS 指纹检测工具可以显示你的浏览器发送了什么。

标准与参考资料

全部术语