作者:tombkeeper
下午寫了一篇《talk about google talk》,里面提到,雖然google talk本身還不支持加密,但是目前至少用Gaim這樣的客戶端已經(jīng)可以進(jìn)行加密通信了。
晚上吃飯的時(shí)候,我想應(yīng)該找一個(gè)既能用標(biāo)準(zhǔn)客戶端,又能加密通信,還要簡(jiǎn)便易行,老少皆宜的法子出來。要不然總覺得有點(diǎn)對(duì)不起觀眾。
我對(duì)jabber協(xié)議一無所知,也不打算花時(shí)間去看文檔,索性就硬上。先抓gaim的加密通信包和官方客戶端的非加密包看看再說。
官方客戶端的身份認(rèn)證是通過gmail.com來做的,這個(gè)過程基于HTTPS,是加密的;聊天數(shù)據(jù)通過talk.google.com,不加密。
Gaim的認(rèn)證和聊天都通過talk.google.com,而且必須選擇加密。talk.google.com不支持非加密的身份認(rèn)證過程。
奇怪的是,無論是加密還是不加密,聊天數(shù)據(jù)都是通過talk.google.com的5222端口。根據(jù)抓包看到的數(shù)據(jù),和對(duì)5222手工SSL協(xié)商失敗這個(gè)結(jié)果來看。jabber所支持的加密方式和HTTPS、POPS等是不完全一樣的。也就是說,不能簡(jiǎn)單的通過stunnel來建立加密隧道。
事情就這樣結(jié)束了么?當(dāng)然不會(huì),否則我現(xiàn)在一定正在郁悶,而不是寫這篇文檔。
像我這種人,看到一個(gè)5222端口,就不可能不去看看有沒有5221、5223、5224……這是多少年養(yǎng)成的習(xí)慣。我發(fā)現(xiàn)talk.google.com上就有5223和5224端口。簡(jiǎn)單測(cè)試了一下,發(fā)現(xiàn)這兩個(gè)端口都支持標(biāo)準(zhǔn)SSL協(xié)商。那么這能用否這兩個(gè)端口進(jìn)行通信呢?
我做了下面這幾件事:
1、在機(jī)器上的%SyetemRoot%/system32/drivers/etc/hosts中加了這一行:
127.0.0.1 talk.google.com
2、在stunnel.conf中加了這些:
[Google Talk]
accept = 127.0.0.1:5222
connect = talk.google.com:5223
然后重新啟動(dòng)Stunnel,再運(yùn)行g(shù)oogle talk。
OK,現(xiàn)在google talk完全可以正常使用,并且這時(shí)所有來往的數(shù)據(jù)都是經(jīng)過加密的。
看我blog的朋友不一定都搞技術(shù),所以這里科普一下:上面做的第一件事是讓google talk客戶端認(rèn)為我本機(jī)就是聊天服務(wù)器talk.google.com;第二件事是在本機(jī)建立了一個(gè)加密隧道,google talk用非加密數(shù)據(jù)和本機(jī)的Stunnel通信,Stunnel把數(shù)據(jù)加密后傳遞給能接收標(biāo)準(zhǔn)SSL加密的talk.google.com:5223,并把服務(wù)器的加密數(shù)據(jù)解密后交給google talk客戶端。
打個(gè)比方,google talk是一個(gè)只會(huì)說漢語的人,Gaim懂意大利語,Stunnel既懂漢語又懂阿拉伯語,talk.google.com:5222懂意大利語和漢語,talk.google.com:5223只懂阿拉伯語。
現(xiàn)在我們要和talk.google.com說話。雖然google talk和talk.google.com:5222可以直接用漢語溝通,但是這樣會(huì)被偷聽。所以我們讓google talk先把要說的話用漢語告訴Stunnel(這個(gè)過程是在自己家完成的,不會(huì)被偷聽),然后Stunnel用阿拉伯語對(duì)talk.google.com:5223轉(zhuǎn)述?;蛘?,用Gaim和talk.google.com:5222說意大利語也是一個(gè)選擇。
PS:又看了一下google的文檔,這個(gè)5223是為了兼容某些jabber客戶端而留的??赡苣壳熬褪怯袃煞Njabber加密方式并存,不同客戶端用了不同方式。
文檔里面沒有提5224,以我惡毒的心來揣測(cè),估計(jì)是因?yàn)榧用軐?duì)系統(tǒng)負(fù)擔(dān)比較大,google的人特意開了這個(gè)口給熟人用的,這個(gè)沒什么人用的端口速度應(yīng)該比較快——哈哈哈哈,純屬玩笑
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。