目录
起初
在这篇文章HTTP Alternative Services 介绍里面看到的,居然有这么个评论。
虽然这已经几年前的评论了,但我还是去试了下。差不多是先买了域名和服务器但没备案的时候,搭建web服务器后访问了下,是能够成功访问到的。过了几天,就开始提示未备案了。当时已经启用了https,我就很疑惑,他是怎么做到的呢?类似问题有,如何在路由器上做流量过滤呢?
http 和 https
http是没有加密的,能轻易的过滤出域名信息。一通过备案数据库比对,就可以进行拦截了。这个还是比较好理解的。
而https内容是经过加密的,也就是通过http header 进行匹配是行不通,那么拦截系统是怎么做到检测的呢?
中间人攻击
之前一直在想是不是用的中间人攻击,但了解之后发现是行不通。
Fiddler和路由器则可以通过中间人攻击去解密https流量,其中和备案检测系统最大的区别是:
Fiddler和路由器不仅可以拦截https流量,还可以拦截https的证书和证书验证,可以伪造一个证书返回给浏览器。而服务器运营商,只能得到加密后的流量,证书请求。验证部分的流量并没有通过运营商的服务器。
https 躲备案失效
今天突然想着这个事,就搜索了一下。事实上也有一段时间是可以防备案检测,至少在17年之前是可以的。
刚好,也给我解答了https流量是怎么被检测的。
现在 https 已经没用,SNI 会暴露域名的。
好好去备案
本文单纯技术层面的好奇,无其他目的。法律要求的就要遵守,网络不是法外之地。
补充
2022年2月22日
今天看完HTTPS抓包详细分析,也抓了下包,确实很明显。而且这个阶段是TCP握手后,TSL发送Hello的阶段,是明文传输。