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