吳一塵
(中國人民解放軍電子工程學(xué)院網(wǎng)絡(luò)系,安徽 合肥 230037)
隨著無線網(wǎng)絡(luò)應(yīng)用的蓬勃發(fā)展,無線網(wǎng)絡(luò)的安全問題成為用戶關(guān)心的焦點。WEP(Wired Equivalent Privacy)標(biāo)準(zhǔn)由于本身設(shè)計上的缺陷,導(dǎo)致攻擊者只要能夠收集到足夠多的無線數(shù)據(jù)包,就一定能夠破解獲得WEP密鑰。目前,已經(jīng)有許多用于破解WEP密鑰的黑客工具被公布,例如:Aircrack-ng、Cain&Abel、SpoonWEP2等[1]。為了克服這一問題,Wi-Fi聯(lián)盟相繼提出了WPA(Wi-Fi Privacy Access)和WPA2安全標(biāo)準(zhǔn),WPA2被認(rèn)為是無線網(wǎng)絡(luò)安全問題的最終解決方案,但在實際應(yīng)用中,WPA/WPA2仍然存在一些缺陷可以被攻擊者利用。WPA/WPA2有兩種模式,分別是:WPA/WPA2-Enterprise(企業(yè)版)和 WPA/WPA2-PSK(個人版)。WPA/WPA2-Enterprise具有很高的安全性,但其配置和維護費用昂貴,一般小型企業(yè)和個人用戶難以負(fù)擔(dān)。攻擊者對于WPA/WPA2的攻擊主要針對WPA/WPA2-PSK,在這種模式下,攻擊者只需要截獲幾個特定的無線數(shù)據(jù)包,就可以利用字典破解的方式獲得用戶密碼(passphrase)[1],目前有多種類型的黑客軟件可以用于破解WPA/WPA2-PSK 用戶密碼,例如 Aircrack-ng、Cowpatty 等[2]。另外,隨著計算機運算速度與存儲容量的迅速提高,許多研究[3-4]都提出了加速破解WPA/WPA2-PSK用戶密碼的方法,嚴(yán)重威脅無線網(wǎng)絡(luò)的安全。針對這一安全隱患,本文首先分析字典破解WPA/WPA2-PSK用戶密碼的原理,發(fā)現(xiàn)攻擊者實現(xiàn)破解的原因在于能夠從截獲的特定無線數(shù)據(jù)包中獲取用于生成WPA/WPA2-PSK會話密鑰的明文密鑰材料。根據(jù)這一分析結(jié)果,本文采用對稱密鑰加密技術(shù)對WPA/WPA2-PSK模式下動態(tài)協(xié)商會話密鑰的四次握手過程進行改進,改進后的四次握手過程能夠避免攻擊者通過字典破解的方式獲取WPA/WPA2-PSK用戶密碼,提高了WPA/WPA2-PSK模式的安全性。
IEEE802.1X為認(rèn)證會話過程定義了3個組件,分別是:申請者、認(rèn)證者和認(rèn)證服務(wù)器。對WLAN來說,申請者請求接入無線網(wǎng)絡(luò),通常為支持IEEE802.1X的工作站。認(rèn)證者指需要訪問控制的端口,一般為無線接入點。認(rèn)證者在認(rèn)證過程中只起到透明傳輸?shù)淖饔茫械恼J(rèn)證工作都在申請者和認(rèn)證服務(wù)器上完成。認(rèn)證服務(wù)器實現(xiàn)具體的認(rèn)證功能,并通知認(rèn)證者是否允許用戶訪問端口所提供的服務(wù)。認(rèn)證服務(wù)器通常是一臺RADIUS(Remote Authentication Dialin User Service)服務(wù)器,該服務(wù)器存儲了用戶的相關(guān)信息,如用戶名、密碼、用戶訪問控制列表等。IEEE802.1X采用EAP協(xié)議作為認(rèn)證信息交互機制,EAP消息封裝在EAPOL分組中[5-6]。
一次完整的IEEE802.1X認(rèn)證過程包括申請者和認(rèn)證者之間的握手、認(rèn)證者和認(rèn)證服務(wù)器之間的握手以及申請者和認(rèn)證服務(wù)器之間的握手(通過認(rèn)證者轉(zhuǎn)發(fā))。通過這些握手過程,申請者和認(rèn)證服務(wù)器彼此相互認(rèn)證并生成一個共同的密鑰,叫做主會話密鑰(Master Session Key,MSK)。認(rèn)證服務(wù)器將 MSK安全地傳輸給認(rèn)證者,申請者和認(rèn)證者利用MSK生成成對主密鑰(Pairwise Master Key,PMK),用于接下來成對臨時密鑰(Pairwise Transient Key,PTK)的生成[7]。
IEEE802.1X認(rèn)證具有很高的安全性,但這種認(rèn)證模式需要架設(shè)一臺專用的RADIUS服務(wù)器,對于小型企業(yè)和個人用戶來說,代價過于昂貴,維護也很復(fù)雜,所以WPA-Enterprise主要應(yīng)用于大型企業(yè)。針對小型企業(yè)和個人用戶,WPA/WPA2提供了一種不需要RADIUS服務(wù)器的預(yù)共享(Pre-Shared Key,PSK)模式。在PSK模式下,申請者和認(rèn)證者預(yù)先輸入一個passphrase,然后根據(jù)式(1):
PSK=pbkdf 2(passphrase,ssid,ssidLength,4096,256)(1)
計算生成PSK,其中,ssid是認(rèn)證者的服務(wù)集標(biāo)識(Service Set Identifier,SSID)。計算得到的PSK用于替代PMK。該PSK被申請者和認(rèn)證者存儲起來用于同一個申請者和認(rèn)證者之間多次重復(fù)關(guān)聯(lián),從而減少生成PSK的計算負(fù)載。
生成PMK(或PSK)之后,申請者和認(rèn)證者發(fā)起四次握手過程,動態(tài)協(xié)商用于此次會話的PTK。
四次握手過程[8-9]的消息均由EAPOL-Key幀格式封裝,消息交換過程如圖1所示,其中,STA和AP分別表示申請者和認(rèn)證者,SNonce和ANonce是STA和AP生成的隨機值,STA_MAC和AP_MAC分別表示STA和AP的MAC地址,RSN IE(Robust Security Network Information Element)是健壯安全網(wǎng)絡(luò)信息元素,MIC(Message Integrity Code)是消息完整性校驗值,GTK(Group Temporal Key)是WLAN目前正在使用的組臨時密鑰。
圖1 四次握手過程
(1)消息1:AP生成并向STA發(fā)送ANonce。
(2)消息2:STA收到ANonce之后,生成SNonce,根據(jù)式(2)計算得到PTK,其中,“‖”表示連接操作。
PTK=prf- x(PSK,"pairwise key expansion",min(STA_MAC,AP_MAC)‖max(STA_MAC,AP_MAC)‖min(ANonce,SNonce)‖max(ANonce,SNonce)) (2)
PTK包含3個部分,分別是:EAPOL密鑰確認(rèn)密鑰(EAPOL Key Confirmation Key,KCK)、EAPOL 密鑰加密密鑰(EAPOL Key Encryption Key,KEK)、臨時密鑰(Temporal Key,TK)。其中,KCK 用于計 算EAPOL-Key幀的校驗和,KEK用來加密EAPOL-Key幀的數(shù)據(jù),TK用以加解密STA與AP之間的單播數(shù)據(jù)。STA向AP發(fā)送SNonce和STA的RSN IE,并且利用KCK對整個消息2進行MIC校驗。
(3)消息3:AP得到SNonce之后,利用同樣的方法計算出PTK并且對消息2進行MIC校驗,如果校驗失敗則丟棄消息2,成功則向STA發(fā)送ANonce(和消息1中的ANonce相同)、AP的RSN IE、MIC、是否安裝PTK、用KEK加密的GTK。
(4)消息4:STA收到消息3并校驗正確后即裝入PTK和GTK,然后向AP發(fā)送消息4,表示已經(jīng)裝入PTK和GTK。AP收到消息4并校驗正確后也裝入PTK。至此,四次握手過程完成。
WPA/WPA2-Enterprise的安全性非常高,破解難度極大,但目前已經(jīng)有多種黑客軟件可以破解WPA/WPA2-PSK模式下的用戶密碼,例如 Aircrack-ng、Cowpatty等。這些軟件都是采用字典破解的方式獲得PSK模式下的用戶密碼。
從對四次握手過程的描述可知,WPA/WPA2-PSK的認(rèn)證實際上是對MIC的認(rèn)證。MIC由KCK計算生成,而KCK是由PTK分解得到的。計算PTK需要 ANonce、SNonce、AP 的 MAC 地址 AP_MAC、STA的MAC地址STA_MAC以及PSK,在四次握手過程中,消息1和消息2中的ANonce、SNonce沒有經(jīng)過加密,是明文傳送的,攻擊者只要捕獲到這兩個消息,就能得到ANonce和SNonce,而PSK是由passphrase和AP的SSID計算得出的,根據(jù)這些已知的數(shù)據(jù),攻擊者可以利用先假設(shè)再驗證的思想,試探得到passphrase,這種破解方式被稱為字典破解。
字典破解中的字典是事先已經(jīng)獲取的passphrase的集合。攻擊者利用假設(shè)的思想,從字典中取出一條passphrase,聯(lián)合AP的SSID,計算得到PSK’,然后根據(jù)截獲到的消息1和消息2中的ANonce、SNonce、AP_MAC和STA_MAC,計算得到PTK’,再將PTK’分離得到KCK’,用KCK’對消息2進行MIC校驗,如果之前假設(shè)的passphrase是正確的,那么,MIC校驗的結(jié)果必然和截獲到的消息2中的MIC值一致,否則說明之前假設(shè)的passphrase不正確,繼續(xù)從字典中取出下一條passphrase,重復(fù)以上過程,直到找到正確的passphrase為止[10]。由此可以看出,字典破解的成功率依賴于字典的大小,如果字典中不包含正確的用戶密碼,就不可能破解成功。
另外,傳統(tǒng)的WPA/WPA2-PSK字典破解工具一般采用單機單核進行破解,破解速度有限,加之密鑰的定時自動更新機制,往往因為破解速度過慢,在PSK更新周期內(nèi)未完成密鑰空間的搜索而失效。目前,已有許多研究針對如何提高WPA/WPA2-PSK的破解速度進行了探索和嘗試。文獻[3]提出一種分布式多核CPU加GPU的WPA/WPA2-PSK高速暴力破解器,文獻[4]提出了利用彩虹表和GPU破解對稱密碼的技術(shù)。同時,也已經(jīng)有相關(guān)的商業(yè)軟件和開源軟件被發(fā)布。俄羅斯軟件公司ElcomSoft推出了一款商業(yè)單機軟件Wireless Security Auditor,利用GPU的運算性能提升WPA/WPA2-PSK的破解速度,開源Pyrit是專門的WPA/WPA2-PSK破解工具,支持多核心CPU和GPU,基于Python語言開發(fā),該破解工具的最新版本引入了網(wǎng)絡(luò)核心概念,將網(wǎng)絡(luò)上的協(xié)作破解機器作為本機外的另一個計算核心。這些研究的提出和相關(guān)軟件的發(fā)布,大大提高了WPA/WPA2-PSK的破解速度,也進一步威脅到WPA/WPA2-PSK模式的安全性。
通過上述對字典破解的描述可以看出,攻擊者需要獲取幾個關(guān)鍵信息,才能夠進行PSK的猜測和驗證。如果能夠?qū)⑦@些關(guān)鍵信息至少隱藏起一部分,使得攻擊者無法獲取其明文,那么字典破解就不能進行下去。在字典破解中,攻擊者首先根據(jù)假設(shè)的passphrase以及AP的SSID計算得到PSK’,然后需要截獲四次握手過程中的消息1和消息2(或者消息2和消息3),從中獲取明文 ANonce和 SNonce,聯(lián)合AP的MAC地址AP_MAC、STA的MAC地址STA_MAC以及PSK’,計算得到PTK’。由此可見,在字典破解中,攻擊者必須要獲得的關(guān)鍵信息包括:AP的SSID、AP_MAC、STA_MAC、ANonce和 SNonce。其中,AP 的SSID、AP_MAC、STA_MAC在 AP的 Beacon幀、STA的Probe request幀以及AP的Probe response幀中都是明文出現(xiàn)的,很容易獲得且無法被隱藏,因此,唯一能夠隱藏的關(guān)鍵信息就是ANonce和SNonce。如果AP能夠?qū)ο?中的ANonce進行加密而STA能夠正確解密,那么,由于攻擊者不知道加解密的密鑰,即使截獲了消息1,也無法得到正確的明文ANonce,同理,可以對消息2中的SNonce和消息3中的ANonce進行相同的處理,經(jīng)過這一改進后,由于攻擊者無法獲取明文ANonce和SNonce,字典破解將無法進行。
根據(jù)以上分析,本文提出一種基于對稱密鑰加密技術(shù)[11-12]的 WPA/WPA2-PSK改進方法。由于在消息1的傳遞過程中,AP和STA共享的密鑰只有PSK,同時,為了保護PSK的安全,根據(jù)式(3)將PSK展開成PEK,作為加解密ANonce和SNonce的對稱密鑰。
PEK=PRF - X(PSK,″Pairwise Encryption Key″,Min(STA_MAC,AP_MAC)||Max(STA_MAC,AP_MAC)) (3)
在這種改進方法中,AP與STA之間的四次握手過程如圖2所示。
圖2 WPA/WPA2-PSK改進方法
(1)消息1:AP根據(jù)式(3)計算得到PEK,生成隨機數(shù) ANonce并用 PEK加密,加密采用 AES(Advanced Encryption Standard)算法[13-14],AP 向 STA 發(fā)送加密后的ANonce。
(2)消息2:STA按照同樣的方法計算得到PEK,利用PEK對收到的消息1解密獲得ANonce,STA生成SNonce并根據(jù)式(2)計算得到PTK,然后向AP發(fā)送用PEK加密的SNonce、STA的RSN IE以及用KCK計算得到的MIC值。
(3)消息3:AP收到消息2,解密得到SNonce并計算PTK,然后利用KCK對消息2進行MIC校驗,如果校驗失敗,則丟棄消息2,如果校驗成功,則向STA發(fā)送用PEK加密后的ANonce、AP的RSN IE、是否安裝PTK、用KEK加密的GTK,整個消息3用KCK進行MIC校驗。
(4)消息4:STA收到消息3并校驗正確后即裝入PTK和GTK,然后向AP發(fā)送消息4,表示已經(jīng)裝入PTK和GTK。AP收到消息4并校驗正確后也裝入PTK。
由于攻擊者不知道 PEK,對密文 ANonce和SNonce解密后必然會有某些不可讀的符號和字符,無法獲得正確的明文ANonce和SNonce,因此字典破解無法繼續(xù)進行。
在WPA/WPA2的四次握手過程中,AP和STA之間的消息都是通過EAPOL-Key幀格式封裝的。為了盡可能減少對協(xié)議的修改,應(yīng)該保證改進方法中所產(chǎn)生的新的數(shù)據(jù)傳遞能夠封裝在EAPOL-Key幀中,同時不會打亂已有數(shù)據(jù)在該幀格式中存放的位置。EAPOL-Key幀格式如圖3所示。
圖3 EAPOL-Key幀格式
在本文提出的WPA/WPA2-PSK改進方法中,消息1、2、3中的ANonce和SNonce需要加密傳送,其余數(shù)據(jù)沒有發(fā)生變動。在WPA/WPA2四次握手過程中,傳遞消息 1時,EAPOL-KEY幀中的 Key Data Length字段和Key Data字段沒有被使用,所以,在改進方法中,消息1中加密的ANonce可以存放在Key Data字段,而密文的長度可以存放在Key Data Length字段。在WPA/WPA2四次握手過程傳遞消息2時,EAPOL-Key幀的Key Data字段已經(jīng)被用于存放STA的RSN IE,但由于Key Data Length字段存放了該RSN IE的長度,所以,在改進方法中,可以接著該RSN IE之后,繼續(xù)在Key Data字段存放加密后的SNonce,而密文的長度可以存放在EAPOL-Key幀的Reserved字段中,該字段在WPA/WPA2中一直沒有被使用,作為保留字段。類似地,在WPA/WPA2四次握手過程傳遞消息3時,EAPOL-Key幀的Key Data字段已經(jīng)存放了AP的RSN IE和用KEK加密后的GTK,同時Key Data Length字段存放了該RSN IE和GTK的長度,在改進方法中,仍然可以繼續(xù)在 Key Data字段中接著存放加密后的Anonce,同時將密文長度存放在Reserved字段中。由此可見,本文所提出的WPA/WPA2-PSK改進方法不需要修改EAPOLKey幀的幀格式,并且不會打亂幀中已經(jīng)存放的數(shù)據(jù)的位置。
針對WPA/WPA2-PSK容易遭受字典破解的安全隱患,本文提出了一種基于對稱密鑰加密技術(shù)的WPA/WPA2-PSK動態(tài)密鑰協(xié)商過程改進方法,采用AES算法對字典破解所依賴的明文 ANonce和SNonce進行加密傳輸。攻擊者由于不知道加解密密鑰,因此無法獲取正確的明文ANonce和SNonce,從而無法進行字典破解。
隨著計算機運算能力的不斷提高和存儲器容量的不斷增大,越來越多的研究采用分布式、多核CPU、GPU、彩虹表等技術(shù)對WPA/WPA2-PSK進行高速字典破解,雖然WPA/WPA2-Enterprise的安全性非常高,但面向小型企業(yè)和個人用戶的WPA/WPA2-PSK卻是無法被替代的,因此,進一步增強WPA/WPA2-PSK的安全性,將是未來研究的方向。
[1]楊哲.無線網(wǎng)絡(luò)安全攻防實戰(zhàn)進階[M].北京:電子工業(yè)出版社,2011:63-98.
[2]楊哲.無線網(wǎng)絡(luò)安全攻防實戰(zhàn)[M].北京:電子工業(yè)出版社,2008.
[3]劉永磊,金志剛,陳喆,等.WPA/WPA2-PSK高速暴力破解器的設(shè)計和實現(xiàn)[J].計算機工程,2011,37(10):125-127.
[4]金銓.DES密碼算法的彩虹攻擊技術(shù)及其GPU實現(xiàn)[D].上海:上海交通大學(xué),2010.
[5]王小軍,陸建德.基于802.11i四次握手協(xié)議的攻擊分析與改進[J].計算機工程,2007,33(3):169-171.
[6]王小軍,陸建德.基于802.11i的四次握手協(xié)議的攻擊[J].計算機與現(xiàn)代化,2006(5):72-75.
[7]梁峰,史杏榮,曲阜平.IEEE802.11i中四次握手過程的安全分析和改進[J].計算機工程,2007,33(3):149-150,179.
[8]IEEE 802.11i-2004,Amendment 6:Medium Access Control(MAC)Security Enhancements[S].
[9]Matthew S Gast.802.11無線網(wǎng)絡(luò)權(quán)威指南[M].南京:東南大學(xué)出版社,2007:179-180.
[10]白珅,王軼駿,薛質(zhì).WPA/WPA2協(xié)議安全性研究[J].信息安全與通信保密,2012(1):106-108.
[11]王亞弟,束妮娜,韓繼紅,等.密碼協(xié)議形式化分析[M].北京:機械工業(yè)出版社,2006:8-10.
[12]謝希仁.計算機網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2011:287-289.
[13]柯海清,馮啟明.數(shù)據(jù)加密技術(shù)及網(wǎng)絡(luò)應(yīng)用[J].武漢理工大學(xué)學(xué)報:交通科學(xué)與工程版,2002,26(6):818-821.
[14]肖國鎮(zhèn),白恩健,劉曉娟.AES密碼分析的若干新進展[J].電子學(xué)報,2003,31(10):1549-1554.