Https报文中的SNI字段

来自三线的随记
Admin讨论 | 贡献2020年5月27日 (三) 20:49的版本 (创建页面,内容为“https通讯过程中, ssl挥手阶段的client hello报文中的server name字段值(ssl.handshake.extensions_server_name)[Server Name Indication, 缩写SNI],…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

https通讯过程中,

ssl挥手阶段的client hello报文中的server name字段值(ssl.handshake.extensions_server_name)[Server Name Indication, 缩写SNI],

会暴露https通讯中目标站点的domain


tcpdump参考命令

tcpdump -i any -s 1500 '(tcp[((tcp[12:1] & 0xf0) >> 2)+5:1] = 0x01) and (tcp[((tcp[12:1] & 0xf0) >> 2):1] = 0x16)' -nnXSs0 -ttt


SNI加密

基于ESNI解决:ESNI是 TLS 1.3 协议的扩展,他可以加密SNI使HTTPS流量更难以被分析(也就是域名值加密了),基于ESNI还可以达到畅快访问某些学术网站的目的(相关技术加成关键词: DNSSEC),然而目前各大浏览器对ESNI并没有很好的支持(chrome不支持,据说火狐实验支持)

检测浏览器是否支持ESNI等技术的网址: https://www.cloudflare.com/ssl/encrypted-sni/