基于無線網(wǎng)絡(luò)的動態(tài)加密方法

隨著無線網(wǎng)絡(luò)應(yīng)用的增長,移動計(jì)算的安全性問題日益突出,已經(jīng)成為現(xiàn)代網(wǎng)絡(luò)安全研究中一個極其重要的領(lǐng)域。近年來,加密機(jī)制在無線網(wǎng)絡(luò)環(huán)境下已經(jīng)取得了不少進(jìn)展,包括WEP(802. 11)和TKIP(802. lx)協(xié)議,但同時也暴露出不少安全隱患,為此,我們設(shè)計(jì)了一種全新的基于無線網(wǎng)絡(luò)的動態(tài)加密方法,力圖克服上述協(xié)議的一些缺陷。

一、無線網(wǎng)絡(luò)現(xiàn)有安全機(jī)制

802. 11標(biāo)準(zhǔn)規(guī)定了兩種認(rèn)證方式:開放系統(tǒng)認(rèn)證和共享密鑰認(rèn)證.前者是默認(rèn)的認(rèn)證方式;任何移動站點(diǎn)都可以加入到基本服務(wù)集BSS,并可以和接入點(diǎn)AP通信,能得到所有未加密的數(shù)據(jù)文件??梢?,這種方法根本沒有提供驗(yàn)證,當(dāng)然就談不上安全性,后者是一種請求應(yīng)答認(rèn)證機(jī)制:AP在收到工作站點(diǎn)STA的請求后接收消息,并發(fā)送詢問消息;STA對詢問消息使用共享密鑰進(jìn)行加密并送回AP。AP接收后校驗(yàn)消息的完整性,若成功,則允許STA接入WLAN。同時AP存有合法客戶端的MAC地址以供過濾。

目前無線網(wǎng)絡(luò)中數(shù)據(jù)保密性、完整性主要是以WEP協(xié)議以及改進(jìn)后的TKIP協(xié)議來保障的。WEP協(xié)議以RC4對稱加密算法為基礎(chǔ),其數(shù)據(jù)文件加密過程如圖1所示。

基于無線網(wǎng)絡(luò)的動態(tài)加密方法

1、發(fā)送端隨機(jī)選擇一個24位初始向量IV(initialization vector,簡寫為v),把它連接在40位共享密鑰(secret key,簡寫為k)的前面,并作為結(jié)果種子(seed)輸入到偽隨機(jī)數(shù)發(fā)生器PRNG(pseudo ranclom num'oer generator)產(chǎn)生密鑰偽隨機(jī)序列(keysequence)(簡寫為RC4(v,k)。

2、發(fā)送端的原文(plaintext,簡寫為p)通過完整性檢驗(yàn)算法CRC-32(簡寫為c(p))生成完整性檢驗(yàn)向量(integrity check vector,ICV),并將ICV消息放在原文后面,生成了P。

3、發(fā)送端將P和偽隨機(jī)序列進(jìn)行異或運(yùn)算,生成了加密的密文。

4、發(fā)送端將IV放在密文數(shù)據(jù)的前面,產(chǎn)生了實(shí)際傳送的數(shù)據(jù),其數(shù)據(jù)表達(dá)式可以表示成C=P+RC4(v,k),其中P=<p,c(p)>。由于RC4是對稱加密算法,所以其解密過程比較簡單,只是增加了一個完整性檢查以防止數(shù)據(jù)被修改。

而TKIP協(xié)議是對WEP協(xié)議的改進(jìn),仍然采用RC4對稱加密算法,只是增加了IV長度,改進(jìn)了完整性檢查機(jī)制,引入了當(dāng)IV每次遞增達(dá)到最大值后強(qiáng)制換密鑰的機(jī)制.但是對WEP協(xié)議的加密算法、密鑰管理和整個系統(tǒng)的流程沒有進(jìn)行改變,對密鑰更新的機(jī)制也是靜態(tài)的被動的變化,歸根結(jié)底只是WEP協(xié)議往前邁出的一小步,仍然屬于靜態(tài)加密的范疇。

二、現(xiàn)有安全機(jī)制的缺陷

不幸的是,WEP和TKIP協(xié)議中使用的加密機(jī)制事實(shí)上既沒有保障數(shù)據(jù)的安全性(保密性和完整性),也沒有防止非授權(quán)訪問,各種不完善的安全要素以一種不安全的方式集合在一起,因此導(dǎo)致了諸多的安全漏洞。歸納起來,主要表現(xiàn)在以下幾點(diǎn):

1、數(shù)據(jù)保密性

RC4加密算法是一種序列密碼加密算法。發(fā)送者用偽隨機(jī)函數(shù)產(chǎn)生的密鑰序列和明文異或產(chǎn)生密文,然后前端附上沒有加密的IV向量;接收者用相同的密鑰序列與密文異或以恢復(fù)明文,這種加密方式要求不能用相同的密鑰序列加密兩個不同的消息,否則攻擊者將可以得到兩條明文的異或值,如果攻擊者知道一條明文的某些部分,則另一條明文的對應(yīng)部分也可以被恢復(fù)出來(一般情況下,得到兩條明文的異或值足夠恢復(fù)出其明文)。然后密鑰序列由IV和初始密鑰決定。由于初始密鑰靜態(tài)不變,IV向量一般是遞增變化,在WEP協(xié)議中24位的IV空間也很容易在繁忙的接入點(diǎn)被輪換一次。更糟糕的是,IV以明文傳送的方式,攻擊者可以很明顯地看到哪一些IV是被重用的,另外,RC4加密算法中有大量的弱密鑰缺陷和一種攻擊方式,則無異于雪上加霜。

2、數(shù)據(jù)完整性

在WEP中,用于完整性檢查的CRC-32加密算法也與RC4加密算法一樣具有線性特征,這主要是對異或操作而言的。攻擊者只要相應(yīng)地調(diào)整校驗(yàn)和,就可以使被篡改的消息成為合法的消息。而且,CRC-32校驗(yàn)和不是加密函數(shù),只是明文的完整性簽名,并不對其加密.攻擊者在修改消息的基礎(chǔ)上,用CRC-32計(jì)算出相應(yīng)的校驗(yàn)和,結(jié)合IV一起發(fā)給接收者,則可以完成偽造報(bào)文的攻擊。

3、密鑰管理

802. 11標(biāo)準(zhǔn)缺少一種有效的密鑰管理和分發(fā)機(jī)制。一般情況下,WEP協(xié)議的密鑰被靜態(tài)地分配給客戶機(jī),密鑰存儲在客戶機(jī)的磁盤或無線適配器的內(nèi)存中。如果客戶機(jī)丟失或被攻擊,非正常用戶則可以非常容易地?fù)碛性L問網(wǎng)絡(luò)的權(quán)限,而管理員并不能較快地檢測到它對無線網(wǎng)絡(luò)安全的破壞。在發(fā)現(xiàn)某個用戶丟失密鑰后,管理員還必須對丟失相同密鑰的所有用戶實(shí)施新密鑰的重新分發(fā),這對網(wǎng)絡(luò)部署將形成較大的沖擊。

4、訪問控制

攻擊者在捕獲第二個認(rèn)證幀(認(rèn)證質(zhì)詢)和第三個認(rèn)證幀(加密質(zhì)詢)后,二者異或就可以得到密鑰.接下來攻擊者可以向認(rèn)證服務(wù)者發(fā)送認(rèn)證請求,并用得到的密鑰序列加密認(rèn)證質(zhì)詢從
而成功認(rèn)證.另外,802. 11缺少雙向認(rèn)證的機(jī)制,而且MAC過濾的機(jī)制也很容易遭受MAC偽造攻擊。

三、基于無線網(wǎng)絡(luò)的動態(tài)加密方法

本文提出的動態(tài)加密是基于對稱加密和非對稱加密的結(jié)合,這兩種經(jīng)典的加密方式被證明能很有效地保證網(wǎng)絡(luò)傳輸?shù)陌踩?,動態(tài)加密方法著眼于任何無線網(wǎng)絡(luò)架構(gòu)中通信雙方本身,認(rèn)為每個通信方都應(yīng)承擔(dān)起本次會話中網(wǎng)絡(luò)信息傳輸?shù)陌踩?zé)任。

會話建立階段,身份驗(yàn)證的安全需要非對稱加密以及對PKI(公鑰基礎(chǔ)設(shè)施)的改進(jìn)來防止非授權(quán)訪問,同時可以完成初始密鑰的動態(tài)部署和管理工作;會話建立后,大量的數(shù)據(jù)安全傳輸必須通過對稱加密方式,但該系統(tǒng)通過一種動態(tài)加密的模式,摒棄了現(xiàn)有機(jī)制下靜態(tài)加密的若干缺陷,從而使通信雙方的每次“通信回合”都有安全保證,通信回合,指的是通信雙方在建立起通信會話之后,每兩個包在雙方網(wǎng)絡(luò)間來回的過程,對于一個通信方來說,就是發(fā)送一個包直到接收一個包的過程.在一個通信回合中,雙方將使用相同的對稱加密密鑰,是每個通信方經(jīng)過共同了解的信息計(jì)算而得到的;在通信回合之間,所使用的密鑰將實(shí)時改變,雖然與上次回合的密鑰有一定聯(lián)系,但外界無法推算出來。

1、基于角色的改進(jìn)證書認(rèn)證

傳統(tǒng)的RSA非對稱加密算法與X.509數(shù)字證書的結(jié)合,以及PKI的逐漸廣泛應(yīng)用,被證明在有線網(wǎng)絡(luò)拓?fù)渲惺且环N很安全有效的身份認(rèn)證方式。然而在無線網(wǎng)絡(luò)的環(huán)境下,這些以較大計(jì)算量為安全保障的算法卻遇到了CPU資源開銷過大的難題。還有X.509數(shù)字本身只是含有了擁有者主題信息以及其公鑰的編碼;其原本的目的是把一個用戶的身份和一個公鑰進(jìn)行綁定,但在實(shí)際應(yīng)用中該主題信息往往不能顯示出該用戶在某個應(yīng)用體系中所具有的權(quán)限等級,在證書申請和頒發(fā)的時候身份很容易被偽造或被強(qiáng)占。

本加密方法定義了一種以X.509標(biāo)準(zhǔn)為基礎(chǔ)的簡化證書模型,去掉一些不常用的主題項(xiàng)和繁雜的擴(kuò)展項(xiàng),添加了角色訪問控制的信息,同時在非對稱加密算法上采用了ECC(橢圓曲線加密算法),其目的在于力圖在無線環(huán)境中,更好地、更高性能地保證網(wǎng)絡(luò)傳輸?shù)陌踩?,相對于RSA算法,ECC加密算法具有更好的安全性能、更快的加密和簽名速度、更小的密鑰尺寸和更小的帶寬要求.據(jù)研究,基于160位密鑰的ECC算法和基于1024位密鑰的RSA相比,具有相同的安全強(qiáng)度,但具有更快的加密和解密速度,更適合無線網(wǎng)絡(luò)。

證書是身份認(rèn)證的基礎(chǔ),通信雙方可以通過基于角色證書的PKI體系取得自己的證書、私鑰和對方證書(圖2、3)。再通過簽名驗(yàn)證的方式來請求與對方開始會。對方根據(jù)PKI體系來驗(yàn)證并接受或拒絕會話請求,如果會話建立,則通信雙方必須通過非對稱加密的方式來共同協(xié)商出會話中對稱加密的初始密鑰,這是很重要的,關(guān)系到會話中數(shù)據(jù)通信的安全基礎(chǔ)。

基于無線網(wǎng)絡(luò)的動態(tài)加密方法

2、基于實(shí)時密鑰和混雜密文的安全會話

經(jīng)過了上述的改進(jìn)證書認(rèn)證之后,通信雙方已經(jīng)協(xié)商出初始密鑰,會話已經(jīng)建立,在會話通信階段,大量的數(shù)據(jù)包將在兩個客戶機(jī)間傳輸。鑒于計(jì)算能力和網(wǎng)絡(luò)傳輸能力的考慮,加密方式必須為對稱加密。但DES、3DES加密算法以及WEP和TKIP協(xié)議中的RC4加密算法都被證明不能保證高性能的保密性:DES加密算法和RC加密4算法不具有很好的保密性,而3DES加密算法又沒有很好的時間性能。

本方法采用了改進(jìn)的AES加密算法,在最近兩年中已經(jīng)被證明具有很好的保密性,不僅克服了RC4加密算法線性特性的缺陷,而且相對于DES、3DES加密算法來說加密性能和加密效率更好。然而,隨著對AES加密算法越來越深入的了解,針對AES加密算法的攻擊將會慢慢興起,所以本方法對AES加密算法作了一些改進(jìn)。

(1)對密鑰和IV的雙方實(shí)時刷新

動態(tài)加密方法和靜態(tài)加密方法最大的區(qū)別就在于:在會話通信階段已經(jīng)建立起來之后,對大量數(shù)據(jù)對稱加密的同時,對加密的密鑰和IV進(jìn)行了基于每次通信回合的更新。這里所談的密鑰更新和IV更新不是某種中心機(jī)構(gòu)對雙方實(shí)時發(fā)放新的密鑰和IV,而是通信雙方以認(rèn)證階段協(xié)商出來的初始密鑰和初始IV作為基礎(chǔ),分別在各自的客戶機(jī)上在每次包傳遞之后對密鑰和IV做了相應(yīng)的更新.這個更新機(jī)制不僅依賴于上次的密鑰和IV,而且依賴于對方剛剛傳遞過來的密文解密出來后的明文以及對方的MAC地址。

一個通信方的加密中更新流程如下:

基于無線網(wǎng)絡(luò)的動態(tài)加密方法

采用這種密鑰和IV更新的策略,目的是力圖達(dá)到一種“每包驗(yàn)證”的機(jī)制,從而保證了通信回合之間的安全.通信中雙方都根據(jù)本次得到的明文、本次的密鑰和對方的MAC地址而使用相同的計(jì)算方法得出下次的密鑰,不僅僅保證了每次密鑰的更新,而且還可以因此推斷出是否在通信進(jìn)行中被攻擊者偽造包。

由于密鑰更新的函數(shù)采用的是單向計(jì)算的方式,所以攻擊者在得到一些“有用信息”后也很難推算密鑰.即使某次通信流程中,密鑰發(fā)生了泄漏,那么攻擊者也只能對本次通信回合的安全造成影響,而且不一定能得到正確的明文(密文混雜的模式將會阻止正確解密的發(fā)生).攻擊者獲得了本次回合的密鑰,但是下次加密的密鑰是需要本次正確明文、本次正確IV的共同計(jì)算,所以攻擊者對以后的傳輸安全也幾乎不會造成什么影響.同理,IV也將進(jìn)行相應(yīng)的變化,而不能采用WEP協(xié)議的遞增變化方式。

計(jì)算開銷已經(jīng)被相應(yīng)地考慮進(jìn)去。如上更新流程中所示,在更新策略中,通信雙方將本次加密處理后的包發(fā)出去以后,再進(jìn)行相應(yīng)的密鑰和IV更新的計(jì)算,而不是在加密的過程中同時進(jìn)行,這樣可以保證加密開銷的時間和包傳輸?shù)臅r間不受影響,所以網(wǎng)絡(luò)延遲不會因此而增加,只是客戶機(jī)自身增加一些計(jì)算。但是,由于AES加密算法本身加密比較快,本方法將具有比傳統(tǒng)加密方法更高的性能。

(2)對密文進(jìn)行混雜處理

在使用密鑰更新策略的對稱加密處理過程之后,一些隨機(jī)數(shù)字節(jié)將會被插入到密文的一些隨機(jī)位置上去,這種混雜處理的模式被使用在動態(tài)加密方法中,是為了防止密文和密鑰同時落入攻擊者手中而被正確解密的情況出現(xiàn)。

在對密文的混雜處理中,被插入的隨機(jī)數(shù)字節(jié)是完全隨機(jī)的,可以不關(guān)心它們的數(shù)值;被插入的隨機(jī)位置則是由本次密鑰、本次IV和數(shù)據(jù)長度本身的計(jì)算而得來的.對方在接收到包之后可以計(jì)算出被插入的隨機(jī)位置,然后對這些位置上的隨機(jī)數(shù)置之不理,還原到原始密文再進(jìn)行解密,具體的處理流程如下:

基于無線網(wǎng)絡(luò)的動態(tài)加密方法

對密文而不對明文進(jìn)行混雜處理,是因?yàn)槊魑挠袝r候會是有著某種實(shí)際意義的數(shù)據(jù)或者是數(shù)據(jù)結(jié)構(gòu)經(jīng)過序列化之后的二進(jìn)制流,而密文則是加密后的無任何意義的數(shù)據(jù)(圖4)。所以攻擊者不容易通過猜測而得出混雜位置的所在,從而破解正確的明文。

基于無線網(wǎng)絡(luò)的動態(tài)加密方法

該策略的目的在于采用一種簡單而有效的方式,試圖達(dá)到一種本次通信“包內(nèi)驗(yàn)證”的機(jī)制,保證每次通信回合內(nèi)的自身安全.通信雙方都根據(jù)本次的密鑰、IV以及密文的長度來計(jì)算出一些被填入隨機(jī)數(shù)的位置,使通信內(nèi)部通過包的傳輸而建立起一種再次驗(yàn)證的機(jī)制,同時使得到本次密鑰的攻擊者無機(jī)可乘。

插入的數(shù)據(jù)是隨機(jī)的,而插入的位置也是雙方由共同知道的信息而單向計(jì)算出來的,所以攻擊者很難把這些隨機(jī)插入的數(shù)據(jù)找出并正確地得出明文.計(jì)算開銷的問題也被考慮在內(nèi),隨機(jī)位置的計(jì)算是簡單而不容易逆推的,所以用一點(diǎn)時間開銷來保證更大的安全也是非常值得的。

隨著移動計(jì)算需求的增長和無線局域網(wǎng)的廣泛部署,更可靠的安全機(jī)制和更高的計(jì)算、傳輸速率將成為動態(tài)加密技術(shù)演進(jìn)過程的核心內(nèi)容。

小知識之TKIP

在IEEE?802.11i規(guī)范中,TKIP: Temporal Key Integrity Protocol(臨時密鑰完整性協(xié)議)負(fù)責(zé)處理無線安全問題的加密部分。TKIP在設(shè)計(jì)時考慮了當(dāng)時非??量痰南拗埔蛩兀罕仨氃诂F(xiàn)有硬件上運(yùn)行,因此不能使用計(jì)算先進(jìn)的加密算法。