房沛榮 唐剛 程曉妮
摘要:無線局域網(wǎng)在給人們的日常生活帶來便利的同時,也增加了通信的不安全性。為了克服WEP協(xié)議固有弱點給無線網(wǎng)絡帶來的諸多安全性隱患,Wi-Fi聯(lián)盟提出了WPA/WPA2協(xié)議來替代WEP協(xié)議。本文主要對WEP、WPA/WPA2兩種無線局域網(wǎng)通信協(xié)議加密過程進行了研究,并從數(shù)據(jù)加密、數(shù)據(jù)完整性、身份認證等方面詳細分析了WPA/WPA2協(xié)議所做出的改進。最后文章還對WPA/WPA2的攻擊方式做了簡單介紹。
關鍵詞:無線局域網(wǎng);WPA/WPA2協(xié)議;WEP協(xié)議
中圖分類號:TP311
文獻標識碼:A
0 引言
隨著近年來筆記本電腦、平板電腦、智能手機的普及,無線局域網(wǎng)作為無線寬帶通信的一種,近些年發(fā)展極為迅猛。據(jù)wifi聯(lián)盟估計,全球已經(jīng)有10%的人使用無線局域網(wǎng)進行通信。無線局域網(wǎng)在為人們提供便利的同時,安全問題也隨之日漸突出。近年來,由于使用無線局域網(wǎng)的原因而造成經(jīng)濟損失的案例也常常見諸各種新聞媒介。有線對等加密協(xié)議作為第一代無線局域網(wǎng)協(xié)議,并沒有很好地解決無線局域網(wǎng)的安全問題,WPA/WPA2(Wi-Fi網(wǎng)絡安全存?。﹨f(xié)議繼承了WEP協(xié)議,并且彌補了WEP協(xié)議的設計缺陷和漏洞,保護了無線網(wǎng)絡的安全。
1 WEP協(xié)議、WPA/WPA2協(xié)議
1.1WEP協(xié)議
WEP協(xié)議是運用在數(shù)據(jù)鏈路層的加密協(xié)議,采用電子信息領域常用的RC4加密算法。WEP協(xié)議的加密過程如下:①運用CRC-32s算法將計算出完整性檢驗值ICV,并將值附加在明文的尾部;②首先用24位的初始化向量IV和40位密鑰K混合成密鑰流種子,再用偽隨機序列產(chǎn)生器PRNG生成密鑰流;③將明文和密鑰流異或相加生成密文。
WEP加密過程如圖1所示。
1.2WPA/WPA2協(xié)議
WPA采用的加密算法是臨時密鑰完整協(xié)議(TKIP)RC4加密算法,該算法繼承了WEP協(xié)議的加密原理,但是在WEP的加密原理上做出了巨大改進,彌補了WEP的缺陷,極大的提高了數(shù)據(jù)加密的安全性。WPA2協(xié)議與WPA協(xié)議非常相似,兩者唯一的區(qū)別是WPA2算法采用了高級加密標準(AES)MJ。WPA協(xié)議的整個加密過程如下:
1.生成MSDU
WPA協(xié)議在計算消息的完整性校驗碼時,使用了MSDU明文數(shù)據(jù)、源地址、目標地址和臨時密鑰等多種信息,并用該校驗碼取代了在WEP協(xié)議中使用的ICV,同時WPA將計算得到的MIC值附加到MSDU生成傳輸?shù)男畔?,在MSDU較長時,協(xié)議可以將MSDU分為若干個子段。
2.生成WEP種子
在上一階段中,由臨時密鑰(TK)、發(fā)送方地址(TA)和序列號口(sc)生成了臨時混合密鑰(TI'AK)。本階段中,再由TTAK、TSC和TK雜湊為WEP種子密鑰。
3.封裝WEP
在本階段中,協(xié)議將上階段生成的WEP種子密鑰分成WEP IV和RC4算法密鑰兩部分。其中使用RC4算法密鑰生成密鑰流,然后將生成的結果與MSDU相異或生成密文MSDU并將IV附加尾部形成MPDU。
WPATKIP加密過程如圖2所示。
1.3 WEP、WPA、WPA2兩種協(xié)議的對比
WPAlVJ協(xié)議在WEP協(xié)議的基礎上做了眾多改進,本文主要從數(shù)據(jù)加密、數(shù)據(jù)完整性、身份認證等方面對兩個協(xié)議進行對比介紹。
1.3.1數(shù)據(jù)加密方面
在WEP協(xié)議中,使用的加密算法是RC4加密算法,在該算法中存在部分弱密鑰,使得子密鑰序列在不到100萬字節(jié)內(nèi)就發(fā)生了完全的重復,如果是部分重復,則可能在不到10萬字節(jié)內(nèi)就能發(fā)生重復。大量弱密鑰的存在,這將導致生成的密鑰序列中有相當數(shù)量的序列位僅由弱密鑰的部分比特位所決定,這個規(guī)律使得該算法被破解的難度大大降低。再加上RC4算法中以明文進行通信,這使得密文很容易被攻擊者破解。另外,在WEP協(xié)議中,算法需要使用手動方式將密鑰寫入WLAN的設備中,因此在同一個WLAN中,沒有自動密鑰管理機制,客戶和接入點使用同一個單一密鑰。
在WPA協(xié)議中,采用的臨時密鑰完整性協(xié)議TPIK(Temporal Key Integrity Protocol)、802.1x和可擴展認證協(xié)議(EAP)。其中TPIK協(xié)議使用的密鑰序列的保密性大大增強,雖然在WPA協(xié)議中依然使用RC4算法,但是在RC4算法的基礎上進行了改進,使得數(shù)據(jù)封裝的形式更為復雜,密鑰長度也由40位增長至128位,在分發(fā)時也由密鑰認證服務器動態(tài)的進行認證與分發(fā)。同時,TPIK協(xié)議還使用了密鑰分級技術以及先進的密鑰管理方法,從而大大增強了密鑰的保密性。除此之外,TPIK還使用了802.1X和EAP認證機制增強加密的安全性。在用戶完成認證服務器中的認證后,服務器使用802.1x生成一個唯一的主密鑰,TPIK將主密鑰分別發(fā)送到客戶機和AP,在會話期間,每個被傳遞的數(shù)據(jù)包都采用一個唯一的密鑰來完成加密工作,從而建立起密鑰分級及管理系統(tǒng)。TKIP的應用,使得每個數(shù)據(jù)包在加密時可以使用的密鑰數(shù)量達到數(shù)千萬個,有效的解決了WEP協(xié)議中加密算法密鑰過短、靜態(tài)密鑰和密鑰缺乏管理等問題。
1.3.2數(shù)據(jù)完整性
在WEP協(xié)議中,使用了32位循環(huán)冗余校驗(CRC),但是CRC的計算復雜度是線性的,這個特點很容易被攻擊者應用。在修改數(shù)據(jù)幀的同時,修改相應的CRC位,很容易通過算法的完整性校驗。
而在WPA協(xié)議中,使用的是信息完整性代碼MIC(Message Integrity Code)來防止入侵者對數(shù)據(jù)幀的修改,該機制中,發(fā)送端和接收端都會對MIC值進行計算并比較,如果算法發(fā)現(xiàn)計算值與獲得值不相等,則認為數(shù)據(jù)幀被惡意篡改,然后將當前的數(shù)據(jù)包丟棄并重新發(fā)送數(shù)據(jù)包。這樣使得數(shù)據(jù)包被篡改的概率大大降低。
1.3.3身份認證方面
在WEP協(xié)議中,沒有對用戶的身份認證進行明確定義,在實際應用中,一般將WEP的共享密鑰作為用戶身份驗證的密碼,但是這種認證是基于硬件的單向認證,有可能受到硬件的威脅,同時也有被拒絕服務攻擊的風險。
在WPA協(xié)議中,有效的避免了上述問題,在該協(xié)議中使用了兩種認證方式。第一種是802.1x+EAP的認證方式,用戶向服務器提供認證所需憑證,例如可以使用用戶密碼并通過特定的認證服務器來實現(xiàn),這種方式需要使用一臺特定的服務器,價格較為昂貴。另外一種方式是WPA-PSK,這種方式是對802.1x+EAP的簡化,在802.1x+EAP中,802.1x是基于端口的網(wǎng)絡訪問控制協(xié)議,要求用戶必須在完成身份認證后才能對網(wǎng)絡進行訪問,802.1x協(xié)議除了需要進行端口訪問控制和身份認證以外,還需要動態(tài)的進行密鑰管理。在802.1x協(xié)議中,使用EAP作為認證協(xié)議,EAP定義了認證過程中的消息傳遞機制,802.1x認證過程主要分為以下幾個步驟:
在AP偵測到一個客戶端后,AP將向客戶端發(fā)送一個EAPOL格式的EAP Request-ID信息。
在客戶端收到該信息后,向AP返回一個含有用戶ID的EAPOI,該信息將被封裝成RADIUS請求數(shù)據(jù)包,傳送至骨干網(wǎng)上的RADIUS服務器。
然后進行EAP認證,在服務器支持下,消息在客戶端和RADIUS之間進行中繼,在客戶端使用EAPOL協(xié)議,而在服務器端使用RADIUS協(xié)議。
在完成EAP認證后,RADIUS服務器發(fā)出一個包含有EAP標志的RADIUS數(shù)據(jù)包,該數(shù)據(jù)包將被傳送到客戶端。如果RADIUS服務器通過了客戶端的認證,所請求的端口將被開放給客戶端。
在WPA-PSK方式中,實現(xiàn)方式將被大大簡化,僅僅要求在每個WLAN節(jié)點預置共享密鑰即可。只要客戶端的密鑰與服務器端的相吻合,客戶端就可以獲得網(wǎng)絡的訪問權。同時這個密鑰僅僅使用于認證過程,并不會在預共享認證過程中產(chǎn)生嚴重的安全問題。
綜上,WPA協(xié)議綜合使用了802.1X、EAP、TKIP和MIC安全協(xié)議。負責接入認證的802.1x和EAP協(xié)議與負責數(shù)據(jù)加密及完整性校驗的TPIK和MIC協(xié)議一起,實現(xiàn)了WPA協(xié)議在應用中極強的可靠性。
事實證明,WPA/WPA2具有很高的安全性,算法方面沒有明顯漏洞,只要用戶不采用非常簡單的弱密碼,想要通過遍歷密碼表進行暴力破解是非常困難的。目前的主要攻擊手段是通過遍歷密碼表進行暴力破解,這種方法在用戶密碼比較復雜的情況下非常耗時,而且,通常會達到天文數(shù)字般的時間長度,攻擊者的破解成本過于高昂,使得WPA/WPA2的破解實際上不可行,有效地保證了安全性。
2 破解
在現(xiàn)實中,黑客仍然可以利用WAP/WAP2的一些弱點,對其進行攻擊,破解WIFI的密碼。要破解WPA/WPA2,需要獲得預共享密鑰模式下的預共享密鑰PSK或認證模式下的主會話密鑰MSK,在各種攻擊中暴力破解攻擊可以獲得PSK或MSK。在實際應用中,很多無線局域網(wǎng)都采用預共享密鑰模式,因此,在暴力破解中WPA/WPA2-PSK暴力破解尤為重要。WPA/WPA2-PSK暴力破解器作為一種自動化的暴力破解,使WPA/WPA2-PSK的黑客軟件應運而生,如Aircrack-ng和Cowpatty,但傳統(tǒng)的WPA/WPA2-PSK暴力破解器僅采用單機單核進行破解,破解速度有限,提高WPA/WPA2-PSK的破解速度,成為破解密碼需要解決的重點問題。俄羅斯軟件公司ElcomSoft推出一款單機軟件Wireless Security Auditor,利用GPU的運算性能提升WPA/WPA2-PSK的暴力破解速度,由于是商業(yè)軟件,因此實現(xiàn)細節(jié)未公開。該WPA/WPA2-PSK暴力破解器僅利用了單機的計算資源。開源Pyrit是專門的WPA/WPA2-PSK破解工具,支持多核心CPU和GPU,基于Python語言開發(fā)。該暴力破解器的最新版本引入了網(wǎng)絡核心概念,將網(wǎng)絡上的協(xié)作破解機器作為本機外的另一個計算核心,但用于分布式破解時要在破解的同時傳輸PSK List,網(wǎng)絡開銷較大。ZerOne安全團隊使用分布式來建立大型WPA Hash Table,使用分布式計算結合WPA Hash Table來進行WPA/WPA2加密數(shù)據(jù)包的破解,破解速度可以輕易地超過80萬key/秒。
在WPA/WPA2-PSK模式中,通信雙方采用PSK。首先通信雙方通過PBKDF2函數(shù)和基于哈希的消息認證碼——安全哈希算法,將PSK轉化為成對主密鑰PMK。接著通信雙方借助4次握手和PRF-X函數(shù)將PMK轉化為成對臨時密鑰PTK,進而將PTK映射為EAPOL(EAP Over LAN)密鑰確認密鑰KCK,EAPOL密鑰加密密鑰KEK和臨時密鑰TK,對于TKIP協(xié)議,TK還進一步映射為TK、AP到STA的M1C密鑰和STA到AP的MIC密鑰。
4次握手通過EAPOL一密鑰幀完成。
破解步驟如下:
攻擊者被動偵聽AP與STA之間的通信,獲得4次握手包和AP的ssid,也可用deauthentication攻擊加速此過程。
捕獲握手包后進行離線攻擊。窮舉每個可能的密鑰,利用ssid,計算PMK。
分析握手包1和2,得到ANonee、SNonee、AA、SPA,與上一步得到的PMK計算出PTK的前128 bit KCK即可。
根據(jù)EAPOL-密鑰幀中的密鑰描述符類型字段決定消息認證算法,使用上一步得到的KCK,計算消息2的MIC值,與捕獲的消息2的MIC值比較,相同則表明密鑰猜測正確,否則,繼續(xù)嘗試下一個可能密鑰。
3 總結
數(shù)據(jù)加密是增加無線網(wǎng)絡安全的一種有效方法,WPA的出現(xiàn)為現(xiàn)有的無線網(wǎng)絡產(chǎn)品提供了一個簡便的升級途徑,可以通過對軟件和硬件的升級來加強信息的安全加密和網(wǎng)絡接入控制。與WEP協(xié)議相比,對WPA/WPA2協(xié)議破解的難度有了很大提升,WPA目前沒有加密體質(zhì)的缺陷可以被利用,但是仍可以通過常規(guī)的字典攻擊法破解WPA的密碼。包括了高級加密標準AES(Advaneed EncryptionStandard)等安全特性的802.11i無線網(wǎng)絡安全協(xié)議將在未來成為WLAN的規(guī)范,為Wlan提供更加安全的協(xié)議。