馬秋賢 鄭揚馳
摘要:本文簡單闡述了WAP加密認證的體系結(jié)構和認證整個流程,同時指出了WAP加密中存在的不安全問題,即可以利用中間人攻擊達到對WLAN的威脅,并提出了改進的有效措施和建議。
關鍵詞:WAP;WLAN;IEEE;802.111引言
隨著各種各樣移動設備的大范圍使用,這些設備連接互聯(lián)網(wǎng)已經(jīng)越來越頻繁。而移動設備連接互聯(lián)網(wǎng)是通過無線連接。無線與有線連接方式在物理上存在很大的差別,因為無線是通過無線電波連接,任何在該無線覆蓋范圍內(nèi)的用戶都可以通過不同的途徑連接,其方便了很多合法的用戶,特別對應移動性較強的用戶。但另一方面對于安全性方面更具有挑戰(zhàn)性。
眾所周知,前期的IEEE 802.11協(xié)議是無線連接的標準協(xié)議,該協(xié)議是為了方便移動用戶連接無線網(wǎng)絡,但在安全性方面沒有做太多的要求,但隨著無線網(wǎng)絡的普及和無線技術的發(fā)展,無線網(wǎng)絡這一致命的弱點很容易被非法的用戶利用,并對無線網(wǎng)絡安全造成很大的威脅。IEEE802.11i所使用的加密技術是基于WEP(有線等效加密)協(xié)議,該協(xié)議設計目標是為WLAN提供與有線網(wǎng)絡相同級別的安全性,它可以防止明文數(shù)據(jù)在無線傳輸中被竊聽,并不足以對抗具有專門知識、充足計算資源的黑客對使用WEP加密的數(shù)據(jù)進行攻擊。
2WAP加密技術工作流程
WPA采用了802.1x和TKIP來實現(xiàn)WLAN的訪問控制、密鑰管理與數(shù)據(jù)加密。802.1x是一種基于端口的訪問控制標準,用戶必須通過了認證并獲得授權之后,才能通過端口使用網(wǎng)絡資源。TKIP雖然與WEP同樣都是基于RC4加密算法,但同時引入了4個新算法:
⑴擴展的48位初始化向量(IV)和IV順序規(guī)則(IV Sequencing Rules);
⑵每包密鑰構建機制(per-packet key construction);
⑶Michael(Message Integrity Code,MIC)消息完整性代碼;
⑷密鑰重新獲取和分發(fā)機制。
WPA系統(tǒng)在工作的時候,先由AP向外公布自身對WPA的支持,在Beacons、Probe Response等報文中使用新定義的WPA信息元素(Information Element),這些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根據(jù)收到的信息選擇相應的安全配置,并將所選擇的安全配置表示在其發(fā)出的Association Request和Re-Association Request報文中。WPA通過這種方式來實現(xiàn)STA與AP之間的加密算法以及密鑰管理方式的協(xié)商。
STA通過了802.1x身份驗證之后,AP會得到一個與STA相同的Session Key, AP與STA將該Session Key作為PMK(Pairwise Master Key,對于使用預共享密鑰的方式來說,PSK就是PMK)。隨后AP與STA通過EAPOL-KEY進行WPA的四次握手(4-Way Handshake)過程。(如圖1所示)
四次握手協(xié)議執(zhí)行過程如下:
⑴AP發(fā)送EAPOL-Key消息1給STA,其中包含Anonce,STA接收后進行重放攻擊檢查,若通過就利用Anonce和自己產(chǎn)生的Snonce調(diào)用PRF函數(shù)計算生成PTK。
⑵STA發(fā)送EAPOL-Key消息2給AP,其中包含Snonce,并在KeyData字段中放入STA的RSNIE,并用計算出的MIC對此消息進行數(shù)據(jù)完整性保護。
⑶AP收到消息2后把得到的STA的隨機數(shù)Snonce和自己的Anonce采用PRF函數(shù)計算PTK,再使用計算出PTK(Pairwise Transient Key)中的MK對消息2進行數(shù)據(jù)完整性校驗。如校驗失敗就放棄消息2,如成功,AP會將STA發(fā)來的RSNIE和在前一階段建立關聯(lián)時發(fā)送的RSNIE進行比較,如不同則說明該STA可能為假冒者,中斷STA的關聯(lián),若相同則EAPOL-Key消息3給STA。其中包含Anonce、KeyRSC、RSNIE和MIC(Message Integrity Code)。
⑷STA發(fā)送EAPOL-Key消息4給AP,AP收到后進行重放攻擊檢查。若通過就驗證MIC,驗證通過就裝載PTK,而STA在發(fā)送完消息4后也裝載相應的PTK,四次握手過程到次完成。
四次握手成功后,AP要生成一個256位的GTK(Group Transient Key),GTK是一組全局加密密鑰,所有與該AP建立關聯(lián)的STA均使用相同的GTK,AP用這個GTK來加密所有與它建立關聯(lián)的STA的通信報文, STA則使用這個GTK來解密由AP發(fā)送的報文并檢驗其MIC。該密鑰可以分解為三種不同用途的密鑰, 最前面的128位作為構造全局“每報文密鑰”(Per-packet Encryption Key)的基礎密鑰(Base Key),后面的兩個64位的密鑰分別作為計算和檢驗WPA數(shù)據(jù)報文的MIC的密鑰。AP使用EAPOL-KEY加密密鑰將GTK加密并發(fā)送給STA,并指明該GTK是否允許STA用作發(fā)送報文所使用,STA成功接收到該報文,將GTK解密后,向AP發(fā)送應答報文,并根據(jù)AP所指示的Key Index將其安裝無線網(wǎng)卡的相應位置,如果AP使用GTK作為向某一STA單播傳輸?shù)拿荑€,則該STA也需要使用GTK作為向AP發(fā)送單播報文的密鑰。WAP并不直接使用由PTK/GTK分解出來的密鑰作為加密報文的密鑰,而是將該密鑰作為基礎密鑰(Base Key),經(jīng)過兩個階段的密鑰混合過程,從而生成一個新的每一次報文傳輸都不一樣的密鑰,該密鑰才是用做直接加密的密鑰。
3WAP加密技術存在的安全問題
在WPA中,AP支持WPA和WEP無線客戶端的混合接入。在STA與AP建立關聯(lián)時,AP可以根據(jù)STA的Association Request中是否帶有WPA信息元素來確定哪些客戶端支持使用WPA。但是在混合接入的時候,所有WPA客戶端所使用的加密算法都得使用WEP,這就降低了無線局域網(wǎng)的整體安全性。
此外,通過對整個握手過程的分析可以了解到,惡意的攻擊者可以在四次握手的過程中消息2發(fā)送后,冒充AP向STA發(fā)送偽造的msg1。STA將根據(jù)新的msg1中的Anonce和本身產(chǎn)生新的Snonce,重新計算PTK,而PTK與認證者收到msg2后產(chǎn)生的PTK顯然是不一致的,這樣STA收到msg3后無法正確校驗,就會導致四次握手過程被終止,造成了DOS攻擊。(如圖3所示)
4解決WAP加密技術安全問題的方法
對于以上存在的安全問題,可以在當前的四次握手協(xié)議上做一部分改動,使STA保存所有可能的PTK,這樣可以適用這些PTK對msg3的MIC進行認證,從而可以防止上面提到的攻擊行為。
其次,當STA加入或者離開的時候必須更新組密鑰,在四次握手結(jié)束后,就可通過組密鑰握手協(xié)議更新GTK,更新的基本思路是AP選擇一個具有密碼性質(zhì)的256bit隨機數(shù)作為組密鑰,接著由GMK、AP的MAC地址直接推導出256bit的組臨時密鑰GTK,將GTK包含在EAPOL-Key消息中加密傳送。
[參考文獻]
[1]馬建峰,吳振強.無線局域網(wǎng)安全體系結(jié)構.北京:高等教育出版社,2008.
[2]楊哲.無線網(wǎng)絡安全攻防實戰(zhàn)進階.北京:電子工業(yè)出版社,2011.
[3]姚琳,王雷.無線網(wǎng)絡安全技術.北京:清華大學出版社,2013.