原文發表時間:2011.9.21
本博文僅僅是上述原文的翻譯,僅供研究參考,本人不對准確性作任何保證,侵立刪,如有轉載,需自行承擔所有責任。如有翻譯不准確的地方,歡迎指教。
更新:2015.1。SSL v3應該被關閉。RC4現在不再安全,因此不應再使用,即使是為了對抗BEAST攻擊。LuxSci建議使用TLS v1.1+和NIST推薦算法,BEAST攻擊現在也不再是一個很大的威脅了(即使在使用TLS v1.0的情況下)。
更新:2012.4。openssl v1.0.1已經發布,其支持TLS v1.1和v1.2,這會幫助緩解這種攻擊。
—-
根據一種最近發布的攻擊機制(稱為BEAST),SSL v3和TLS v1面臨一種嚴重的威脅。這聽起來動搖了安全的根基,帶來了一定程度的恐慌。當人們看到這個問題時,會浮現出如下幾個問題:
- 實際的影響是什么?
- 它有多嚴重?
- 我該如何保護自己?
- BEAST攻擊是如何工作的?
在研究了這個問題后,我們對所發現的問題進行了概要,撰寫了本文來回答這幾個問題。
BEAST的實際影響是什么?
該問題可能影響瀏覽安全站點的人們,在某種條件下會導致竊聽者能獲取到你站點賬戶的訪問權。它不會影響:
- 使用SSL/TLS的其他安全服務,例如emal使用的IMAP, POP或SMTP。
- 使用SSL安全的站點連接來發送數據(例如:使用secure web forms發送數據)(?不大懂)
它會影響:
- 你需要在安全站點上登錄使用的帳號,例如PayPal, LuxSci, Gmail, Bank of America, Facebook等。
我瀏覽網站的什么時候會被攻擊?
如果你使用的網絡中,有惡意人員可以查看網絡中所有的正常流量,並且可以截獲並修改流量,那么他可能會危害你的安全網站瀏覽。
注意這並不包括和你使用同一個wifi或ISP的惡意人員,他們只能竊聽到你的非安全連接,SSL對抗他們還是很有效的。但會包括如下場景:
- 本地網絡管理員是個壞家伙
- 攻擊者攻破了你的本地網絡,獲取到了服務器的控制權
- 你在一個對出入網絡流量進行監控的國家(呵呵)
沒有在那些國家並且使用可信網絡的人們大可不必太過擔心。這里的“可信”指的是:
- 你的本地ISP(例如:Comcast,AOL,Verizon等,類似國內的聯通、電信)基本是可信的。我們對他們是深度信任的--如果他們想,他們可以有更為簡單的方法來干壞事(例如通過將木馬或病毒植入你的系統)。
- 你所在學校或公司的網絡管理團隊基本是可信的(這些家伙可以知道你在網絡中做過的任何事情)。和ISP一樣,他們如果想干壞事,有比TLS攻擊更為簡單且效果更好的方式。
- 政.府--你相信他們不會強迫ISP竊聽你嗎?即使他們會,大部分人也不用太過擔心。
這種攻擊發生在惡意人員想要竊聽你的通信或在不知道先驗知識的情況下訪問你的帳號,他們可能(a)已經知道了你訪問web站點的頻率,或者(b)已經訪問了足夠多人的web流量,並且他們只想攻擊非常流行的網站賬戶,例如Gmail,paypal或某些銀行。
如果你對此比較擔心,這是否是一個潛在的威脅取決於你所處的位置和你做了什么。
什么情況下我可能會被攻擊成功?
簡答來說,如果針對你發起了攻擊,如果你做了如下的事情,可能會被攻擊成功:
- 你訪問了任意非安全站點(http的而非https的),並且你的瀏覽器啟用了JavaScript。
- 你使用相同的瀏覽器訪問因特網超過10分鍾。
- 然后你訪問安全站點,而攻擊者正想冒充你訪問該站點。
注意,攻擊者必須提前約10分鍾猜測或者知道你將會訪問那個安全站點。10分鍾的間隔會隨着攻擊所使用的計算能力的增加而減少。
舉個例子,我們假設攻擊者想要竊聽每個人的gmail帳號訪問以便獲取用戶名、口令和其他敏感信息。
- 你訪問一個不安全的站點,例如http://google.com
- 攻擊者收集和處理訪問https://gmail.com所需要的數據
- 你繼續上網一段時間
- 你訪問https://gmail.com以檢查你的email
- 攻擊者可以使用已經收集的信息來訪問你的Gmail帳號,就像他已經以你的身份登錄一樣。
我如何保護自己?
如果你對這種攻擊比較在意,你可以通過如下方式來保護自己:
- 關閉你的瀏覽器(所有打開的窗口)
- 打開你的瀏覽器,直接訪問安全的站點,而不要在之前訪問不安全的站點
這種方式之所以湊效是因為這種攻擊需要相同的瀏覽器session使用一段時間。關閉並重新打開瀏覽器可以使攻擊者的准備工作失效。直接訪問安全站點避免了攻擊者的准備工作。
你可以通過很簡單的方法達到這個目標:
- 將你的主頁設為一個安全頁面,例如https://luxsci.com。然后你可以使用瀏覽器收藏夾來訪問你想要去的安全站點。
- 將你經常訪問的安全站點書簽放到桌面上,當你點擊它是可以直接打開你想去的安全站點。
- 在你的瀏覽器上禁用JavaScript,或者旨在可信的安全站點中啟用。
- 使用VPN。如果你將電腦連接到可信的網絡(例如工作環境),這將會通過VPN發送所有安全的和不安全的web連接,從而避開了網絡內的惡意人員查看和干擾你瀏覽的任何內容。
另外,如果攻擊者不知道你的瀏覽習慣,並且你訪問的站點不是非常流行,他們很難危害到你。例如:諸如gmail.com,facebook,bankofamerica.com等網站的用戶量巨大,因此也容易成為攻擊目標,比較小的網站如luxsci.com則一般不會。然而,如果攻擊者知道你訪問習慣,就會滿盤皆輸了。
BEAST攻擊是如何工作的?
- 當你訪問不安全的站點,攻擊者修改了返回的頁面或返回的JavaScript,在其中添加了惡意的JavaScript。
- 惡意的JavaScript在你的瀏覽器中自動執行(如果你啟用了JavaScript的話)。
- JavaScript打開一個安全的連接,例如到https://gmail.com
- 攻擊者將你的瀏覽器與https://gmail.com之間的流量與已知的通過JavaScript發送的流量進行對比,進行幾分鍾的計算,攻擊者可以可以得到你安全會話的“初始向量”。
- 這個信息允許攻擊者訪問在同一個瀏覽器會話中發往相同站點的后續安全認證cookies。
- 這些cookies可以被攻擊者“重放”,這樣他們就擁有了你賬戶的全部訪問權,就像以你的身份登錄了一樣。他們可以查看任何敏感信息,並且可以冒充你執行操作。
需要注意如下幾點:
- 攻擊者需要在你的瀏覽器執行JavaScript。
- 需要有一個不安全的web連接,以便攻擊者能修改返回的內容。
- 攻擊者需要猜測你即將訪問的安全站點。
- 攻擊者需要花費時間來收集和分析數據。
- 你必須隨之連接並登錄相同的站點,在相同的瀏覽器會話中(沒有關閉並重新打開瀏覽器或使用不同的瀏覽器)。
- 攻擊者必須在你的會話仍然活躍的時候才能執行惡意行為(如果你主動退出,也會把攻擊者一同退出,希望攻擊者沒有更改你的口令)。
另外:
- 該攻擊影響SSL v3和TLS v1.0
- 該攻擊不影響TLS v1.1和TLS v1.2
那么,我可以只使用 “TLS v1.1″ 或“TLS v1.2″嗎?
答案是“某些情況下是的”。
- 只有IE和Opera支持TLS v1.1或更高的版本。所有其他的瀏覽器(chrome、firefox、safari和大多數手機瀏覽器)都不支持這些最新的安全協議(譯者注:該文章寫於2011年,現在各瀏覽器的最新版本基本都支持了)。另外,即使IE支持,默認也是禁用的。另外啟用它們也可能會影響一些常規的安全站點,例如如果你啟用后一些站點不再工作了(譯者注:這種情況發生在你只啟用了TLS1.2,但服務器最高支持到TLS1.0的情況下,如果客戶端同時也啟用了TLS1.0,則不會有問題)。
- 大部分web服務器還不支持TLS v1.1或TLS v1.2,所以即使你的瀏覽器支持,你要訪問的安全站點可能也不支持,例如bankofamerica.com, luxsci.com, mail.google.com等都不支持(譯者注:仍舊是老黃歷)。根據Opera的統計,只有0.25%的web服務器支持TLS v1.1或更新的版本。
為什么大多數服務器不支持TLS v1.1+?
- 標准的產品級SSL軟件庫,例如openssl,尚不支持TLS v1.1,因此大多數web站點無法啟用。雖然正在開發中的openssl支持,但由於其性能、可靠性和bug等方面的原因,還無法包括在標准的操作系統分發庫中。(譯者注:仍舊是老黃歷)
- 至今還沒有對TLS v1.1和v1.2的強烈需求。
LuxSci正在與各個廠商(例如RedHat)聯系,看是否可以將TLS v1.1的支持加入到現有的分發庫中,以便使用者可以便利的升級。
其他可能的選擇,包括使用其他的SSL系統或使用openssl尚未良好驗證的最新版,都不是一個好的辦法,因為這些可能需要多次的升級、大量的測試,升級時可能甚至可能需要停機。使用替代方式也意味着任何openssl后續安全升級的新特性都必須進行手工管理或依賴於尚待實現的升級機制,這就是替代方案沒有大規模使用的原因,TLS v1.1-的版本具備標准的自動升級機制。
你可以檢查通過使用SSLLabs web site來檢查任何web站點的SSL功能以及其是否支持TLS v1.1或v1.2。
瀏覽器的升級情況如何?
瀏覽器廠商正在調查這個問題以確定會給用戶帶來多大的影響。我們希望他們發布一些瀏覽器升級包以減緩該攻擊的影響程度,同時不需要服務器升級至TLS v1.1.雖然服務器升級長期來看是需要的,但至少不用這么着急。
微軟給該問題的評級相當低;Firefox說即將開發一個修復程序;其他的TLS專家目前不太關注該問題。
其他一些信息
人們應該意識到安全是不斷變化的。我們認為出了升級和實現軟件修補外,還要考慮如下幾點:
- 當任何可能的時候都使用SSL/TLS。不安全的站點對我們的瀏覽器和計算機是一個風險,因為我們無法控制任何惡意的第三方對我們瀏覽會話的注入,SSL和TLS客戶保護我們遠離這種威脅。
- 當訪問安全的web站點時,最好新開一個瀏覽會話或已經瀏覽過安全的https站點。
- 將你的主頁設為安全的站點,並且將其他的安全站點加入到收藏夾中。
- 針對普通的不安全瀏覽和安全瀏覽使用不同的瀏覽器。
- 保持你的軟件、瀏覽器、操作系統、防病毒軟件和其他組件更新到最新。
如果瀏覽器廠商發布了此問題的修補程序,威脅等級將顯著降低。當前威脅程度也比較低,但是因為還很少有人會利用這個漏洞。
不過,以后相似的挾持不安全連接的攻擊在以后很可能會呈現上升態勢。將安全和不安全站點分別使用不同的瀏覽器是一個好習慣。
主動的安全習慣是一件好事情。
