摘 要: 通過(guò)分析無(wú)線局域網(wǎng)的安全協(xié)議,發(fā)現(xiàn)密鑰協(xié)商機(jī)制——四次握手協(xié)議在第一次握手時(shí)未對(duì)消息進(jìn)行任何處理,導(dǎo)致該協(xié)議存在拒絕服務(wù)攻擊的安全隱患,就此提出加密管理幀的方法來(lái)消除該安全隱患,并對(duì)該方法加以論證。
關(guān)鍵詞: 網(wǎng)絡(luò)安全存取;四次握手;客戶端加密偽隨機(jī)數(shù);管理幀
近年來(lái),無(wú)線網(wǎng)絡(luò)得到了飛速的發(fā)展,然而無(wú)線網(wǎng)絡(luò)的安全未能跟上使用的步伐。目前,無(wú)線網(wǎng)絡(luò)還無(wú)法阻止黑客監(jiān)聽(tīng)等網(wǎng)絡(luò)攻擊,由于無(wú)線網(wǎng)絡(luò)安全存在的缺陷,導(dǎo)致許多使用無(wú)線的用戶在無(wú)線網(wǎng)絡(luò)安全上耗資巨大。其中,偽造MAC地址是目前無(wú)線局域網(wǎng)仍未解決的安全威脅之一。攻擊者利用多種工具截獲數(shù)據(jù)包并獲取已授權(quán)的MAC地址,例如AirJack、WireShark等工具。黑客偽裝成一個(gè)已授權(quán)的客戶端就能發(fā)起攻擊[1]導(dǎo)致網(wǎng)絡(luò)服務(wù)失敗。
目前,IEEE802.11i是無(wú)線網(wǎng)絡(luò)安全的標(biāo)準(zhǔn)協(xié)議,它采用802.1X+EAP與AES結(jié)合的認(rèn)證方式與數(shù)據(jù)加密方式。無(wú)線網(wǎng)絡(luò)安全標(biāo)準(zhǔn)主要有有線等效加密協(xié)議WEP、網(wǎng)絡(luò)安全存取協(xié)議WPA、WPA2和IEEE802.11i (WPA2改進(jìn)版的標(biāo)準(zhǔn)化,在下層的數(shù)據(jù)鏈路機(jī)密機(jī)制比WPA2多一個(gè)無(wú)線強(qiáng)壯認(rèn)證協(xié)議WRAP)。本文對(duì)比了目前主流的無(wú)線網(wǎng)絡(luò)安全標(biāo)準(zhǔn),詳細(xì)分析了目前廣泛使用的無(wú)線網(wǎng)絡(luò)安全標(biāo)準(zhǔn)IEEE802.11協(xié)議的四次握手協(xié)議,分析四次握手協(xié)議的優(yōu)缺點(diǎn)并提出改進(jìn)方案加以論證。
1 無(wú)線局域網(wǎng)安全機(jī)制分析
WEP使用RC4算法加密,給有線局域網(wǎng)的雙方通信提供安全保護(hù)。ICFCC2009會(huì)議總結(jié)了WEP存在的問(wèn)題:WEP不能預(yù)防偽造包、不能抵制重放攻擊、錯(cuò)誤地使用RC4、初始化向量可重復(fù)使用、黑客篡改信息、RC4算法本身的缺陷、密鑰管理更新功能較弱、容易偽造認(rèn)證信息等缺陷[2]。
WPA對(duì)WEP協(xié)議做了改進(jìn),提供了暫時(shí)密鑰完整性協(xié)議/信息完整性檢查加密算法TKIP/MIC, 避免了WEP中IV(向量初始化)和MIC的錯(cuò)誤,但它們?nèi)灾皇桥R時(shí)性的安全協(xié)議,并沒(méi)有形成正式的標(biāo)準(zhǔn)。WPA/WPA2身份認(rèn)證加密對(duì)比如表1所示。
在2004年6月由IEEE正式頒布的(WPA2)IEEE 802.11i標(biāo)準(zhǔn)是真正的WLAN安全標(biāo)準(zhǔn)。802.11i基于強(qiáng)大的高速加密標(biāo)準(zhǔn)-計(jì)數(shù)器模式和密碼塊鏈消息認(rèn)證碼協(xié)議加密算法AES-CCMP/CBC-MAC,通過(guò)使用AES-CCMP,802.11i不僅能加密數(shù)據(jù)包的有效負(fù)載,還可以保護(hù)被選中數(shù)據(jù)包的頭字段。因此,WLAN使用802.1X+EAP與EAP加密結(jié)合的方式進(jìn)行身份認(rèn)證與數(shù)據(jù)加密。
作為802.11i協(xié)議的重要組成部分,四次握手協(xié)議用來(lái)進(jìn)行密鑰管理,確保移動(dòng)請(qǐng)求者和認(rèn)證者之間的無(wú)線傳輸?shù)陌踩?。因此,在現(xiàn)有四次握手的基礎(chǔ)上,更好地研究它的安全性、性能,提高它的可靠性、效能是非常必要的也是非常重要的[3]。
2 分析四次握手及改進(jìn)方案
2.1 四次握手過(guò)程分析
四次握手協(xié)議是密鑰管理機(jī)制中最主要的組成部分,在四次握手中STA和AP之間在數(shù)據(jù)鏈路層發(fā)送和接收4條消息,主要目的是確定STA和AP得到的PMK是相同且是最新的,它們基于雙方共有的PMK和握手過(guò)程中的參數(shù)利用函數(shù)PRF分別在各自一端生成暫時(shí)對(duì)等傳輸密鑰PTK(Pairwise Transient Key)。PTK包含數(shù)據(jù)加密密鑰,數(shù)據(jù)完整性密鑰,EAPOL-KEY加密密鑰和EAPOL-KEY完整性密鑰。前兩個(gè)密鑰進(jìn)行數(shù)據(jù)保護(hù),后兩個(gè)密鑰在無(wú)線設(shè)備與接入點(diǎn)之間進(jìn)行初始化握手時(shí),保護(hù)通信[4]。同時(shí),通過(guò)第4次握手的結(jié)果通知STA是否可以加載加密/整體性校驗(yàn)機(jī)制。其中,PMK、PTK計(jì)算公式如下:
PMK=pbkdf2_SHA1(passphrase,SSID,SSIDlength,
4096)(SOHO應(yīng)用模式,PMK=PSK)
PTK=MIN(AP_MAC,STA_MAC)||Max(AP_MAC,
STA_MAC)||(Min(ANonce,SNonce))||Max(ANonce,
SNonce)
其中PTK各個(gè)字段值如圖1所示。

KCK用于4-Way Handshake中對(duì)數(shù)據(jù)原始性進(jìn)行保障,即MIC Key; KEK用于4-Way Handshake和Group Key Handshake中的EAPOL-Key幀的加解密;TEK也就是TK,用于數(shù)據(jù)幀的加密;TMK是TKIP中的MIC校驗(yàn)Key。
四次握手過(guò)程如圖2所示。

(1)第1次握手
認(rèn)證者發(fā)送消息幀1(其中包含AP的隨機(jī)數(shù)ANonce和AP的MAC地址AP_MAC )到STA。
(2)第2次握手
STA收到消息幀1后提取ANonce和AP_MAC,連同自己的隨機(jī)數(shù)SNonce和MAC地址STA_MAC,計(jì)算PTK。然后發(fā)送消息幀2,該幀中包含SNonce,STA_MAC 及RSN信息元素RSNIE,并且該幀使用了已經(jīng)計(jì)算出的PTK中KCK部分對(duì)消息幀2進(jìn)行MIC完整性認(rèn)證,然后放入EAPOL-Key幀中一同發(fā)送。
(3)第3次握手
AP收到信息幀2后,得到SNonce和STA_MAC,計(jì)算出PTK,根據(jù)該P(yáng)TK中的KCK進(jìn)行MIC驗(yàn)證,與消息幀2中的MIC進(jìn)行比較,若不同則丟棄消息幀2;相同則向STA發(fā)送消息幀3。消息幀3中包含AP的RSN信息元素RSNIE和GTK,用KEK加密GTK,再用KCK進(jìn)行MIC認(rèn)證,最后發(fā)送。
(4)第4次握手
STA收到消息幀3后裝入PTK,并發(fā)送空信息(EAPOL-
Key幀的Key Data字段無(wú)任何數(shù)據(jù)),表示已經(jīng)裝入PTK。AP在收到消息幀4后就裝入PTK。四次握手完成,至此PTK產(chǎn)生并裝載完成,雙方的密鑰協(xié)商完成。
2.2 四次握手缺陷分析
第1次握手時(shí),認(rèn)證者AP發(fā)送消息幀1的同時(shí)啟動(dòng)超時(shí)裝置,如果在計(jì)時(shí)器規(guī)定的時(shí)間內(nèi),認(rèn)證者AP沒(méi)有收到客戶端STA的消息幀2,那么認(rèn)證者AP重新發(fā)送消息幀1并啟動(dòng)超時(shí)裝置。四次握手的這種機(jī)制,造成客戶端STA可以多次接收消息幀1。
應(yīng)注意,在使用WEP或WPA機(jī)制時(shí),包含MAC地址的管理幀并未加密[1]。因此攻擊者可以通過(guò)嗅探,截獲包含合法用戶MAC地址的數(shù)據(jù)幀,將自己的MAC地址偽裝成合法AP的MAC地址。在認(rèn)證者AP發(fā)送消息幀1之后發(fā)送消息幀3之前,攻擊者可以不斷地向客戶端發(fā)送偽消息幀1,客戶端在收到偽消息幀1后,由于不能識(shí)別該消息是偽造的,于是仍然啟動(dòng)計(jì)算PTK的值進(jìn)行MIC校驗(yàn)的過(guò)程。
根據(jù)分析,得出:四次握手協(xié)議易受Dos攻擊。攻擊示意圖如圖3所示。

由于客戶端每次收到的消息幀1中,由認(rèn)證者產(chǎn)生的偽隨機(jī)數(shù)ANonce′的值不同,由式(2)可知:
ANonce′≠ANonce?圯
PTK′≠PTK?圯
MIC′≠MIC
客戶端計(jì)算所得PTK的值不同,當(dāng)消息幀3到達(dá)客戶端時(shí)PTK′≠PTK,造成了PTK混亂,數(shù)據(jù)完整性校驗(yàn)失敗,四次握手終止,攻擊者Dos攻擊成功。
2.3 改進(jìn)方案及效果
認(rèn)證者與客戶端之間共享密鑰PMK,針對(duì)Dos攻擊的問(wèn)題產(chǎn)生的原因是未對(duì)第1次握手進(jìn)行加密,因此在消息1中增加加密管理幀EANonce,就能防止攻擊者偽造消息1。如果PMK是由802.1X認(rèn)證動(dòng)態(tài)生成的,那么本文提出的方案就能解決Dos攻擊問(wèn)題。然而,當(dāng)使用預(yù)共享密鑰方式時(shí),由表1可知,PMK=PSK,由于PSK一般很長(zhǎng)時(shí)間不會(huì)修改,因而當(dāng)攻擊者獲得PSK后,造成了消息1的MIC失效。這種方式需要對(duì)四次握手協(xié)議進(jìn)行較多修改,這里暫不予討論。
802.11i的建議草案提出:為了防止在請(qǐng)求方通過(guò)發(fā)送偽消息1改變PTK的值,現(xiàn)有一種稱為TPTK暫時(shí)對(duì)稱暫時(shí)密鑰的機(jī)制,在消息3到達(dá)并驗(yàn)證之前只改變TPTK的值。這就表示,請(qǐng)求者在收到消息1后會(huì)產(chǎn)生兩個(gè)值PTK和TPTK,在收到并驗(yàn)證消息3之前只更改TPTK的值。直到收到并驗(yàn)證消息3之后才更改PTK的值。
然而在這種情況下,這種機(jī)制并不能阻當(dāng)Dos攻擊,因?yàn)檫@種機(jī)制只能阻擋當(dāng)請(qǐng)求者安裝并更新了PTK之后,又發(fā)送的偽消息1。如果偽消息1是在請(qǐng)求者收到并驗(yàn)證消息3之后發(fā)送的,那么TPTK機(jī)制就可行,因?yàn)閭蜗?′通不過(guò)偽消息3′的驗(yàn)證。但是在這種攻擊時(shí),偽消息1′是在請(qǐng)求者收到消息3之前發(fā)送的,因此TPTK是根據(jù)收到的偽隨機(jī)數(shù)ANonce′來(lái)更新的。并且更新的TPTK′會(huì)用來(lái)對(duì)合法的消息3進(jìn)行驗(yàn)證,如果MIC校驗(yàn)失敗,則會(huì)話終止。總之,這種單消息攻擊會(huì)在四次握手中成功實(shí)行,并阻塞請(qǐng)求者與認(rèn)證者的會(huì)話[5]。
針對(duì)上述分析,客戶端極易遭受Dos攻擊,是由于IEEE802.11i協(xié)議中四次握手協(xié)議的第1次握手過(guò)程未對(duì)管理幀進(jìn)行加密造成的。本文提出的解決方案如下:
在第1次握手過(guò)程中,對(duì)管理幀進(jìn)行加密操作,確認(rèn)消息1是由AP發(fā)送的而不是由攻擊者偽造的,將攻擊者發(fā)送的偽消息1丟棄并斷開(kāi)與之的通信過(guò)程,可以避免拒絕服務(wù)攻擊。其實(shí)現(xiàn)方法為:在消息1中增加字段值EANonce(加密偽隨機(jī)數(shù)),改進(jìn)后的四次握手過(guò)程如圖4所示。

該方案中,在認(rèn)證者發(fā)送的消息1中添加了加密隨偽機(jī)數(shù)EANnoce字段,當(dāng)STA收到消息1后,首先將EANonce解密與未加密的ANonce進(jìn)行比較,如果一致則認(rèn)為是合法AP發(fā)送的消息,STA會(huì)用該ANonce計(jì)算新的PTK,否則,客戶端STA認(rèn)為該消息1是由攻擊者偽造的,丟棄該消息1斷開(kāi)通信。其后的過(guò)程和80211i標(biāo)準(zhǔn)中的四次握手協(xié)議完全相同。方案改進(jìn)前后的效果對(duì)比如表2所示。

改進(jìn)方案通過(guò)加密管理幀對(duì)消息1進(jìn)行保護(hù),有效避免了上文中提到的缺陷。解密后的EANonce與未加密的ANonce的比較結(jié)果用來(lái)偵別消息1的合法性,因此改進(jìn)方案在客戶端收到消息1后就能判斷該連接的合法性,若校驗(yàn)失敗則將非法通信切斷,這可以避免之后過(guò)程PTK重復(fù)計(jì)算,防止客戶端在收到消息3時(shí)發(fā)生PTK混亂,從而達(dá)到消除拒絕服務(wù)攻擊隱患的目的。
IEEE802.11i協(xié)議中四次握手協(xié)議為客戶端STA和認(rèn)證者AP之間提供暫時(shí)密鑰協(xié)商機(jī)制,為每次會(huì)話提供安全保證,但是協(xié)議本身存在的缺陷未對(duì)第1次握手進(jìn)行加密,導(dǎo)致客戶端存在Dos安全威脅。本文提供的改進(jìn)方案是在四次握手協(xié)議的消息1字段中增加加密偽隨機(jī)數(shù)EANonce字段值,能有效避免PTK重復(fù)計(jì)算消除拒絕服務(wù)安全隱患,防止客戶端受到Dos攻擊,從而使無(wú)線網(wǎng)絡(luò)安全性能大大增強(qiáng)。
參考文獻(xiàn)
[1] NANGARAJAN V,ARASAN V,HUANG Di Jiang.Using power hopping to counter MAC spoof attacks in WLAN[C]: Consumer Communications and Networking Conference (CCNC),2010.
[2] LASHKARI A H,DANESH M M S,SAMADI B.A survey on wireless security protocols(WEP,WPA and WPA2/802.11i)[C].2009 2nd IEEE International Conference on Computer Science and Information Technology,2009.
[3] Liu Jing,Ye Xingming,Zhang Jun.Security verification of 802.11i 4-way handshake protocol[C].ICC′08.IEEE International Conference on Communications,2008.
[4] Duan Qi,VIRENDRA M.Server based PMK generation with identity protection for wireless networks[C].2008 4th Workshop on Secure Network Protocols,2008.
[5] Wang Li,SRINIVASAN B.Analysis and Improvements over DoS Attacks against IEEE 802.11i Standard[J].Networks Security Wireless Communications and Trusted Computing (NSWCTC),2010,2(251):109-113.
