作者:楊文博 < [url]http://blog.solrex.cn[/url] >
地址:[url]http://blog.solrex.cn/articles/why-google-security-issue.html[/url]
地址:[url]http://blog.solrex.cn/articles/why-google-security-issue.html[/url]
目錄:
1. 得到抓蝦用戶名密碼的例子
2. 嗅探和可嗅探網絡
3. 爲什麼 Google 更安全?
4. 爲什麼 163, sina, 抓蝦 不安全?
5. 如何使用 Google 提供的安全服務?
6. 使用 Google 提供的安全服務的額外好處
2. 嗅探和可嗅探網絡
3. 爲什麼 Google 更安全?
4. 爲什麼 163, sina, 抓蝦 不安全?
5. 如何使用 Google 提供的安全服務?
6. 使用 Google 提供的安全服務的額外好處
1. 得到抓蝦用戶名密碼的例子
首先,來看一個截圖,看看國內某著名在線訂閱器網站抓蝦網對用戶密碼的保護有多脆弱:
請大家注意截圖的最下方,能否看到這一行字:
email=solrex%40gmail.com&password=testtest&persistentCookie=true
[email][email protected][/email] 是我在抓蝦的註冊帳號,而後面的 password 大家應該知道是什麼東西吧!(不用試我的帳戶,我的密碼已經改了。)
email=solrex%40gmail.com&password=testtest&persistentCookie=true
[email][email protected][/email] 是我在抓蝦的註冊帳號,而後面的 password 大家應該知道是什麼東西吧!(不用試我的帳戶,我的密碼已經改了。)
有人會好奇這張截圖怎麼得到的,其實這是我在自己的電腦上用 Wireshark(一款著名的網絡數據包分析軟件,其前身是 Ethereal) 對通過我網卡的到抓蝦網數據包進行監控的截圖。Wireshark 實際上就是一款嗅探器,它能記錄經過指定網絡接口的所有數據包並進行分析。
2. 嗅探和可嗅探網絡
爲了解釋如何才能得到上面的數據包,首先要介紹一下網絡嗅探的原理:
嗅探,是一種***的竊聽手段,一般是指使用嗅探器對數據流的數據截獲。由以太網的知識我們知道,在以太網的衝突域中,每臺主機的網卡都能接觸到所有的數據包,如果數據包的目的地址是自己,網卡就接收數據包,並將包的內容向上層傳遞;如果數據包的目的地址不是自己,就將該包丟棄。那麼如果網卡接收所有的數據包並對其進行分析呢?這就是所謂的“混雜模式”,將網卡設置爲混雜模式後,就可以接收所有包,進而對同一網絡中的其它主機的通信內容進行監聽,這就是 Wireshark 進行嗅探的原理。
需要說明的一點是,在當前的網絡下,直接進行嗅探並沒有那麼容易。上面所說的情況,只在以太網的衝突域中才能實現,而當前交換機的廣泛使用,將衝突域限制到交換機和主機兩點之間,除了自己沒有其它主機,當然也無法直接對其它主機的通信內容進行監聽。如果在交換網絡下達到嗅探的目的,必須通過其它辦法,比如 ARP 欺騙,這超出了本文的討論範圍,就不予介紹了。
雖然在交換網絡下無法對其它主機進行直接嗅探,但是我們無法保證在我們的數據包經過的防火牆或者網關時候不會被監聽。就比如在實驗室的網絡環境下,實驗室的管理員在網絡出口的防火牆處對數據包進行分析是易如反掌的事情。
所以我們總結一下,用戶通信的數據包被監聽可能發生在幾種情形下:一、共享網絡,網絡用戶通過集線器連接到網絡;二、交換網絡的結點不可信任,比如公司網絡的出口防火牆管理員不可信;三、缺乏安全機制的無線網絡,比如學校爲學生提供的無線網絡連接(用 WEP 加密傳輸的網絡可以認爲是缺乏安全機制);四、有ARP欺騙的交換網絡。
由於很多網站的登錄 session 是使用的 http 協議,在此協議下,用戶名和密碼都是通過明文傳輸的(抓蝦和 sina 就是一個例子),所以當用戶處在上述的網絡環境下時,很有可能數據包被別人監聽到。而數據包一旦被監聽和分析,得到用戶的信息易如反掌,南京大學小百合 BBS 最近的一篇文章:你還敢在教室中享受無線嗎? ,就是一個很生動的例子。
3. 爲什麼 Google 更安全?
首先,因爲 Google 採用了 https 協議來處理用戶登錄請求。https(Hypertext Transfer Protocol over Secure Socket Layer) 協議是指加強安全的 http 協議,正如它名字所示,它採用 SSL 來保證數據的加密傳輸。舉個很有證明力的事實,如果你有任何一個銀行的網上銀行帳號,請打開你的網銀登錄窗口,查看上面的地址欄內容開頭是不是:[url]https://xxx.xxx.com/xxxx[/url] 。沒有任何一家銀行採用 http 協議處理網銀登錄請求,這說明了什麼?http 協議不安全。
其次,因爲 Google 使用可選的 https 協議來提供內容傳輸服務。雖然 Google 在其任何服務的登錄請求處理中都是使用 https 協議,但是在認證完用戶之後,和 Google 服務器的連接就轉回到了 http 協議。這樣雖然 Google 的用戶名和密碼不能被竊聽到了,可服務的內容,比如 Gmail 郵件的郵件內容就會被惡意用戶竊聽到。那麼如何使整個通信的內容都受到保護呢,就需要使用 Google 提供的可選 https 服務,只需要在你的瀏覽器地址欄內容的最前面 http:// 換成 https:// 即可。
4. 爲什麼 163, sina, 抓蝦 不安全?
sina 和 抓蝦 沒有提供任何的帳戶信息和內容的安全傳輸功能,所以在課堂上演示嗅探器工作方式的時候,演示者一般都會首先拿 sina 開刀,原因很簡單,它是個大網站。
163 呢,比前面兩個好一點兒,它提供了可選的帳戶信息的加密傳輸功能,就是在登錄 163 信箱的時候,在登錄框下面有一個“增強安全性”的選項,如果勾選了增強安全性選項,163 就會用 https 來處理用戶的登錄請求。但是 163 仍然沒有提供對用戶內容的加密傳輸功能,即 163 的所有郵件在網絡上都是明文傳輸。
5. 如何使用 Google 提供的安全服務?
如果用戶希望自己的帳戶信息和傳輸內容都受到保護的話,那麼就應該使用 Google 提供的 https 連接登錄 Google 服務。比如Gmail 的 https 入口是:[url]https://mail.google.com/[/url] ,Google Reader 的 https 入口是:[url]https://www.google.com/reader/[/url] 。在 Google 其它的服務中,用戶也可以簡單地通過將地址欄的 http:// 換成 https:// 來選擇使用安全傳輸。
6. 使用 Google 提供的安全服務的額外好處
使用安全的加密傳輸能保證自己傳輸的信息不被別人獲取,這是顯而易見的好處,但是使用 Google 的安全服務還有一點額外好處:避免自己的網絡訪問被關鍵詞過濾。
有過訪問敏感站點經驗的同志可能都知道,如果網頁中包含某些關鍵詞,連接往往會被重置。就比如用戶使用 Google Reader 訂閱了某個激進的博客的RSS FEED,如果使用傳統的 http 連接,當文章中包含敏感關鍵詞時,Google Reader 就會與服務器斷開連接。如果使用加密傳輸的話,傳輸內容就避免了被關鍵詞過濾,就不會發生類似連接被重置的情況。