Google+的封锁方式研究

2012年11月21日 | 分类: 翻墙相关 | 标签: ,

作为比较早加入Google+的人士,一直有研究防火长城对Google+的封锁方式,这也是对自己网络技术一个很好的锻炼机会 =w=

  众所周知的是,Google+因为其极高的曝光率、运营公司的敏感性和用户能自主产生不受审查的原因,发布仅仅3天即遭防火长城屏蔽而在中国大陆无法正常访问至今。
  本文章着重研究的是对Google+的封锁方式。
 
  • Google+刚刚发布,也就是正在内测的时候,防火长城就已经率先下手:

错误101 (net::ERR_CONNECTION_RESET): 连接已重置

这是Chrome浏览器返回的错误信息,很明显,因为Google+强制使用TLS/SSL加密连接,就算用户使用普通连接也会被跳转到加密连接,这样做变相等于封死了Google+的访问。
对于技术,也就是服务器的IP地址同时在443端口上进行TCP传输层面的连接重置,也就是刚开始的状况。

  • Google+正式开放注册的2011年9月21日时,封锁方式又发生了变化,当时访问Google+会获得如下错误信息:

错误 118 (net::ERR_CONNECTION_TIMED_OUT):操作超时。

显然,此时无法正常访问的原因是数据包无法到达目标服务器,而与此同时访问普通连接却能正常跳转到加密连接,如此可看出这时服务器的443端口被丢包封锁了,也就是TLS/SSL加密连接必须使用的端口,这也变相等于阻断了加密连接。

说了这么多都是以前的信息,我也知道现在绝大多数人的观点也只停留在上面服务器443端口被封的阶段。但事实上,情况早已有所变化:

现在访问Google+获得的错误消息也还是:

错误 118 (net::ERR_CONNECTION_TIMED_OUT):操作超时。

但事实却没这么简单。大家可以看一下这幅图:

你可能会说:这幅图能说明什么?
这幅截图能告诉我们的信息实在是太多了!

Windows下的命令是 nslookup flweihjgoiwplus.google.com 8.8.8.8
作用是向 8.8.8.8 这个地址发送DNS查询域名 flweihjgoiwplus.google.com

  问题就出在这里:flweihjgoiwplus.google.com 根本就是不存在的子域名(Google也从来没有做过泛域名),怎么会有解析结果呢?这里大家可以参考维基百科上域名服务器缓存污染的条目:

在中国大陆,对于所有经过防火长城的在UDP的53端口上的域名查询进行IDS入侵检测,一经发现与黑名单关键词相匹配的域名查询请求,其会马上伪装成目标域名的解析服务器给查询者返回虚假结果。由于通常的域名查询没有任何认证机制,而且域名查询通常基于的UDP协议是无连接不可靠的协议,查询者只能接受最先到达的格式正确结果,并丢弃之后的结果。

  显然,这就是防火长城发过来的虚假解析包。于为什么发过来的虚假解析包里的IP地址属于Google?这个大家可以向有关部门咨询。
  而现在我知道的是,这两个IP地址的443端口被封了,所以事实上请求解析被投毒污染到这些IP地址上,等于无法正常访问,而因为IP地址是Google的,所以不明就里相信表面现象而得出的结果,大概也是人之常情了。

  1. xieyudi
    2012年11月23日03:09

    这个我也有所察觉, 一般查询Google的IP地址都会返回数条, 前段时间发现有时候只返回2条, 而且特别迅速, 一看就是假的.

    另外, 凡是DNS给的几个IP, 其443端口都被间断封掉了, 例如, 这几天给的
    74.125.128.0这个C类网断, 其DNS给出的几个主机地址肯定会被间歇屏蔽掉, 然而在这个网段下面有某些主机基本不会被屏蔽, 也就是说, 如果手动解析到这个地址并且使用https连接, 能解决除youtube外的所有问题.(比如, 105)
    另外, 稳定用了2年的203.208.46.0这个网段开始最近变得极不稳定, 但还是有一批能用, 这样能让GAE变得极快.(比如, 128)

    我分析, 共产党应该有一个自动的机制, 当检测到Google哪些IP访问频繁, 就会间歇封掉这个IP. 所以, 直接访问时应避开那些访问频繁的主机(比如DNS给出的那些地址, 网上流传的一些hosts地址), 因为大部分人也只会傻瓜化的补丁, 共产党只是针对大部分人, 知道了这点就能够流畅访问Google.
    某个方法知道的人越多, 那么其离实效也就越近了, 阻止大部分低层次的网民访问Google, 这样做可以用最小的代价换取最大的效果, 而对于那些少数封也会想办法的相对高端,少数人, 也就不管了(也管不了, 量你不敢上街), 我认为还是很聪明的.

    • guuh
      2012年11月23日17:24

      这不叫什么聪明, 这是无奈之举。 因为很多原因,TG不能完全彻底封锁谷歌, 所以只能针对某些IP进行封锁 …
      长远来看, 这不过是独裁专制政府的愚蠢做法, 自以为聪明,其实不过是很低劣的小伎俩, 最终也改变不了什么 。

      另外,我认为中国人应该摒弃那种以为共产党无所不能几乎万能的斯德哥尔摩综合症患者的思维模式。有些人不管遇到什么事情都总是喜欢主观地把原因归结为中共无比的“强大”和“聪明” , 这其实是无力改变现实之后的深感无奈的心理防御机制。 这是很可悲的 ! 何必把自己弄得那么可怜巴巴的? 不是对手太强大,更不是它们多聪明, 只是你自己太弱小,太缺乏勇气。

  2. Aquamarine
    2012年11月21日20:10

    我试了下,显示:*** google-public-dns-a.google.com can’t find flweihjgoiwplus.google.com: Non-existent domain

    又试了下:nslookup flweihjgoiwplus.google.com 8.8.8.8,显示:
    Server: google-public-dns-a.google.com
    Address: 8.8.8.8

    Non-authoritative answer:
    Name: http://www.google.com
    Addresses: 74.125.128.103, 74.125.128.147, 74.125.128.104, 74.125.128.105, 74.125.128.99, 74.125.128.106

    看来似乎是恢复了,那令人不解的是为什么劫持的结果还是谷歌IP,这又有什么意义呢?还是说就针对这两个IP进行了443端口封锁?那现在恢复的原因是对所有谷歌IP的443端口都封锁了?

    • iGFW
      2012年11月22日09:10

      可能是你说的那样,劫持到几个特定的谷歌IP上方便他们对443端口的干扰。