SNI 是否始终用于 TLS 连接?
信息安全
tls
证书
2021-08-27 16:16:28
2个回答
可能有一种方法可以在您的浏览器设置中禁用 SNI。这将阻止您的浏览器client hello在您通过 https 连接到站点时发送 SNI 信息。
但是,这也意味着:
如果服务器在同一个 IP 上托管多个 TLS 站点,您的浏览器将无法连接到这些站点中的任何一个(这正是我们拥有 SNI 的原因 - 这样服务器就可以在同一个 IP 上托管多个 TLS 站点)。
如果服务器在 IP 上仅托管一个 TLS 站点,那么您的浏览器将能够通过 https 连接到它。但是,任何窃听者都会知道您正在连接到该站点,因为它是该 IP 上的唯一站点。
因此,在您的浏览器中禁用 SNI(如果可能的话)可能会阻止您连接到很多站点,并且仍然会泄露您仍然能够连接到的站点。
是否使用 SNI 扩展取决于 TLS 客户端。有些会默认使用它(例如所有主要浏览器?),有些根本不会使用它(例如 Windows XP 上的所有 IE 版本),而其他一些客户端将根据参数/配置使用或不使用它(参见例如 openssl s_client 带有选项 -servername 和 -noservername)。