TLS保护的URL哪些部分会暴露给中间人ISP?多场景技术问询
TLS加密下URL信息暴露问题解答
问题1:HTTPS地址https://cats.tumblr.com/archive?x=y的哪些部分会泄露给中间人ISP?
- 可泄露内容:完整域名
cats.tumblr.com,包括子域名cats和主域名tumblr.com,路径/archive、查询参数x=y均不可见。 - 原因说明:
默认场景下,HTTPS请求的DNS解析请求、TLS握手阶段的SNI(服务器名称指示)扩展均为明文传输,ISP可直接获取完整的请求域名。
TLS握手完成后,所有HTTP层的内容(包括请求路径、查询参数、请求头、请求体)都会被加密封装在TLS隧道中,中间人无法直接解析读取。
若客户端和服务端均支持ECH(加密客户端握手),SNI内容会被加密,此时域名也不会明文泄露,但该技术目前普及度较低。
问题2:站点引用的独立HTTPS图片https://i.kym-cdn.com/photos/images/original/002/185/700/4e8.png的哪些信息会暴露给中间人?
- 可泄露内容:完整域名
i.kym-cdn.com,图片的存储路径、文件名均不可见。 - 原因说明:加载第三方HTTPS资源的逻辑和访问普通HTTPS站点完全一致,中间人只能通过DNS查询、TLS握手的明文SNI拿到完整的资源域名,无法获取HTTP层的路径相关信息,不存在全量信息无暴露的情况,也不会只暴露主域名部分。
问题3:作为中间人的ISP是否可以获取到被访问URL长度相关的有效信息?
- 分两种场景判断:
- URL中域名部分的长度是完全透明的,ISP可通过明文的DNS请求、SNI内容直接获取准确长度。
- URL中路径、查询参数部分的长度无法直接获取,但可通过加密流量的特征做推断:TLS加密的应用层数据负载长度是中间人可观测的,在站点未做流量padding混淆、无并发请求帧复用的场景下,负载长度和URL+请求头的总长度高度相关,ISP可结合流量特征库推断出URL的大致长度范围,甚至匹配到已知的URL特征,但无法拿到100%准确的路径部分长度。
内容的提问来源于stack exchange,提问作者chausies
相关产品推荐
相关产品推荐

