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

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

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

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

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

改進方案通過加密管理幀對消息1進行保護,有效避免了上文中提到的缺陷。解密后的EANonce與未加密的ANonce的比較結(jié)果用來偵別消息1的合法性,因此改進方案在客戶端收到消息1后就能判斷該連接的合法性,若校驗失敗則將非法通信切斷,這可以避免之后過程PTK重復計算,防止客戶端在收到消息3時發(fā)生PTK混亂,從而達到消除拒絕服務攻擊隱患的目的。
IEEE802.11i協(xié)議中四次握手協(xié)議為客戶端STA和認證者AP之間提供暫時密鑰協(xié)商機制,為每次會話提供安全保證,但是協(xié)議本身存在的缺陷未對第1次握手進行加密,導致客戶端存在Dos安全威脅。本文提供的改進方案是在四次握手協(xié)議的消息1字段中增加加密偽隨機數(shù)EANonce字段值,能有效避免PTK重復計算消除拒絕服務安全隱患,防止客戶端受到Dos攻擊,從而使無線網(wǎng)絡安全性能大大增強。
參考文獻
[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.
