前言
wifi的加密協議WPA2已經被破解,影響範圍包括所有支援wifi的裝置,包括Android,Linux,Apple,Windows,OpenBSD,聯發科技,Linksys等。其中對Android和Linux的影響尤其嚴重,41%的Android裝置(Android 6.0及以上)將受到嚴重影響。介紹這些並非是為了造成恐慌,而是引起我們的重視,在使用wifi時候,我麼會經常社交和支付軟體的使用,如果這些被破解,造成的損失非常巨大,對於企業更是如此。本文不是對論文,是論文官網對論文介紹的翻譯。作者是Mathy Vanhoef和imec-DistriNet,大家感興趣可以搜他們的其他論文,本篇論文下載地址,後面有。
引言
我們發現WPA2協議的嚴重弱點,WPA2是保護Wi-Fi網路的協議。受害者範圍內的攻擊者可以利用重放攻擊(KRACK)來利用這些弱點。具體來說,攻擊者可以使用這種新穎的攻擊技術來讀取先前被認為已經安全加密的資訊。這種攻擊可能被濫用來竊取敏感資訊,如信用卡號,密碼,聊天資訊,電子郵件,照片等。該攻擊影響所有現代受保護的Wi-Fi網路。根據網路配置,還可以注入和運算元據。例如,攻擊者可能能夠將ransomware或其他惡意軟體注入網站。
弱點在於Wi-Fi標準本身,而不是單獨的產品或實現。因此,WPA2的正確實施可能會受到影響。為了防止攻擊,使用者必須在安全更新可用時立即更新受影響的產品。請注意,如果你的裝置支援Wi-Fi,則很有可能會受到影響。在我們初步的研究中,我們發現Android,Linux,Apple,Windows,OpenBSD,聯發科技,Linksys等都受到一些攻擊變體的影響。有關特定產品的更多資訊,請查閱CERT / CC資料庫,或與你的供應商聯絡。
攻擊背後的研究將在計算機和通訊安全(CCS)會議和黑帽歐洲會議上發表。我們的詳細研究論文已經可以下載了。
英文論文下載地址:https://papers.mathyvanhoef.com/ccs2017.pdf
演示
作為一個概念驗證,我們對Android智慧手機執行了重要的重放攻擊。 在這個演示中,攻擊者能夠解密受害者傳送的所有資料。 對於攻擊者來說,這是很容易完成的,因為關鍵重放攻擊對Linux和Android 6.0或更高版本是非常破壞性的。 這是因為Android和Linux可以被欺騙(重新)安裝一個全零加密金鑰(有關詳細資訊,請參閱下文)。 當攻擊其他裝置時,解密所有資料包是困難的,儘管可以解密大量資料包。 在任何情況下,以下演示突出顯示攻擊者在對受保護的Wi-Fi網路執行關鍵重放安裝攻擊時可獲得的資訊型別。
我們的攻擊並不限於恢復登入憑據(即電子郵件地址和密碼)。通常,受害者傳送的任何資料或資訊都可以被解密。此外,根據所使用的裝置和網路設定,還可以解密向受害者 傳送的資料(例如,網站的內容)。雖然網站或應用程式可能會使用HTTPS作為額外的保護層,但是在特殊情況下,這種額外的保護措施(仍然可以)被繞過。 例如,HTTPS以前在非瀏覽器軟體,Apple的iOS和OS X,Android應用程式,銀行應用程式甚至VPN應用程式中都被繞過。
細節
我們的主要攻擊是針對WPA2協議的四次握手。當客戶端希望加入受保護的Wi-Fi網路時,執行此握手,並用於確認客戶端和接入點都具有正確的憑據(例如網路的預共享密碼)。同時,4次握手還協商一種新的加密金鑰,用於加密所有後續流量。目前,所有現代保護的Wi-Fi網路都使用4次握手。這意味著所有這些網路都受到我們攻擊的(某些變體)的影響。例如,攻擊針對個人和企業Wi-Fi網路,針對較舊的WPA和最新的WPA2標準,甚至針對僅使用AES的網路。我們對WPA2的所有攻擊都使用一種稱為重放攻擊(KRACK)的新技術:
重放攻擊:高階描述
在關鍵的重放攻擊中,攻擊者將重放已經在使用的金鑰。這是通過操縱和重播加密握手訊息來實現的。當受害者重放金鑰時,諸如增量傳送分組號(即隨機數)和接收分組號(即重播計數器)的相關引數被重置為其初始值。本質上,為了保證安全性,只能安裝和使用一次金鑰。不幸的是,我們發現這不是WPA2協議的保證。通過操縱加密握手,我們可以在實踐中濫用這種弱點。
關鍵重放攻擊:針對4次握手的具體示例
如研究論文的介紹所述,關鍵重放攻擊背後的想法可以歸納如下。當客戶端加入網路時,它執行四次握手來協商一個新的加密金鑰。在接收到4次握手資訊3後,將會安裝該金鑰。一旦安裝了金鑰,它將用於使用加密協議對正常資料幀進行加密。然而,由於訊息可能丟失或丟失,如果接收點(AP)沒有收到適當的響應作為確認,則將重傳訊息3。結果,客戶端可以多次接收訊息3。每次收到該訊息時,它將重新安裝相同的加密金鑰,從而重置增量傳送分組號(隨機數),並接收加密協議使用的重播計數器。我們顯示,攻擊者可以通過收集和重播4次握手的訊息3的重傳來強制這些隨機復位。通過以這種方式強制重複使用,可以攻擊加密協議,例如可以重放,解密和/或偽造資料包。同樣的技術也可以用來攻擊組金鑰,PeerKey,TDLS和快速BSS過渡握手。
實際影響
在我們看來,最廣泛和最具影響力的攻擊是四次握手的關鍵重放攻擊。我們根據兩個觀察結果作出判斷。首先,在我們自己的研究中,我們發現大多數客戶受到影響。第二,對手可以使用此攻擊來解密客戶端傳送的資料包,從而攔截敏感資訊,如密碼或Cookie。分組的解密是可能的,因為金鑰重放導致傳輸隨機(有時也稱為分組號或初始化向量)被重置為零。使得和過去已經使用的隨機數值一起使用相同的加密金鑰。反過來,這導致WPA2的所有加密協議在加密資料包時重新使用金鑰流。如果重用金鑰流的訊息具有已知內容,則匯出所使用的金鑰流變得微不足道。然後,該金鑰流可以用於使用相同的隨機數來解密訊息。當沒有已知的內容時,解密資料包是困難的,儘管在幾種情況下仍然是可能的(例如,英文文字仍然被解密)。實際上,找到具有已知內容的資料包不是問題,因此應該假設任何資料包都可以被解密。
解密資料包的能力可用於解密TCP SYN資料包。這允許對手獲取連線的TCP序列號,並劫持TCP連線。因此,即使使用WPA2,對手現在可以對開啟的Wi-Fi網路執行最常見的攻擊:將惡意資料注入未加密的HTTP連線。例如,攻擊者可以濫用這種方式將篡體改或惡意軟體注入受害者訪問的網站。
如果受害者使用WPA-TKIP或GCMP加密協議,而不是AES-CCMP,這種影響尤其是災難性的。針對這些加密協議,nonce重用使得對手不僅可以解密,而且可以偽造和注入資料包。此外,因為GCMP在兩個通訊方向上使用相同的認證金鑰,並且如果隨機數被重用,則該金鑰可以被恢復,所以特別受到影響。請注意,目前正在以無線千兆(WiGig)的名義推出對GCMP的支援,預計在未來幾年內將以高速率採用。
資料包可以被解密(可能被偽造)的方向取決於握手被攻擊。簡化,當攻擊4次握手時,我們可以解密(和偽造)客戶端傳送的資料包。當攻擊Fast BSS Transition(FT)握手時,我們可以解密(和偽造)傳送給客戶端的資料包。最後,我們的大多數攻擊還允許播放單播,廣播和多播幀。有關詳細資訊,請參閱我們研究論文的第6節。
請注意,我們的攻擊無法恢復Wi-Fi網路的密碼。它們也不會在四次握手期間恢復(任何部分)新協商的加密金鑰。
Android和Linux
我們的攻擊對於2.4以上的wpa_supplicant(通常在Linux上使用的Wi-Fi客戶端)尤其嚴重。在這裡,客戶端將安裝一個全零加密金鑰,而不是重新安裝真正的金鑰。這個漏洞似乎是由Wi-Fi標準中的一個註釋造成的,建議在第一次安裝之後,從記憶體中清除加密金鑰。當客戶端現在接收到四次握手的重傳訊息3時,它將重放現在已經清除的加密金鑰,有效安裝全零金鑰。由於Android使用wpa_supplicant,Android 6.0及更高版本也包含此漏洞。這使得攔截和操縱這些Linux和Android裝置傳送的流量變得微不足道。請注意,目前,41%的Android裝置容易受到我們攻擊的特別破壞性變體的影響。
分配的CVE識別符號(CVE是一個漏洞庫,對漏洞進行了嚴格的定義和說明)
CVE-2017-13077:在四次握手中重新安裝成對加密金鑰(PTK-TK)。 CVE-2017-13078:在四次握手中重新安裝組金鑰(GTK)。 CVE-2017-13079:在四次握手中重新安裝完整性組金鑰(IGTK)。 CVE-2017-13080:在組金鑰握手中重新安裝組金鑰(GTK)。 CVE-2017-13081:在組金鑰握手中重新安裝完整性組金鑰(IGTK)。 CVE-2017-13082:在處理它時接受重發的快速BSS過渡(FT)重新關聯請求並重新安裝成對加密金鑰(PTK-TK)。 CVE-2017-13084:在PeerKey握手中重新安裝STK金鑰。 CVE-2017-13086:在TDLS握手中重新安裝隧道直連設定(TDLS)PeerKey(TPK)金鑰。 CVE-2017-13087:處理無線網路管理(WNM)睡眠模式響應幀時重新安裝組金鑰(GTK)。 CVE-2017-13088:處理無線網路管理(WNM)睡眠模式響應幀時重新安裝完整性組金鑰(IGTK)。
請注意,每個CVE識別符號表示金鑰重新安裝攻擊的特定例項。這意味著每個CVE ID都描述了特定的協議漏洞,因此許多供應商都受到每個CVE ID的影響。您還可以閱讀CERT / CC的漏洞註釋VU#228519,瞭解哪些產品已知會受到影響。
論文
我們在攻擊背後的研究論文題目是重新安裝攻擊:強制WPA2中的Nonce重用,並將在2017年11月1日星期三的計算機和通訊安全(CCS)會議上進行介紹。
雖然這篇文章現在公佈,但已經在2017年5月19日提交審查。之後,只做了微小的改變。因此,文中的調查結果已經有幾個月了。與此同時,我們發現了更輕鬆的技術來進行四次握手的重要重新安裝攻擊。使用我們的新型攻擊技術,現在無需利用只接受4次握手訊息3的加密重傳的實現。特別地,這意味著攻擊macOS和OpenBSD比本文中討論的容易得多。
工具
我們製作了指令碼來檢測4路握手,群組關鍵握手或快速BSS過渡(FT)握手的實施是否容易受到重要的重新安裝攻擊。一旦我們有時間清理使用說明,這些指令碼將被公開。
我們還製作了一個概念驗證指令碼,利用了某些Android和Linux裝置中存在的全零關鍵(重新)安裝。這個指令碼是我們在演示視訊中使用的指令碼。一旦每個人都有合理的機會更新他們的裝置(我們有機會準備釋出的程式碼庫),它將被釋放。我們指出,我們的概念驗證指令碼的可靠性可能取決於受害者對真實網路的接近程度。如果受害者非常接近真正的網路,指令碼可能會失敗,因為受害者將始終直接與真實網路通訊,即使受害者(強制)在與該網路不同的Wi-Fi通道上。