你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告
近日,Wi-Fi加密協(xié)議被曝光存在重大安全漏洞,用于保護(hù)Wi-Fi網(wǎng)絡(luò)安全的WPA2 安全加密協(xié)議已被黑客破解。這種被稱作“Krack”(密鑰重裝攻擊)攻擊意味著用戶連接的絕大多數(shù)Wi-Fi已經(jīng)不安全了,包括家中的路由器Wi-Fi,都存在被盜號(hào)的風(fēng)險(xiǎn)。攻擊者可通過(guò)此漏洞獲取萬(wàn)能密鑰來(lái)訪問(wèn)WPA2網(wǎng)絡(luò),從而竊聽(tīng)用戶的通訊信息。
究竟這個(gè)漏洞是由哪些缺陷引起的?會(huì)對(duì)用戶造成什么影響?作為技術(shù)人的我們,又該如何完美防御?今天我們邀請(qǐng)到了阿里安全部的高級(jí)安全專家東帆,來(lái)回答以上問(wèn)題。
漏洞概述
比利時(shí)安全研究員Mathy Vanhoef發(fā)現(xiàn)的WPA2協(xié)議的KRA(Key Reinstallation Attacks)漏洞,利用WPA2協(xié)議標(biāo)準(zhǔn)加密密鑰生成機(jī)制上的設(shè)計(jì)缺陷,四次握手協(xié)商加密密鑰過(guò)程中第三個(gè)消息報(bào)文可被篡改重放,導(dǎo)致在用密鑰被重新安裝。
Wi-Fi網(wǎng)絡(luò)通過(guò)WPA2 handshake四次握手消息協(xié)商用于后續(xù)數(shù)據(jù)通信的加密密鑰,其中交互的第三個(gè)消息報(bào)文被篡改重放,可導(dǎo)致中間人攻擊重置重放計(jì)數(shù)器(replay counter)及隨機(jī)數(shù)值(nonce),重放給client端,使client安裝上不安全的加密密鑰。
此漏洞攻擊方式被命名為Key reinstallation attacks密鑰重裝攻擊,除了影響已經(jīng)在用的數(shù)據(jù)加密密鑰,同時(shí)也影響PeerKey, group key, Fast BSS 切換FT握手等,會(huì)導(dǎo)致Wi-Fi通信數(shù)據(jù)加密通道不安全,存在被嗅探、篡改和重放等風(fēng)險(xiǎn),攻擊者可獲取Wi-Fi網(wǎng)絡(luò)中的數(shù)據(jù)信息。
幾乎所有支持Wi-Fi的設(shè)備(Android, Linux, Apple, Windows, OpenBSD, MediaTek, Linksys等)都面臨安全威脅,危害較大。
該漏洞相關(guān)影響取決于被攻擊的握手過(guò)程和數(shù)據(jù)加密協(xié)議,例如AES-CCMP可被重放和解密,TCP流量存在被劫持和注入惡意流量的可能,WPATKIP和 GCMP可被重放、篡改及解密,影響會(huì)更大,因?yàn)镚CMP兩端使用的相同的認(rèn)證密鑰。
相關(guān)CVE如下,其中每個(gè)CVE代表一種特定場(chǎng)景下的密鑰重裝攻擊。
CVE-2017-13077:四次握手過(guò)程中重裝PTK-TK加密密鑰對(duì)
CVE-2017-13078:四次握手過(guò)程中重裝GTK
CVE-2017-13079:四次握手過(guò)程中重裝IGTK
CVE-2017-13080:Group key 握手過(guò)程中重裝GTK
CVE-2017-13081:握手過(guò)程中重裝IGTK
CVE-2017-13082:接收重傳的快速BSS切換重關(guān)聯(lián)請(qǐng)求,在處理過(guò)程中重安裝PTK-TK加密密鑰對(duì)
CVE-2017-13084:在PeerKey握手過(guò)程中重安裝STK KEY
CVE-2017-13086:在DTLS握手過(guò)程中重安裝TDLS PeerKey
CVE-2017-13087:在處理WNM睡眠模式響應(yīng)幀過(guò)程中重安裝GTK
CVE-2017-13088:在處理WNM睡眠模式響應(yīng)幀過(guò)程中重安裝IGTK
WPA2協(xié)議介紹
WPA全名為Wi-FiProtected Access,有WPA和WPA2兩個(gè)標(biāo)準(zhǔn), WPA(Wi-Fi Protected Access)加密方式目前有四種認(rèn)證方式:WPA、WPA-PSK、WPA2、WPA2-PSK,采用的加密算法有兩種:AES(Advanced Encryption Standard高級(jí)加密算法)和TKIP(Temporal Key Integrity Protocol臨時(shí)密鑰完整性協(xié)議)。
由于WEP已被證明為不安全的協(xié)議,在802.11i協(xié)議完善前,采用WPA為用戶提供一個(gè)臨時(shí)性的解決方案。該標(biāo)準(zhǔn)的數(shù)據(jù)加密采用TKIP協(xié)議(Temporary Key Integrity Protocol),TKIP的兩個(gè)主要功能是:逐包密鑰及消息完整性檢查(MIC),與WEP相同的加密算法RC4來(lái)實(shí)現(xiàn)這一點(diǎn),雖然TKIP解決了所有已知的WEP問(wèn)題,但WPA2的AES加密更安全,適應(yīng)更廣泛的工業(yè)標(biāo)準(zhǔn)并在實(shí)踐中廣泛使用。
WPA2是WPA的增強(qiáng)型版本,與WPA相比,WPA2新增了支持AES的加密方式,采用AES加密機(jī)制。
Key reinstallation attacks密鑰重裝攻擊
四次握手協(xié)商密鑰過(guò)程中消息報(bào)文見(jiàn)圖1 EAPOL格式,其中重放計(jì)數(shù)replay counter字段用于檢測(cè)重復(fù)報(bào)文,每次發(fā)送一個(gè)報(bào)文,重放計(jì)數(shù)加一,nonce字段為加密密鑰生成所需要的隨機(jī)數(shù)。
圖1 EAPOL幀簡(jiǎn)化報(bào)文格式
以groupkey為例,首先Client 進(jìn)入PTK-INIT狀態(tài),初始化(PMK),當(dāng)接收到消息1進(jìn)入PTK_START狀態(tài),client會(huì)生成隨機(jī)數(shù)SNonce,計(jì)算臨時(shí)TPTK,發(fā)送消息2(帶SNonce)到AP,當(dāng)Client接收到消息3, replay counter重放計(jì)數(shù)等有效的條件下,進(jìn)入PTK-NEGOTIATING協(xié)商狀態(tài),同時(shí)標(biāo)記TPTK為有效,發(fā)送消息4到AP,然后直接進(jìn)入PTK-DONE 狀態(tài), 使用MLME-SETKEYS安裝KEY。特別注意的是,此狀態(tài)機(jī)過(guò)程來(lái)自于802.11標(biāo)準(zhǔn),清晰的考慮了未收到消息2或者4的情況,消息1或者3會(huì)繼續(xù)重傳。具體如下:
圖2 四次握手狀態(tài)機(jī),KEY用MLME-SETKEYS.request 命令字進(jìn)行安裝
當(dāng)client作為Supplicant加入Wi-Fi網(wǎng)絡(luò),client與AP認(rèn)證端Authenticator進(jìn)行四次握手協(xié)商新的加密密鑰,見(jiàn)下圖3,在接收到四次握手中的第3個(gè)消息報(bào)文時(shí)會(huì)安裝新生成的加密密鑰,后續(xù)數(shù)據(jù)通信使用該密鑰進(jìn)行數(shù)據(jù)加密。
因?yàn)閳?bào)文可能丟失,如果AP未接收到client的響應(yīng)會(huì)重發(fā)第三個(gè)消息報(bào)文,所以client可能重復(fù)接收到第3個(gè)消息報(bào)文多次。每次當(dāng)client接收到此消息,都會(huì)重新安裝相同的加密密鑰,然后重置協(xié)議加密使用到的nonce值及重放計(jì)數(shù)。
攻擊者可通過(guò)嗅探、重放四次握手過(guò)程中的第3個(gè)消息報(bào)文,強(qiáng)制重置協(xié)議加密使用到的nonce值及重放計(jì)數(shù),重安裝加密密鑰,從而攻擊協(xié)議的加密機(jī)制,數(shù)據(jù)報(bào)文可被重放、解密及篡改。
該攻擊方法同時(shí)可用于攻擊已在使用的加密密鑰、group key、PeerKey, TDLS及快速BSS切換握手等。
圖3 GroupKey 場(chǎng)景四次握手
漏洞根因分析及影響
802.11協(xié)議標(biāo)準(zhǔn)僅提供粗粒度的偽碼描述四次握手的狀態(tài)機(jī),但并未清晰描述特定的握手消息應(yīng)該在什么時(shí)候處理。
密鑰重裝漏洞濫用了消息3重傳的流程,首先在Client和AP之間確定MitM中間人攻擊的點(diǎn),在AP接收到消息4之前不斷重傳篡改后的消息3,導(dǎo)致Client 重新安裝已用的加密密鑰,同時(shí)重置nonce值。
實(shí)際情況,實(shí)施此攻擊的時(shí)候,并非所有的Wi-Fi客戶端client都正確實(shí)現(xiàn)了此狀態(tài)機(jī),Windows和iOS未接收處理消息3的重傳,這違背了802.11標(biāo)準(zhǔn),所以密鑰重裝漏洞攻擊的時(shí)候并未生效產(chǎn)生漏洞,但在group key 握手的場(chǎng)景下仍然存在安全漏洞,此外在FT 握手情況下仍可能被間接攻擊。
對(duì)于Android 6.0影響更大,在此攻擊的情況下,強(qiáng)制使用了可預(yù)測(cè)全零的加密密鑰。
密鑰重裝漏洞攻擊實(shí)際影響如下圖4,第一列代表不同類(lèi)型的Client客戶端,第2列表示不同Client類(lèi)型是否接受消息3,第三列表示如果PTK配置,EAPOL消息明文是否接收,第4列表示首個(gè)消息3報(bào)文快速發(fā)送后是否接收明文EAPOL報(bào)文,最后兩列表示是否受到此漏洞攻擊的影響。
特別需要注意的,研究者當(dāng)前并沒(méi)有破解Wi-Fi網(wǎng)絡(luò)的密碼,也并沒(méi)有通過(guò)四次握手協(xié)商過(guò)程的攻擊破解新生成的加密密鑰。
圖4 不同Clients的實(shí)際漏洞效果
漏洞影響范圍
此漏洞存在于協(xié)議標(biāo)準(zhǔn)設(shè)計(jì)缺陷,所有支持WPA2的客戶端都受到影響。
攻擊主要面向WPA2客戶端設(shè)備。
漏洞安全加固建議
1、漏洞攻擊需要實(shí)施MitM中間人攻擊,條件許可建議合理部署無(wú)線入侵防御系統(tǒng)或者VPN加密,及時(shí)監(jiān)測(cè)惡意釣魚(yú)Wi-Fi,禁止私搭A(yù)P等;
2、及時(shí)升級(jí)此漏洞的安全補(bǔ)丁(有補(bǔ)丁的情況),更新WPA2客戶端到最新版本;
3、僅連接可信Wi-Fi,公共場(chǎng)合盡量使用蜂窩移動(dòng)網(wǎng)絡(luò),Wi-Fi連接不用的情況下建議禁用,攻擊面最小化。
注:
1、Linux的hostapd和wpa_supplicant 補(bǔ)丁已公布,詳見(jiàn) https://w1.fi/security/2017-1/
2、微軟在Windows 10 操作系統(tǒng)中發(fā)布補(bǔ)丁 KB4041676;
3、蘋(píng)果在最新的 beta 版本iOS等中修復(fù)了無(wú)線網(wǎng)絡(luò)安全漏洞。
參考文檔:
[1]https://papers.mathyvanhoef.com/ccs2017.pdf
[2]https://techcrunch.com/2017/10/16/wpa2-shown-to-be-vulnerable-to-key-reinstallation-attacks/
總結(jié)
以上是生活随笔為你收集整理的你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《阿里巴巴Java开发规约》插件使用详细
- 下一篇: 如何让电脑成为看图说话的高手?计算机视觉