SSLsniff
其實(shí)破解 SHA-1 只是時(shí)間問題了。也許你還記得Moxie Marlinspike,他曾經(jīng)開發(fā)了一個(gè)非常先進(jìn)的黑客工具SSLsniff。 這個(gè)工具可以發(fā)現(xiàn)Internet Explorer中的漏洞,即使在使用SSL也可以發(fā)動(dòng) 中間人攻擊 (MitM)。 微軟最終修補(bǔ)了這個(gè)漏洞。
但是即使修補(bǔ)了漏洞, SSLsniff仍然是一款功能強(qiáng)大的工具。比如SSLsniff 可以用來在密碼破解者組織(如我上面說的MD5破解組織)中進(jìn)行MitM攻擊演示。
SSLstrip
Moxie Marlinspike最新開發(fā)的升級(jí)版黑客工具叫做SSLstrip。這款工具的目的很簡單,就是讓惡意攻擊者在任何加密情況下獲取用戶的敏感信息。Moxie Marlinspike注意到大部分用戶在上網(wǎng)時(shí)都不會(huì)要求進(jìn)行連接加密(HTTPS),甚至一些對(duì)信息敏感的網(wǎng)站也沒有全程使用加密頁面,比如下圖中的網(wǎng)站,因此他決定要繞過加密過程。
最初的網(wǎng)站首頁都是沒有加密的,在用戶輸入了某些信息后,HTTPS才會(huì)啟用,如下圖所示:
SSLstrip是一個(gè)MitM協(xié)議,在這個(gè)例子中,它抓住了用戶和銀行網(wǎng)站服務(wù)器之間的一個(gè)漏洞。接下來,讓我們看看這個(gè)漏洞是怎么被SSLstrip利用的:
1. 首先,我在瀏覽器中輸入http://www.usbank.com進(jìn)入銀行網(wǎng)站首頁
2. 輸入我的用戶名并點(diǎn)擊回車
3. SSLstrip 抓取了銀行網(wǎng)站URL和我的用戶名
4. SSLstrip 連接到銀行網(wǎng)站服務(wù)器,并提交了我的用戶名
5. SSLstrip 接著向?yàn)g覽器返回銀行Web服務(wù)器所返回的新頁面
6. 我在新頁面中輸入自己的密碼。
7. SSLstrip再次獲取我的密碼,并將密碼提交給銀行網(wǎng)站服務(wù)器。此時(shí)銀行網(wǎng)站服務(wù)器就認(rèn)為我已經(jīng)登錄了。
8. SSLstrip再次將銀行網(wǎng)站返回的新頁面提交到瀏覽器上,在我看來,我已經(jīng)正常登錄并可以進(jìn)行下一步操作了。
也許你會(huì)問,為什么HTTP后面沒有加“s”,銀行網(wǎng)站的鏈接不都是HTTPS形式的嗎?在這個(gè)例子里是沒有“s”的,因?yàn)镾SL連接是建立在被攻擊的電腦和銀行網(wǎng)站服務(wù)器間的。我只是將所有正確的頁面通過SSLstrip返回給了瀏覽器,但是這個(gè)過程并沒有安全隧道。那么誰獲得了我的密碼也就可想而知了吧?
我注意到,有一些警惕性很強(qiáng)同時(shí)觀察力很好的用戶,會(huì)發(fā)現(xiàn)這種花招,但是對(duì)于大部分用戶來說,很可能會(huì)毫無察覺。要了解更多有關(guān)這個(gè)漏洞的細(xì)節(jié),可以參考Moxie Marlinspike在Black Hat上的演講幻燈片New Tricks for Defeating SSL in Practice (PDF格式)。整個(gè)過程都解釋的很詳細(xì)。
附加功能
在Moxie Marlinspike的演講幻燈片中,他還指出了SSLstrip的其他幾個(gè)功能,可以讓不安全的網(wǎng)站看上去更安全,從而達(dá)到欺騙用戶的目的。因?yàn)榇蟛糠志W(wǎng)站都會(huì)在自己的網(wǎng)站域名前加上一個(gè)網(wǎng)站圖標(biāo),而SSLstrip利用了這個(gè)特點(diǎn),可以讓攻擊者自己制定一個(gè)圖標(biāo)顯示在非安全的網(wǎng)址前面,比如下面這個(gè)圖標(biāo)。
鎖是代表安全的物體,如果在網(wǎng)址前加上了一個(gè)鎖形的圖標(biāo),那么大部分用戶都會(huì)以為自己所訪問的網(wǎng)站是安全的。
如果有人要求,攻擊者甚至?xí)峁┮粋€(gè)真正的SSL連接,而URL與用戶應(yīng)該訪問的只有些許不同。不同之處在于網(wǎng)址的最后多了幾個(gè)字符。Moxie Marlinspike在幻燈片中是這樣解釋的:
升級(jí)瀏覽器
我們?nèi)祟惗加杏行┡c生俱來的習(xí)性,這是任何人都不能反駁的。因此我也只能老實(shí)說,我并不是每次都能敏銳的發(fā)現(xiàn)黑客設(shè)下的陷阱。幸運(yùn)的是,這個(gè)問題已經(jīng)有人討論過了。之前 TechRepublic的總編Jason Hiner就給我發(fā)了一篇George Ou的文章HTTPS 網(wǎng)頁劫持從理論走進(jìn)現(xiàn)實(shí)。
文章中建議開發(fā)人員應(yīng)該賦予網(wǎng)頁瀏覽器更多的智能性,讓瀏覽器知道在什么情況下應(yīng)該使用SSL加密協(xié)議,如果該使用SSL的時(shí)候卻沒有使用,就斷開與Web服務(wù)器的連接。 George還表示, Google在它的Chrome 2.o瀏覽器中就針對(duì)這個(gè)問題進(jìn)行了研發(fā)。希望其他瀏覽器開發(fā)人員也能考慮到這一點(diǎn)。
總 結(jié)
首先我要感謝 Black Hat 允許我使用他們的Logo ,并感謝Moxie Marlinspike允許我使用他的演示幻燈片作為文章的部分內(nèi)容。另外,他希望廣大網(wǎng)民都對(duì)SSL攻擊有所認(rèn)識(shí)的努力也讓我感到敬佩。
意到URL上的細(xì)微差別,從而有可能避免落入黑客的陷阱。如果你覺得自己足夠警惕,那么回憶一下上次你訪問使用SSL的網(wǎng)站時(shí),有沒有留意過URL前面的HTTPS標(biāo)記呢?起碼我是沒有。