閱讀374 返回首頁    go 阿裏雲 go 技術社區[雲棲]


你的Wi-Fi 還安全嗎?全球重大漏洞WPA2 KRACK 詳細分析報告

近日,Wi-Fi加密協議被曝光存在重大安全漏洞,用於保護Wi-Fi網絡安全的WPA2 安全加密協議已被黑客破解。這種被稱作“Krack”(密鑰重裝攻擊)攻擊意味著用戶連接的絕大多數Wi-Fi已經不安全了,包括家中的路由器Wi-Fi,都存在被盜號的風險。攻擊者可通過此漏洞獲取萬能密鑰來訪問WPA2網絡,從而竊聽用戶的通訊信息。

image

究竟這個漏洞是由哪些缺陷引起的?會對用戶造成什麼影響?作為技術人的我們,又該如何完美防禦?今天我們邀請到了阿裏安全部的高級安全專家東帆,來回答以上問題。

比利時安全研究員Mathy Vanhoef發現的WPA2協議的KRA(Key Reinstallation Attacks)漏洞,利用WPA2協議標準加密密鑰生成機製上的設計缺陷,四次握手協商加密密鑰過程中第三個消息報文可被篡改重放,導致在用密鑰被重新安裝。

Wi-Fi網絡通過WPA2 handshake四次握手消息協商用於後續數據通信的加密密鑰,其中交互的第三個消息報文被篡改重放,可導致中間人攻擊重置重放計數器(replay counter)及隨機數值(nonce),重放給client端,使client安裝上不安全的加密密鑰。

此漏洞攻擊方式被命名為Key reinstallation attacks密鑰重裝攻擊,除了影響已經在用的數據加密密鑰,同時也影響PeerKey, group key, Fast BSS 切換FT握手等,會導致Wi-Fi通信數據加密通道不安全,存在被嗅探、篡改和重放等風險,攻擊者可獲取Wi-Fi網絡中的數據信息。

image


幾乎所有支持Wi-Fi的設備(Android, Linux, Apple, Windows, OpenBSD, MediaTek, Linksys等)都麵臨安全威脅,危害較大。

該漏洞相關影響取決於被攻擊的握手過程和數據加密協議,例如AES-CCMP可被重放和解密,TCP流量存在被劫持和注入惡意流量的可能,WPATKIP和 GCMP可被重放、篡改及解密,影響會更大,因為GCMP兩端使用的相同的認證密鑰。

相關CVE如下,其中每個CVE代表一種特定場景下的密鑰重裝攻擊。

CVE-2017-13077:四次握手過程中重裝PTK-TK加密密鑰對
CVE-2017-13078:四次握手過程中重裝GTK
CVE-2017-13079:四次握手過程中重裝IGTK
CVE-2017-13080:Group key 握手過程中重裝GTK
CVE-2017-13081:握手過程中重裝IGTK
CVE-2017-13082:接收重傳的快速BSS切換重關聯請求,在處理過程中重安裝PTK-TK加密密鑰對
CVE-2017-13084:在PeerKey握手過程中重安裝STK KEY
CVE-2017-13086:在DTLS握手過程中重安裝TDLS PeerKey
CVE-2017-13087:在處理WNM睡眠模式響應幀過程中重安裝GTK
CVE-2017-13088:在處理WNM睡眠模式響應幀過程中重安裝IGTK

WPA全名為Wi-FiProtected Access,有WPA和WPA2兩個標準, WPA(Wi-Fi Protected Access)加密方式目前有四種認證方式:WPA、WPA-PSK、WPA2、WPA2-PSK,采用的加密算法有兩種:AES(Advanced Encryption Standard高級加密算法)和TKIP(Temporal Key Integrity Protocol臨時密鑰完整性協議)。

由於WEP已被證明為不安全的協議,在802.11i協議完善前,采用WPA為用戶提供一個臨時性的解決方案。該標準的數據加密采用TKIP協議(Temporary Key Integrity Protocol),TKIP的兩個主要功能是:逐包密鑰及消息完整性檢查(MIC),與WEP相同的加密算法RC4來實現這一點,雖然TKIP解決了所有已知的WEP問題,但WPA2的AES加密更安全,適應更廣泛的工業標準並在實踐中廣泛使用。

WPA2是WPA的增強型版本,與WPA相比,WPA2新增了支持AES的加密方式,采用AES加密機製。

四次握手協商密鑰過程中消息報文見圖1 EAPOL格式,其中重放計數replay counter字段用於檢測重複報文,每次發送一個報文,重放計數加一,nonce字段為加密密鑰生成所需要的隨機數。


image
圖1 EAPOL幀簡化報文格式

以groupkey為例,首先Client 進入PTK-INIT狀態,初始化(PMK),當接收到消息1進入PTK_START狀態,client會生成隨機數SNonce,計算臨時TPTK,發送消息2(帶SNonce)到AP,當Client接收到消息3, replay counter重放計數等有效的條件下,進入PTK-NEGOTIATING協商狀態,同時標記TPTK為有效,發送消息4到AP,然後直接進入PTK-DONE 狀態, 使用MLME-SETKEYS安裝KEY。特別注意的是,此狀態機過程來自於802.11標準,清晰的考慮了未收到消息2或者4的情況,消息1或者3會繼續重傳。具體如下:

image
圖2 四次握手狀態機,KEY用MLME-SETKEYS.request 命令字進行安裝

當client作為Supplicant加入Wi-Fi網絡,client與AP認證端Authenticator進行四次握手協商新的加密密鑰,見下圖3,在接收到四次握手中的第3個消息報文時會安裝新生成的加密密鑰,後續數據通信使用該密鑰進行數據加密。

因為報文可能丟失,如果AP未接收到client的響應會重發第三個消息報文,所以client可能重複接收到第3個消息報文多次。每次當client接收到此消息,都會重新安裝相同的加密密鑰,然後重置協議加密使用到的nonce值及重放計數。

攻擊者可通過嗅探、重放四次握手過程中的第3個消息報文,強製重置協議加密使用到的nonce值及重放計數,重安裝加密密鑰,從而攻擊協議的加密機製,數據報文可被重放、解密及篡改。

該攻擊方法同時可用於攻擊已在使用的加密密鑰、group key、PeerKey, TDLS及快速BSS切換握手等。


image
圖3 GroupKey 場景四次握手

802.11協議標準僅提供粗粒度的偽碼描述四次握手的狀態機,但並未清晰描述特定的握手消息應該在什麼時候處理。

密鑰重裝漏洞濫用了消息3重傳的流程,首先在Client和AP之間確定MitM中間人攻擊的點,在AP接收到消息4之前不斷重傳篡改後的消息3,導致Client 重新安裝已用的加密密鑰,同時重置nonce值。

實際情況,實施此攻擊的時候,並非所有的Wi-Fi客戶端client都正確實現了此狀態機,Windows和iOS未接收處理消息3的重傳,這違背了802.11標準,所以密鑰重裝漏洞攻擊的時候並未生效產生漏洞,但在group key 握手的場景下仍然存在安全漏洞,此外在FT 握手情況下仍可能被間接攻擊。

對於Android 6.0影響更大,在此攻擊的情況下,強製使用了可預測全零的加密密鑰。

密鑰重裝漏洞攻擊實際影響如下圖4,第一列代表不同類型的Client客戶端,第2列表示不同Client類型是否接受消息3,第三列表示如果PTK配置,EAPOL消息明文是否接收,第4列表示首個消息3報文快速發送後是否接收明文EAPOL報文,最後兩列表示是否受到此漏洞攻擊的影響。

特別需要注意的,研究者當前並沒有破解Wi-Fi網絡的密碼,也並沒有通過四次握手協商過程的攻擊破解新生成的加密密鑰。


image
圖4 不同Clients的實際漏洞效果

此漏洞存在於協議標準設計缺陷,所有支持WPA2的客戶端都受到影響。
攻擊主要麵向WPA2客戶端設備。

1、漏洞攻擊需要實施MitM中間人攻擊,條件許可建議合理部署無線入侵防禦係統或者VPN加密,及時監測惡意釣魚Wi-Fi,禁止私搭AP等;
2、及時升級此漏洞的安全補丁(有補丁的情況),更新WPA2客戶端到最新版本;
3、僅連接可信Wi-Fi,公共場合盡量使用蜂窩移動網絡,Wi-Fi連接不用的情況下建議禁用,攻擊麵最小化。

注:
1、Linux的hostapd和wpa_supplicant 補丁已公布,詳見 https://w1.fi/security/2017-1/
2、微軟在Windows 10 操作係統中發布補丁 KB4041676;
3、蘋果在最新的 beta 版本iOS等中修複了無線網絡安全漏洞。

來源:阿裏技術
原文鏈接

最後更新:2017-10-20 11:33:26

  上一篇:go  曾鳴:新零售的未來 | 幹貨
  下一篇:go  秒懂!看機器學習如何淨化處理文本