相比起某些公认的不靠谱即时通讯工具,Google出品的Gtalk多少还是让人有那么一丁点安全感的,虽然这种安全感也很有限。不过事实上,号称不作恶的Google为了入某乡随某俗也做了不少悄悄地改变,比如对Gtalk的一点小改动。
其实我一直感觉Gtalk处于Google比较边缘化的状态,没想到这产品还挺注重本地化的嘛。在世界人民还在用Gtalk 1.0.0.104的时候,简体中文和繁体中文版却升级到了1.0.0.105,这说明Google是多么重视使用中文的群体啊~这个奇怪的1.0.0.105版本的Gtalk也出现挺长时间的了,估计现在应该有很多人在用吧。曾经有消息说都Gtalk都升级到了105,但至少今天(2010年1月7日),我从Google.COM的Gtalk简体中文下载页面下载到的是1.0.0.105,但英文下载页面下载到的仍然是1.0.0.104,而不是105。
不过这个难得领先全球的版本升级了点什么呢…貌似唯一的升级就是,取消了Google Talk原有的从客户端到服务器端的加密,变成了一个完全明文传输的小喇叭型通讯工具。这…你说是一项改进呢还是为了那个啥的一项那个啥呢…
据说在Gtalk的早期版本,只在登录阶段进行加密,但是在后来就更改为全程加密了。关于Gtalk的加密与否,Google官方的答复是这样的:
Please note that the connection between the Google Talk client and the Google Talk server is encrypted. This prevents others from seeing your mail notifications, Friends list, and other personal settings. The encryption also prevents others from seeing messages between your
desktop and Google’s servers. However, encryption is not end-to-end, so there is no guarantee that the messages are encrypted when sent to another user. IMs will not be encrypted in these scenarios:
- Sender/recipient is using Gmail’s chat features over HTTP
- Sender/recipient is on a federated network that doesn’t support
encryption
- Sender/recipient is behind IMLogic or another similar proxy (来源)
也就是说,正常情况下,理论情况下,没什么特殊情况下,Google Talk和Google Talk的服务器之间的连接是加密的(采用TLS方式加密)。所以正常情况下,其他人通过各种OOXX方式是无法看到你的邮件提示,好友列表,你发送和接收的信息,或者其他个人设置的。但在下列情况中不会加密:
发送者/接受者在通过HTTP方式下的Gmail聊天功能聊天(所以,请使用HTTPS)
发送者/接受者在不支持加密的网络环境中
发送者/接受者在IMLogic或者类似的代理服务之后
所以如果俩人都用Gtalk,都是正常的网络,应该至少大概约摸着收发信息的整个过程都应该是加密的。
那GTalk 1.0.0.105是否也具有这种特性呢?
在Google Talk的维基百科页面上是这么说的:
“在2009年8月26日左右��,Google提供�中�大�的Google Talk 1.0.0.105版本,其透��路��的聊天�容是未�加密的。而�其他�家提供的最新版本�1.0.0.104,是使用TLS加密的。”
感兴趣的朋友可以看看维基百科条目中的引用部分。
不过没有自己调查就没有发言权,到底此时此刻Gtalk是否区别对待不同用户,今天我自己测试了一下1.0.0.104和1.0.0.105两个版本的加密情况。同样按照上面提到的站点中的办法,利用WireShark进行抓包。
首先我使用Gtalk 1.0.0.105测试,感谢流星做麻豆,他使用1.0.0.104英文版:
从图中可以看到,1.0.0.105的信息收发完全是明文传输,而且,相当详细。从收发双方的Gmail地址到信息内容到其他细节,一应俱全。使用这样的聊天工具在网上畅聊,基本上跟用那个不靠谱的聊天工具也差不到哪儿去了。看不看你的聊天内容纯属别人愿意不愿意的问题,你没得选择。
另外,从中还可以看到一个问题,由于Gtalk不是端对端加密,换句话说就算是用1.0.0.104,你也只能保证你发出的信息到Google Talk的服务器这段是加密的,但是从服务器再到收信息那个人那儿的安全就无法保证了。比如如上例,尽管流星使用的是1.0.0.104,但是那只能保证他的信息到服务器是加密的,但是传到我这里的过程就又是明文的了。
下面换用GTalk 1.0.0.104继续抓包:
不管怎么说,我是没从这图里面看到什么我认识的信息,不管是email地址,还是信息本身…而且1.0.0.104也没什么需要设置的,直接就是现在这个样子了。
你说这两个版本哪个更安全?如果你非要用中文版,那当我没说。如果你不在乎隐私或者“我也没说什么大不了的事情,爱看不看”,那也当我没说…不过要我自己推荐的话,当然还是用英文的1.0.0.104了,并且是最好大家都用,这样才能达到Gtalk原本设计的加密效果。
不知道这不是一个规律,很多东西的“中文版”都会有额外的功能或者阉割的功能,哦对了,这也要那个啥特色。
如果你在用第三方客户端,比如Miranda IM或者Pidgin,找找你的Gtalk账户里的选项,应该有一项是TLS加密,勾选它也可以达到客户端到服务器的加密效果。如果你要更安全,那么你需要一些特别的东西了。
最简单最易用的端对端加密是什么呢?别用Gtalk了,换Skype吧,并且还不能是那个XXX Skype,得是原装的…如果你非要用Gtalk,那么Miranda IM是个理想的选择。
曾经我写过一篇如果用另一款多协议集成类IM Pidgin加密Gtalk/MSN/QQ的文章,但是遗憾的是由于用于加密的Pidgin Encryption插件很久没有更新了,无法在最新版的Pidgin中使用,所以这个办法只能放弃。不过还好,Miranda IM也有非常丰富的插件,同样可以实现非常安全的端对端加密。
实现Miranda IM的端对端加密也很简单,需要两个两个插件: SecureIM和Crypto++。前者是加密插件,后者是插件所需的库。然后呢既然是端对端那么准备聊天的两个人都需要安装这两个插件。启用,设置,俩人配对,搞定。通过它们可以实现AES192或者PGP/GPG加密,想偷看?难度比较大…端对端加密的意义还在于,通过识别密钥,你还能够确定你和对方是否都在加密状态下,并且和你聊天的是不是真正你想聊得那个人…
如何用Miranda IM实现端对端加密不是这篇文章的主要内容,这篇文章想告诉你的是,如果你在用GTalk 1.0.0.105,如果你对安全和隐私比较在意,请换成更安全的1.0.0.104版本,并且告诉你的朋友也更换。我觉得所有的聊天信息都是明文在网上飞一点也不好玩…
对此感兴趣的朋友,也可以自己下载两个版本进行对比测试,WireShark也是免费软件,使用很方便。