解讀WLAN安全機制
摘 要:本文介紹了基于IEEE 802.11 WLAN的安全機制,分析了有線(xiàn)等效保密協(xié)議(WEP)的工作原理及存在的安全漏洞,并對802.11i安全協(xié)議進(jìn)行了詳細的闡述。
關(guān)鍵詞:WLAN安全;WEP;TKIP;CCMP;802.11i
引言
WLAN在許多領(lǐng)域得到了充分的應用。但是WLAN的媒質(zhì)是共享的,數據通過(guò)無(wú)線(xiàn)電波在空中傳播,就有可能到達預期之外,對數據安全造成重大的威脅,因此WLAN安全問(wèn)題更為引人注目。本文對無(wú)線(xiàn)網(wǎng)絡(luò )安全機制進(jìn)行了全面的分析。
802.11標準的安全機制
大多數WLAN設備都是以IEEE 802.11協(xié)議為基礎的,該標準為解決WLAN的安全問(wèn)題,提出了一系列的安全機制,包括有線(xiàn)等效保密協(xié)議(Wired Equivalent Privacy,WEP)、開(kāi)放式系統認證(Open System Authentication)和共享密鑰認證(Shared Key Authentication)等。
有線(xiàn)等效保密協(xié)議——WEP
WEP的目標是應能支持自同步、計算能力強且具有可輸出性。為實(shí)現這些目標,WEP協(xié)議采用RC4偽隨機數據產(chǎn)生器(Pseudo Random Number Generator,PRNG)生成密碼流,對WLAN中的數據流進(jìn)行加密保護。由于WEP不提供對數據的認證功能,且RC4為一種對稱(chēng)的密碼流加密算法,因此WEP不使用數據完整性密鑰,而只使用數據加密密鑰,解密密鑰與加密密鑰相同。
圖1展示的是WEP封裝的媒體訪(fǎng)問(wèn)控制協(xié)議數據單元(MAC Protocol Data Uint,MPDU)格式擴展的Framebody部分,從圖中可以清楚地看到,它相對于傳統802.11標準定義的MPDU單元額外擴展了8個(gè)字節。最左端是32位的初始向量(Initialization Value,IV)區域,包含3字節的初始向量值、2比特的密鑰ID值和6比特的填充字段。附于數據右端的是4字節的完整性檢驗值(Integrity Check Value,ICV),它采用CRC-32算法,由明文數據計算而得。對于WEP加密機制來(lái)說(shuō),需要RC4密碼流加密的數據應包含圖中的數據和ICV兩部分。
WEP加密封裝過(guò)程如下:24比特的初始向量與40比特(或104比特)的靜態(tài)共享密鑰WEP密鑰連接起來(lái)組成64比特(或128比特)的密鑰種子(Seed),輸入到RC4偽隨機數據產(chǎn)生器中以產(chǎn)生密碼流(Key Stream)。同時(shí),MPDU明文數據(Plaintext)經(jīng)由CRC-32算法計算出完整性校驗值,附在MPDU明文數據之后,與RC4 PRNG產(chǎn)生的密碼流作異或(Exclusive)操作得到密文(Ciphertext),最后將初始向量、加密的數據和ICV值按照圖1定義的格式封裝好等待發(fā)送。RC4為對稱(chēng)的密碼流加密算法,因此解密時(shí)只需將加密封裝反向操作,就可獲得MPDU明文數據,不同之處在于解密時(shí)需要比較ICV,即將由解密后的明文計算出來(lái)的ICV值與封包上的ICV值進(jìn)行比較,以確保數據完整性。
WEP存在的安全漏洞
如果WLAN的竊聽(tīng)者攔截到具有兩個(gè)相同初始向量的數據包,將它們進(jìn)行異或,就可以得到這兩個(gè)數據包明文的異或值,如果推斷出其中一條消息的明文,或者攻擊者根本就很清楚其中某一條消息的明文,那么另一條消息的具體內容也就顯而易見(jiàn)了。造成這個(gè)缺陷的主要原因就是這兩個(gè)數據包使用了相同的IV,而由IV與靜態(tài)共享密鑰組成的RC4密鑰種子相同,因此通過(guò)RC4偽隨機密碼產(chǎn)生器產(chǎn)生的密碼流也是相同的,即相對于兩個(gè)數據包來(lái)說(shuō),加密用的密碼流重用了。
在802.11標準中并沒(méi)有明確規定何時(shí)更換IV和如何更換IV的法則,而且將IV在明文中直接傳送。制造廠(chǎng)商在設計時(shí)為了方便起見(jiàn),通常將IV的初始值設置為0,然后往上遞增,這樣,小數值的IV使用頻率增大,密碼流重用的幾率也增大了,同時(shí)攻擊者攔截到相同密碼流加密的數據包的幾率也就增大了。
從WEP的MPDU格式中可以知道,初始向量IV只有24位,這是非常有限的,就算IV把所有可能值輪循一次,竊聽(tīng)者也可以在幾個(gè)小時(shí)之內獲得重復IV所產(chǎn)生的相同的密鑰種子及密碼流,這樣便縮短了密鑰的使用壽命。
WEP的封裝過(guò)程顯示,它并沒(méi)有額外進(jìn)行數據完整性校驗,而僅僅使用CRC-32算法對需要加密的明文計算了一次完整性檢驗值。眾所周知,CRC-32算法是一個(gè)線(xiàn)性函數,攻擊者可以利用這個(gè)特性來(lái)構建正確的加密包,而僅需要為篡改的消息計算出相應的ICV值即可。
802.11i 構建安全網(wǎng)絡(luò )
目前迫切需要一種比WEP更完善的網(wǎng)絡(luò )安全機制來(lái)有效地加強WLAN的安全性,鑒于這個(gè)原因,IEEE成立了專(zhuān)門(mén)的802.11 Task Group I(TGi)來(lái)制定并不斷修改、完善具備更高安全性能的網(wǎng)絡(luò )安全協(xié)議——802.11i。802.11 TGi提出了為WLAN構建健全安全網(wǎng)絡(luò )的構想RSNA(Robust Security Network Association),并將WEP列為pre-RSNA安全算法。RSNA定義了過(guò)渡時(shí)期的安全通信協(xié)議——暫時(shí)性密碼完整協(xié)議(Temporal Key Integrity Protocol,TKIP)和強制實(shí)施的計數器模式及密碼區塊鏈信息認證碼協(xié)議(Counter Mode and Cipher Block Chaining Message Authentication Code Protocol,或Counter Mode/CBC-MAC Protocol,CCMP),并采用IEEE 802.1X來(lái)提供身份認證和密鑰分配的框架結構。
TKIP
TKIP的提出,是為了兼容那些僅支持WEP的硬件,使它們在不改變原來(lái)硬件框架的同時(shí),只需要本地升級就可以支持TKIP,從而達到增強網(wǎng)絡(luò )安全性的目的。
相對于WEP來(lái)說(shuō),TKIP的MPDU增加了序列計數器TSC(TKIP Sequence Counter)和信息完整碼MIC(Message Integrity Code)的信息,TSC為48比特,由初始向量IV的第一和最后一個(gè)字節,再加上擴展初始向量(Extended IV)的4個(gè)字節組成。密鑰ID字節的Ext IV比特位應設置為1,用以標志隨后的4個(gè)字節為T(mén)KIP的擴展初始向量。需要WEP封裝加密的字段為數據、MIC以及WEP封裝中計算出的ICV值。
暫時(shí)性密碼TK(Temporal Key)和MIC密鑰都是由802.1X事先協(xié)商出來(lái)的成對密碼衍生出來(lái)的。MIC密鑰、目的地址DA、源地址SA、優(yōu)先級及媒體訪(fǎng)問(wèn)控制服務(wù)數據單元MSDU(MAC Service Data Unit)共同輸入到信息完整碼函數(Michael Function)中,計算出MIC并附在MSDU原文后,再與序列計數器TSC共同送入拆包函數(Fragment Function)中,若需要則分割成多個(gè)較小的MPDU。與此同時(shí),傳輸器地址TA、暫時(shí)性密碼TK及TSC輸入到混合函數(Key Mixing Function)中,經(jīng)過(guò)兩個(gè)階段的混合運算,為相應TSC的MPDU計算出個(gè)別封包密碼,802.11i協(xié)議規定這個(gè)密碼總共128比特,由104比特的RC4密鑰和24比特的WEP IV組成。最后,將MPDU與對應的個(gè)別封包密碼送入有線(xiàn)等效保密協(xié)議封裝函數(WEP Encapsulation)中進(jìn)行加密。由于TKIP使用對稱(chēng)加密的WEP作為加密引擎,因此解密的時(shí)候只需將這個(gè)加密封裝過(guò)程反向操作即可。
雖然TKIP的核心加密運算仍然為WEP中采用的RC4算法,但是TKIP卻提供了額外的運算單元,對初始向量、原文及密碼進(jìn)行了先期處理,因此比WEP更具有可靠的數據傳輸安全性。首先,傳輸者計算出MIC值,附在MSDU之后分割成若干個(gè)MPDU,以待加密后發(fā)送。接收者在解密并成功通過(guò)ICV校驗之后,將這若干MPDU整合成一個(gè)MSDU,并根據接收的數據計算出本地MIC值,與接收到的MIC值比較,若不符則拋棄該MSDU,同時(shí)采取相應的措施,如及時(shí)更換暫時(shí)性密鑰等,這樣便有效地防止了偽造攻擊;其次,用于計算信息完整碼的Michael函數是一個(gè)單向的雜湊函數,而并非線(xiàn)性的CRC-32函數,這樣就增加了黑客截取數據包并篡改內容的難度。同時(shí),TKIP還采取了許多措施來(lái)限制攻擊者偽造成功的幾率和通過(guò)大量數據流獲取密鑰的可能性;第三,TKIP為每個(gè)MPDU包引入了不同的TSC序列值,接收者在接收時(shí)丟棄掉TSC值順序不符的MPDU包,以此來(lái)防止重演攻擊;第四,TKIP利用混合函數將TSC與WEP密鑰捆綁起來(lái),接收者從MPDU中恢復出TSC,同樣通過(guò)混合函數計算出與發(fā)送方相同的WEP密鑰后才能正確解密,這樣就有效地破壞了黑客針對WEP密鑰的攻擊。
CCMP
在802.11i構建健全安全網(wǎng)絡(luò )的構想中,除了TKIP安全機制以外,還有一種強制實(shí)施的安全通信協(xié)議,就是計數器模式及密碼區塊鏈信息認證碼協(xié)議CCMP。任何宣稱(chēng)為RSNA的安全系統都必須強制性地支持CCMP安全機制。
CCMP安全機制完全不同于WEP,它采用高級加密標準AES(Advanced Encryption Standard)作為加密引擎。FIPS PUB 197標準中定義AES加密區塊長(cháng)度為128比特,密碼長(cháng)度則有128比特、192比特、256比特三種可選,在802.11i標準中則限定AES加密引擎的區塊和密碼長(cháng)度均為128比特。CCMP還配備了兩種運算模式,即計數器模式(Counter Mode)和密碼區塊鏈信息認證碼模式(CBC-MAC Mode),其中計數器模式用于數據流的加密/解密,而密碼區塊鏈信息認證碼模式則用于身份認證及數據完整性校驗。
CCMP的MPDU格式如圖2所示。從圖中可以看出,CCMP的處理機制將802.11標準定義的MPDU格式擴充了16個(gè)字節,其中8個(gè)字節為CCMP起始碼,8個(gè)字節為MIC。CCMP起始碼是由PN(Packet Number)、Ext IV和密鑰ID組成的,PN值是48位的數據包序列號。Ext IV比特位設置為1,用以標志CCMP將MPDU起始碼擴展了8位,而不是像WEP那樣只擴展了4位,對于CCMP來(lái)說(shuō),這一位總是設置為1的。附加在數據域后面的MIC是通過(guò)前述的CBC-MAC模式計算出來(lái)的,它和數據域一樣需要進(jìn)行加密運算。
CCMP加密用的TK仍然是由成對的密碼衍生出來(lái)的。數據包序列值PN是不斷增加的,每個(gè)MPDU可以獲得一個(gè)不同的PN值,這樣對于同樣的TK,PN永遠也不會(huì )重復。MAC起始碼部分用來(lái)構造附加認證數據AAD(Additional Authentication Data),PN、MPDU的Address 2以及優(yōu)先級則構造出CCM Nonce值,上述二者與TK、MPDU原文一起送入CCM加密模塊,計算MIC值并進(jìn)行加密運算。PN與密鑰ID共同組成CCMP起始碼,再與MAC起始碼、加密后數據和MIC共同構成圖2所示的CCMP MPDU格式。解密的封裝過(guò)程與加密封裝對稱(chēng),僅需在反向操作后比較MIC值,用以確保數據完整性即可。
由此可見(jiàn),CCMP的安全機制與WEP、TKIP截然不同,它除了能對數據進(jìn)行保護外,還可以提供對MAC起始碼的保護,加密引擎AES可靠性、安全性更高,同時(shí)對硬件的要求也更高??偟膩?lái)說(shuō),CCMP能夠提供保密、鑒別、完整性及重演攻擊的保護措施,也必須具備它,才能滿(mǎn)足健全安全網(wǎng)絡(luò )的構想。
結語(yǔ)
IEEE 802.11 TGi所制定的802.11i標準能夠提供足夠的安全保障,以防止目前所知的攻擊方式,加強WLAN的安全性能,構建健全的安全網(wǎng)絡(luò ),確保數據的保密性、完整性和身份認證都得到良好的解決?!?/p>
pid控制器相關(guān)文章:pid控制器原理
評論