中国电信宽带下载被劫持至缓存服务器

好久没po文(对,就是懒),这回又被中国电信炸出来了……

长话短说,前面在 www.rarlab.com 官网下载新版 WinRAR,结果duang——Firefox冒出来个警告(图1)。

20161119-ctc-1(图1)

肿么了?是川普大大拿俄国企业开刀了?(划掉)

下载的实际 URL 不是官网的 http://www.rarlab.com/rar/wrar540sc.exe,变成了:

http://101.96.10.60/www.rarlab.com/rar/wrar540sc.exe

看到开头两组就知道是中国电信家的服务器了,再看了下 URL,呃,这十有八九是被缓存了呗。重试了下官网下载链接,仍然是被跳转到这个服务器。从 F12 调试工具可以看出,原始 URL 被 302 重定向到了 101.96.10.60 。(图2,图3)

20161119-ctc-2(图2,访问源URL时,被返回302跳转)

20161119-ctc-3(图3,跳转到电信的缓存服务器)

至于这个IP地址被警告,我估计原因是因为是缓存服务器,所以会无脑缓存各种东西,里面应该就包含了有害程序,然后被列入了警告名单。话说回来好在 Firefox 弹出了警告,不然岂不就傻傻的下完了,说不定我还在感慨电信的国际速度现在变得猴赛雷,快的不要不要的。

OK,可能有人会有问题,既然缓存服务器可以改善下载速度,为何不去用它呢?因为:

  1. 之所以叫缓存服务器,就是把某个文件存下来,等下次再有请求被劫持过来时直接发送已存的副本,减少直接访问目标站点的流量。然而,缓存服务器由于不是源文件所有者所掌控的(如CDN)因此无法保证所缓存的副本同步保持更新。试想一下你要下载某软件最新版本的 setup.exe 然而被劫持到了缓存服务器上,下载回来的是缓存服务器上存放的有某个高危漏洞的老版本。
  2. 没有证据表明缓存服务器可以保证源文件来源的可靠性,如果某个安装文件最初的被缓存版本是被动过手脚的版本,那将导致后续下载此文件的人遭殃。
  3. 其实我觉得这点应该是最重要的:在没有告知的前提下进行跳转,这是很恶劣的行为。比劫持页面加入广告更甚。
  4. 别扯什么用户体验、速度更快。要是下载个银行客户端、安全控件被导向到缓存服务器,然后下回来个“特别版”的话……而且国内几大银行 HTTPS 意识也怎么不好。

blahblah了那么多,要完全阻止重定向,大概只有换ISP(然而天下乌鸦一般黑)。目前能想到的只有在路由器的 iptables 里面把这个 /24 段的 IP 全部关进小黑屋。

最后,要解决这个问题也不是完全没有办法,源站全部采用 HTTPS 就是个标本兼治的方法。因为 HTTPS 全程加密传输,所以也就不存在被中途劫持插入个 302 跳转的问题。在 Let’s Encrypt 的大旗下,越来越多的个人站也加入了 HTTPS 大军(包括鄙人的),可见大家的安全意识也在逐步提高。期待那些个涉及敏感信息的(比如银行)的网站,早日开启全站 HTTPS+HSTS。

  • 谁能想到以安全为初衷的 HTTPS 最后会变成反制流氓 ISP 的手段呢?(苦笑)

Leave a Reply

Your email address will not be published. Required fields are marked *