10/10/2009

更好地登录Google的服务

最近,当我们用https的方式来打开Google Docs或Google Groups时经常被重置,而用http打开却没有问题。
有不少人怀疑SSL加密技术已经被破解,但就目前的情况来说,对SSL进行窃听还需更多的投入。

为什么https被重置而http却能正常打开?我的猜测是,当浏览器向DNS发出查询请求时,DNS监控系统发现浏览器正在访问的是https的Google服务,于是就直接reset了。本文就此问题提供较为简单的解决方案。

Sent to you by 参考消息 via Google Reader:

via 可能 by Jason Ng on 10/9/09

本文仅用于技术交流,Google上有很多优秀的东西,如果只着眼于消灭异己,你失去了世界的大多数美丽。

最近,当我们用https的方式来打开Google DocsGoogle Groups时经常被重置,而用http打开却没有问题。有不少人怀疑SSL加密技术已经被破解,但就目前的情况来说,对SSL进行窃听还需更多的投入。

为什么https被重置而http却能正常打开?我的猜测是,当浏览器向DNS发出查询请求时,DNS监控系统发现浏览器正在访问的是https的Google服务,于是就直接reset了。本为就此问题提供较为简单的解决方案。

一、为什么不加密反而能访问?

1、Google Docs经常用来传播非法信息

Google Docs一直是不和谐信息的传播工具因为它提供了https的访问方式,信息加密传输,第三者无法简单地窃听。Twitter上经常流传着一些使用Google Docs来传播的非法文档。

前段时间网上流传着一份上海某大学的硕士论文,该论文揭示了非法软件FreeGate如何获取最新的代理列表,其中最为重要的一个渠道就是Google Docs,由于GDocs在中国大陆能被正常访问,FreeGate能实时更新DNS和代理列表,从而逃过封锁。FreeGate获取Google Docs里的文件信息同样使用https方式来访问。

2、新型的拦截手段

类似于Google Docs这样的,https无法访问、http方式却可以访问的屏蔽方式以往很少见。之所以采用这样的方式,原因有3:

(1)Google Docs是一个常用的服务,不能完全屏蔽

(2)Google有众多的IP,几乎不能完全屏蔽,如果完全屏蔽,则会影响Google的正常使用

(3)必须要屏蔽Google Docs里的非法信息

这3个原因推动了新的拦截手段的发展。根据猜测,这种手段是这样进行的:当客户端发出加密的DNS解析请求时,DNS监视端一旦发现这个请求是Google Docs的,立即发出一个重置信号。而对于一般的非加密DNS请求,DNS监视端则不工作,剩下的监视工作交由正常的审查系统来进行。

3、新型拦截手段的好处

(1)有效地阻止了Google Docs上非法信息的传播,又能让Google Docs正常使用

(2)较为根本地封杀了FreeGate等非法软件

(3)当用户放弃使用https方式而改用http方式来访问时,信息都是以明文传输,所有内容全部都进入到审查系统审查,非法信息又不能传播。

二、解决方法一:OpenDNS

既然https访问被重置是发生在向DNS发出请求的时候,一个能很容易就想到的解决方案是换一个不会审查DNS请求的DNS。OpenDNS是较为普遍的选择。使用方法很简单,将电脑的DNS设置为:

208.67.222.222

208.67.220.220

如果你需要经常切换不同的DNS,可以使用“8个提高windows效率的免费软件里介绍的NetSetman来进行DNS切换。

但是,OpenDNS是位于国外的DNS,连接速度有点慢,我们不妨考虑另一种解决方案。

三、解决方法二:自定义hosts

在hosts里添加Google Docs的解析IP直接绕过DNS查询,就能正常使用https的Google Docs了。

hosts文件的位置:

1、windows:C:\Windows\System32\drivers\etc\hosts

2、Linux:/etc/hosts

用记事本打开hosts文件,下面这些内容添加到hosts文件的顶部:

209.85.225.101 docs.google.com

74.125.127.100 writely.google.com

74.125.127.139 spreadsheets.google.com

保存hosts,重启浏览器后,https方式的Google Docs就能正常访问了。

万一Gmail也遭遇到Google Docs的情况怎么办?用同样的方法,在hosts文件里加入Gmail的IP即可,为方便使用,我将提供有https方式的Google服务及其的IP列表如下

209.85.147.109 pop.gmail.com

209.85.147.109 smtp.gmail.com

66.102.7.19 mail.google.com

209.85.225.101 docs.google.com

209.85.225.102 groups.google.com

74.125.127.139 spreadsheets.google.com

74.125.127.100 services.google.com

74.125.127.100 writely.google.com

74.125.127.100 sites.google.com

209.85.225.104 reader.google.com

74.125.127.101 calendar.google.com

四:解决方法三:IPv6

目前的审查技术对IPv6是失效的,Google很早就支持IPv6访问,要使用IPv6版本的Google,首先要在电脑里安装IPv6协议,如下图:

安装完后重启电脑,接着用记事本打开hosts文件,在里面添加Google的IPv6 IP,比如Google Docs的hosts:

2001:4860:c004::68 docs.google.com

Google的IPv6地址是唯一的,举一反三,你可以添加更多的Google服务到hosts里去,比如:

2001:4860:c004::68 reader.google.com

2001:4860:c004::68 ipv6.google.com

其它的以此类推。

没有评论: