我的ISP如何知道我想通过https浏览一个torrent网站


2

所以,我试图浏览洪流网站上的https今天一个新的ISP。当我尝试打开页面时,它打开了以下html内容

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0" /><style>body{margin:0px;padding:0px;}iframe{width:100%;height:100%}</style><iframe src="http://www.airtel.in/dot/?dpid=1&dpruleid=3&cat=107&dplanguage=-&url=http%3a%2f%2f1337x%2eto%2f" width="100%" height="100%" frameborder=0></iframe>

现在,在iframe上面的标签中,它说我访问的网站是http://地址。我认为这可能是浏览器端重定向问题。我试过卷曲:

< HTTP/2 200 
< date: Tue, 24 Oct 2017 11:33:25 GMT
< content-type: text/html
< set-cookie: __cfduid=d1b602f2b9f113fd92311ca7bcd516e281508844805; expires=Wed, 24-Oct-18 11:33:25 GMT; path=/; domain=.1337x.to; HttpOnly
< pragma: no-cache
< cache-control: no-cache
< server: cloudflare-nginx
< cf-ray: 3b2c9f03bf0e2fed-MAA
< 
{ [323 bytes data]
* Curl_http_done: called premature == 0

100   323    0   323    0     0    349      0 --:--:-- --:--:-- --:--:--   349
* Connection #0 to host 1337x.to left intact
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0" /><style>body{margin:0px;padding:0px;}iframe{width:100%;height:100%}</style><iframe src="http://www.airtel.in/dot/?dpid=1&dpruleid=3&cat=107&dplanguage=-&url=http%3a%2f%2f1337x%2eto%2f" width="100%" height="100%" frameborder=0></iframe>

我搜索了更多,发现了以下主题:

哪些回复相互矛盾。SU线程说他们可以记录和中断所有流量,无论http或https; 而security.se提到,由于SNI,它需要阻止IP级别而非域级别的流量。由于我试图打开的网站是通过cloudflare代理服务的,我认为他们不会禁止整个CloudFlare范围。

我的下一个想法是,他们可能会注入自己的SSL证书来模仿MITM,并尝试过

$ openssl s_client -showcerts -servername <domain-name>  -connect <domain-name>:443 2>&1 | curl -F 'sprunge=<-' http://sprunge.us

其输出可以在返回的粘贴链接中看到。

我的问题是,我的ISP如何知道我尝试通过HTTPS访问该页面?


跟踪路由输出,如评论中所示:

traceroute to google.com (216.58.197.78), 30 hops max, 60 byte packets                                                                     
 1  domain.name.dlink.com (192.168.0.1)  3.053 ms  4.309 ms  4.414 ms                                                                                  
 2  60.243.246.225 (60.243.246.225)  5.519 ms  5.613 ms  5.629 ms
 3  202.88.156.1 (202.88.156.1)  6.169 ms  6.184 ms  7.783 ms
 4  202.88.156.70 (202.88.156.70)  5.914 ms  6.009 ms  6.024 ms
 5  202.88.156.61 (202.88.156.61)  6.412 ms  6.497 ms  7.096 ms
 6  202.88.157.29 (202.88.157.29)  14.422 ms  9.700 ms  10.318 ms
 7  202.88.152.69 (202.88.152.69)  10.199 ms  10.240 ms  10.187 ms
 8  209.85.252.188 (209.85.252.188)  10.149 ms  10.146 ms  12.658 ms
 9  209.85.250.67 (209.85.250.67)  10.415 ms  10.432 ms  10.292 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *

并为<domain-name>

traceroute to <domain-name> (104.31.17.3), 30 hops max, 60 byte packets
 1  domain.name.dlink.com (192.168.0.1)  1.077 ms  1.244 ms  1.247 ms
 2  60.243.246.225 (60.243.246.225)  2.131 ms  2.216 ms  2.232 ms
 3  202.88.156.1 (202.88.156.1)  4.674 ms  4.802 ms  4.800 ms
 4  202.88.156.70 (202.88.156.70)  4.740 ms  4.660 ms  4.727 ms
 5  202.88.156.61 (202.88.156.61)  4.796 ms  4.865 ms  4.828 ms
 6  10.241.1.6 (10.241.1.6)  4.806 ms  2.831 ms  3.001 ms
 7  10.240.254.100 (10.240.254.100)  2.007 ms  2.088 ms  2.126 ms
 8  10.240.254.1 (10.240.254.1)  4.330 ms  4.210 ms  4.556 ms
 9  10.241.1.1 (10.241.1.1)  3.193 ms  2.947 ms  3.289 ms
10  219.65.110.177.static-bangalore.vsnl.net.in (219.65.110.177)  4.799 ms 219.65.110.181.static-bangalore.vsnl.net.in (219.65.110.181)  5.675 ms 125.16.134.109 (125.16.134.109)  17.859 ms
11  * 182.79.255.149 (182.79.255.149)  41.278 ms 182.79.188.188 (182.79.188.188)  45.378 ms
12  103.29.44.3 (103.29.44.3)  32.153 ms  32.805 ms *
13  * * *
14  * * ae31-100-xcr1.mlu.cw.net (213.38.254.33)  134.952 ms
15  if-ae-13-2.tcore1.SVW-Singapore.as6453.net (180.87.36.83)  43.144 ms if-ae-3-3.tcore2.CXR-Chennai.as6453.net (180.87.36.6)  43.108 ms *
16  if-ae-6-2.tcore2.SVW-Singapore.as6453.net (180.87.37.14)  41.229 ms cloudflare-ic-306776-mno-b2.c.telia.net (213.248.94.54)  171.588 ms  172.281 ms
17  * * *
18  * * *
19  * 120.29.214.90 (120.29.214.90)  41.753 ms *
20  * * *
21  * * *
22  * * *

因此,网络跃点明显不同。


是的,我使用的是ISP提供的DNS。将我的DNS端点更改为Google端点(8.8.8.8和8.8.4.4),并尝试再次进行卷曲会导致以下错误(它们在彼此之间交替):

  1. curl:(35)错误:1408F10B:SSL例程:SSL3_GET_RECORD:版本号错误
  2. curl:(56)SSL读取:错误:1408F10B:SSL例程:SSL3_GET_RECORD:错误的版本号,错误号0

PS:上面的片段确实有我试图访问的实际域名。我也想过编辑那些数据,但也许其他人可以使用实际值来复制和解释行为<domain-name>。所以决定反对它。


2
答案是SNI,如您链接的安全堆栈交换答案中所解释的,和/或您正在使用其DNS服务器。
Twisty Impersonator

@TwistyImpersonator现在更改DNS会导致新错误。查看更新后的帖子
hjpotter92

@Biswa上面添加了traceroutes的输出
hjpotter92

更改DNS是否适用于上网?
Biswapriyo

@Biswa更改DNS不会影响浏览其他网站。只是<domain>上面提到的返回SSL3错误。
hjpotter92

Answers:


2

当您在HTTPS上使用SNI时,您要访问的URL未加密,因此ISP可以使用深度数据包检查来确定它(但它们无法查看网站的内容,只能看到域名) - 这是他们如何看待你的流量。

如果你想解决这个问题,给自己买一个没有阻止的VPN服务(或购买虚拟服务器并运行你自己的VPN)


好的,但在这种情况下他们如何能够注入自定义响应?充其量(根据我的理解),他们可以丢弃所有数据包!
hjpotter92

1
我想他们正在拦截https网站的谈判并在那个阶段注入支持。稍微简化 - 浏览器连接到IP地址并说(以纯文本格式)我想与加密的站点XXX交谈。ISP使用HTTP负载响应而不是服务器响应OK,这是站点公钥,让我们协商安全连接。
davidgo 2017年

但SSL握手在整个过程中取得了成功。简单地说,这是该站点的公钥,让我们协商一个安全的连接。客户端会说好,这是会话令牌,用您的公钥加密,用您的私钥解密,我们可以交谈。ISP如何做到这一点
hjpotter92
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.