一直以来,电信通过HTTP劫持推送广告的方式已经存在了很多年了,这种手段至今并未停止。这种手段月光博客曾经有多次曝光,见《电信级的网络弹出广告》、《获取了电信恶意弹出广告的罪证》和《谁控制了我们的浏览器?》。虽然HTTP本身的不安全性导致有路由器控制权限的人(比如电信运营商)可以获得没有使用HTTPS登录认证的网站的注册用户的密码,但一开始我并不认为电信运营商会犯触犯法律的风险进行实施。但现在我发现我错了。
现在有证据显示电信运营商非但获取没有加密的HTTP登录的用户名和密码,还会通过HTTP劫持的手段获取通过RSA加密的用户名和密码。信息来源是国内最大的最权威的漏洞报告平台之一wooyun:链接1、链接2。
正如文中所说,国内某邮件服务商在登录入口处将用户输入的帐号和密码通过RSA加密后才会发送到网络上,通过截取网络数据包的方式已经无法对用户输入的密码进行破解了。但由于HTTP本身并没有加密功能,所以RSA的程序必须由邮件服务商以JavaScript的方式进行提供,而登录入口的HTML和所有的JavaScript会通过HTTP发送到用户的浏览器上。而正是由于HTTP的不安全性,导致电信运营商可以在HTML中插入附加的JavaScript代码,在对密码进行RSA加密之前将密码以明文形式发送到网络上。至此,密码已经可以通过抓取网络数据包的方式进行截取了。

这种手段并非DNS级的域名劫持。如果是域名劫持,那么用户访问的也就不是邮件服务商的服务器,而是第三方的服务器了。如果要保证用户可以正常登录邮箱,那么第三方服务器就必须将用户浏览器的请求转发到邮件服务商,这样邮件服务商将会看到大量用户通过同一个或少数几个IP地址进行登录,很快就会发现问题。所以只有控制路由器进行TCP级别的HTTP劫持(仿冒邮件服务商的IP发送附加的JavaScript的数据包)才能做到神不知鬼不觉(虽然出了BUG导致曝光了,但如果没有BUG说不定到现在仍旧无人察觉)。
联想到《破解Google Gmail的https新思路》中所说的情况,电信运营商和国内的CA机构受到某些部门的指使进行实施,对SSL不了解的人完全可以做到神不知鬼不觉地破解用户的密码。如果是DNS劫持还可以通过多种手段进行反劫持,但如果通过类似HTTP劫持的这种IP仿冒的技术呢?据我观察,CNNIC根证书并未在各大浏览器中已被移除,所以关注于安全的朋友还是需要手动进行处理。也正如wooyun的文中所说,看到国内CA随便签署的证书,一定要保存下来提交给各大浏览器厂家,国内的中级CA还有很多。
题外话:虽然全球的网络自由在恶化,但并不代表我们就可以放弃追求网络自由。
来源:投稿,作者: lehui99 (at) gmail . com
--
-- 来自USTC LUG
请使用gmail订阅,不要灌水。
更多信息more info:http://groups.google.com/group/ustc_lug?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups "USTC_LUG" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ustc_lug+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
2013/11/11 Bojie Li <boj...@gmail.com>:
> Gmail 登录界面是 https,不过进入邮箱之后会载入两个 www.google.com.hk不会的,我的 Gmail 从来都是绿锁,整个页面不存在任何非 https 资源,更不会
> 的 non-https 资源,F12 =>
> Console 就能看到。所以 https 左边的挂锁是黄色的而不是绿色的。这两个
> http 请求似乎没有传递足以登录 Gmail 的
> cookie,返回的内容也不知道是否会被执行或显示出来。
>
有 .hk 的资源,而且我邮件中的图片也都是关闭不显示的,所以也不会出现点击
一封邮件就导致绿锁变成带黄三角的锁的问题。我在这方面有强迫症,特别受不了
Cr 那个带黄三角(代表 https 页面中有 http 资源,在 IE 里叫「混合内容」)
的图标,所以我十分确定我的 Gmail 从来不会载入任何非 http 资源。(由强迫
症决定)
而你的 Gmail 载入了 .hk 的资源,就非常奇怪了,可能是邮件中有什么外部内容
,或者可能是广告,甚至有可能是你使用了改 hosts, GoAgent 等翻墙方法而带来
嗯,SNI 是个好东西,不过我不敢冒不支持稍旧浏览器的风险…… Chrome 全系列都支持 SNI 吗?Firefox 3 支持 SNI 吗?
【OT】多域名和泛域名证书一般都很贵,不过如果你不在乎 2009 年以来一直没升过级的 Windows(MS 2009年才将其加入根CA),可以去 StartSSL 花 $59.9 做个 Class 2 validation,在一年的有效期内,有效期两年的 SSL 证书随便发(当然要验证域名所有者)。参看 blog.ustc.edu.cn 证书的 Subject Alternative Name。
--
不要 BGP 广播,虚假 BGP 广播也很容易被发现。
1. 搞清楚域名验证服务器的 nameserver(自建 nameserver 解析自己的域名,提交个申请,看 DNS 查询从哪里来)。
2. 伪装成欲劫持域名的 nameserver,向域名验证服务器的 nameserver 不停地发送伪造源IP的虚假 MX 记录包。
3. 在线提交 Domain Control Validation。
4. 由于 DNS 是基于 UDP 的,只要抢在真实的 DNS 回复前收到了虚假的 MX 记录包,域名验证邮件就会发到你的服务器。
GFW DNS 污染就是这么干的。只是因为它处于必经之路上,伪造的回复包一定先于真实的回复包,从而发一个就能达到目的。
只需要一个能伪造源IP的主机。我之所以提 BGP Router,是因为大部分 router 都配置了 reverse route check,很难任意伪造源IP了。
看起来 SNI 支持的浏览器集合只是比 StartSSL Root CA 的支持集合稍小,最近四年新装的机都没问题,还是挺靠谱的。不过很多在线 ssl checker 都会对 SNI 提示警告。
小绿锁。。。
用的goagent后,gmail的话也不会走代理,而是北京的host(在proxy.ini里的默认配置)
所有google服务,貌似都没碰到过小黄锁(只有以前的greader)
( sent from my mobile device. )
我们的邮件列表是公开的,Google 都有索引。
此外,Google 使用用户数据改进其服务是符合 Terms of Service 的:When you upload or otherwise submit content to our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights you grant in this license are for the limited purpose of operating, promoting, and improving our Services, and to develop new ones.