最近家里一团糟,工作也忙成狗,按理说今年写Blog的事情几乎要按下来了。但是随着一年一度的中国特色姨妈节的临近,大局域网里各种新情况层出不穷,不写点东西实在对不住自己,也怕清算菊花癌的时候忘记,所以还是来写点吧。
之前就在Google+上提到过,今年匪军吸取了去年的教训,花了大约一年的时间潜心收集各种Google的可用IP,在上个月的时候,就把这些可用IP封了个精光。并且匪军还开启了Google证书嗅探功能,所有HTTPS连接握手时的信息,都每天汇总到菊花残办。新发现的hosts,或者自行假设的GGC转发,存活期越来越短,基本不可能支撑到姨妈节。所幸也就只是这样而已,一阵腥风血雨之后,随着hosts/GAE Proxy的全面倒下,貌似平静了一段时间。
不过明天就是姨妈节了,在这个特殊的日子,我要很高兴地向大家汇报:菊花癌及其启明星姘头又推出了贴心的新套餐——云维稳。
这个云维稳,其实也不是新东西了,我以前在Google+上也层提到过。我发现自己找的Facebook的hosts,在家里能用,但是在单位用不了。抓包看下来,有台设备(TTL==128)在热情地替我Reset。进入非工作时段时,似乎就没这情况了。后来还发现googlevideo.com也享受这待遇,差点害我错判了形势。
这个设备的工作原理很简单:SSL证书过滤。注意是“ 过滤 ”,不是大局域网里的那种“嗅探”。你SSL需要握手吧?握手需要Server发Cert给你验证服务端身份吧? 咔嚓 。
那么这个设备是什么呢?是这样的。只要你单位有通过ISP上网,某个“有关部门”就会找到你们单位的IT,要求你们单位购买并安装一个“上网行为管理系统”。这个系统里面呢,当然是会有一堆后门,专门给那个“有关部门”来用的。它们不光能看日志,还能随心所欲地让你来姨妈。
不过呢,今天的情况跟以前相比,又略有一些不同,简单地通报一下:
最后这一条我解释一下。“SSL证书过滤”这办法其实不是太高明。因为在某个时间段内证书只在第一次SSL连接时发一次,后面一般是可以跳过这一步的。所以只要用别的方式(VPN或Shadowsocks)拿一下证书,然后就可以hosts正常用了。而“SSL域名过滤”呢,是从你的Client Hello里面去拿Server Name(我只能说SSL太特么老实了)。这下没得跑了。预先拿到证书也没用,一看到关键字就给你 咔嚓 。
话说回来,SSL用来翻墙的确很不合适。浑身上下都是漏洞,特别是在握手阶段,太多特征可以用来检测了。SSL本质上要求服务端身份得到严格确认,这样传输通道才是可信的。但翻墙在这一点上其实是完全相反的需求——服务端身份越模糊越好,最好谁都认不出来。看似矛盾,实际上分成两层来分别解决这两个需求,就没有问题了。不过这是后话,按下不提。
在最后,预祝各位姨妈节快乐,要记得给组织扎小人儿哦!