當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文詳細(xì)地描述了Fluhrer, S., Mantin, I., Shamir攻擊,同時(shí)針對(duì)802.11網(wǎng)絡(luò)存在的安全問(wèn)題,提出了一些安全建議。

摘要:以Fluhrer, S., Mantin, I., Shamir, A.提出的KSA(Key Schedule Algorithm)攻擊為基礎(chǔ),提出了一種改進(jìn)的KSA攻擊方法。與Fluhrer等提出的KSA攻擊相比,新方法具有更高攻擊效率。利用這種方法,成功地實(shí)現(xiàn)了針對(duì)802.11網(wǎng)絡(luò)鏈路層安全協(xié)議——WEP的攻擊,成功地恢復(fù)出了原加密密鑰。本文詳細(xì)地描述了這種攻擊,同時(shí)針對(duì)802.11網(wǎng)絡(luò)存在的安全問(wèn)題,提出了一些安全建議。

    關(guān)鍵詞:有線等效加密 密鑰調(diào)度算法 偽隨機(jī)數(shù)發(fā)生器

隨著802.11標(biāo)準(zhǔn)的制定以及相關(guān)軟硬件技術(shù)的逐漸成熟,802.11無(wú)線局域網(wǎng)產(chǎn)品的使用愈來(lái)愈廣泛。其通信范圍廣、數(shù)據(jù)傳輸速率高的特點(diǎn)使802.11同藍(lán)牙等協(xié)議一起成為無(wú)線局域網(wǎng)組網(wǎng)的可選協(xié)議之一,廣泛應(yīng)用于辦公、會(huì)議等場(chǎng)合。這些場(chǎng)合中所使用的PC卡絕大多數(shù)提供了一種稱(chēng)為WEP(Wired Equivalent Privacy)的加密協(xié)議。

WEP便于管理,每塊802.11卡具有一個(gè)加密密鑰(key)。在實(shí)際使用中,大多數(shù)設(shè)備均使用同一個(gè)加密密鑰,包括接入點(diǎn)AP(Access Point)。802.11通過(guò)WEP來(lái)防止對(duì)局域網(wǎng)的非法訪問(wèn),為用戶提供與傳統(tǒng)有線局域網(wǎng)保密程度相當(dāng)?shù)耐ㄐ怒h(huán)境。

WEP中采用的RC4算法是一種對(duì)稱(chēng)流加密算法。由于RC4算法的加密或解密速度均非常快,又提供了相當(dāng)?shù)膹?qiáng)度,所以得到了廣泛應(yīng)用。其最重要的應(yīng)用就是SSL(Security Socket Layer)加密套接字協(xié)議層和WEP。

針對(duì)RC4算法及其弱點(diǎn),人們進(jìn)行了許多研究,其中大多數(shù)為理論研究,并不具有實(shí)際意義。直到最近,Borisov、Goldberg and Wagner指出?1?:在WEP中,由于沒(méi)有明確規(guī)定IV(Initialization Vectors)的使用方法,有些廠商簡(jiǎn)單地在每次初始化時(shí)將IV置零,然后加一。這種不當(dāng)使用導(dǎo)致密鑰重用的概率大增,可用于簡(jiǎn)單的密碼分析攻擊。另外,作者還指出,由于IV的可用空間太小,將不可避免地導(dǎo)致相同的密鑰重用問(wèn)題。

Fluhrer、Mantin and Shamir 描述了一種針對(duì)WEP采用的RC4算法的被動(dòng)密文攻擊方法?2?。作者針對(duì)RC4的狀態(tài)初始化,提出了一種KSA攻擊方法。揭示了WEP存在的嚴(yán)重漏洞。

本文在文獻(xiàn)?2?提出的KSA攻擊方法的基礎(chǔ)上,提出了一種更為高效的攻擊方法。并在實(shí)際環(huán)境中,成功地實(shí)施了針對(duì)WEP的攻擊。實(shí)驗(yàn)結(jié)果表明,與文獻(xiàn)?2?中提出的KSA攻擊相比,本文提出的方法具有效率高、所需數(shù)據(jù)量更小的優(yōu)點(diǎn)。

1 RC4算法

1.1 RC4概述

RC4算法屬于二進(jìn)制異或同步流密碼算法,其密鑰長(zhǎng)度可變,在WEP中,密鑰長(zhǎng)度可選擇128bit或64bit。

RC4算法由偽隨機(jī)數(shù)產(chǎn)生算法PRGA(Pseudo Random Generation Algorithm)和密鑰調(diào)度算法KSA?Key Schedule Algorithm?兩部分構(gòu)成。其中PRGA為RC4算法的核心,用于產(chǎn)生與明文相異或的偽隨機(jī)數(shù)序列;KSA算法的功能是將密鑰映射為偽隨機(jī)數(shù)發(fā)生器的初始化狀態(tài),完成RC4算法的初始化。

RC4算法實(shí)際上是一類(lèi)以加密塊大小為參數(shù)的算法。這里的參數(shù)n為RC4算法的字長(zhǎng)。在WEP中,n=8。

RC4算法的內(nèi)部狀態(tài)包括2n個(gè)字的狀態(tài)表和兩個(gè)大小為一個(gè)字的計(jì)數(shù)器。狀態(tài)表,也稱(chēng)為狀態(tài)盒(S-box,以下用S表示),用來(lái)保存2n個(gè)值的轉(zhuǎn)置狀態(tài)。兩個(gè)計(jì)數(shù)器分別用i和j表示。

KSA算法和PRGA算法可表示如下:

KSA: PRGA:

Initialization: Initialization:

For i=0 to 2n-1 i=0,j=0

S[i]=i Generation Loop:

j=0   i=i+1

Scrambling:   j=j+S[i]

For i=0 to 2n-1 Swap(S[i],S[j])

j=j+S[i]+K[i mod l]    Output z=S[S[i]+S[j]]

Swap(S[i],S[j])

其中,l為密鑰的長(zhǎng)度。

1.2 RC4算法安全性能分析

仔細(xì)研究RC4的算法流程,不難發(fā)現(xiàn):

狀態(tài)盒S從一個(gè)統(tǒng)一的2n個(gè)字的轉(zhuǎn)置開(kāi)始,對(duì)其進(jìn)行的唯一操作是交換。S始終保存2n個(gè)字的某個(gè)轉(zhuǎn)置狀態(tài),而且轉(zhuǎn)置隨著時(shí)間而更新。這也是RC4算法的強(qiáng)度所在。算法的內(nèi)部狀態(tài)存儲(chǔ)在M=n2n+2n比特中,由于S為一個(gè)轉(zhuǎn)置,此狀態(tài)大約保存了log2(2n!)+2n≈1700bit的信息。

狀態(tài)盒的初始化狀態(tài)僅僅依賴于加密密鑰K,因此,若已知加密密鑰就可完全破解RC4。加密密鑰完全且唯一確定了偽隨機(jī)數(shù)序列,相同的密鑰總是產(chǎn)生相同的序列。另外,RC4算法本身并不提供數(shù)據(jù)完整性校驗(yàn)功能,此功能的實(shí)現(xiàn)必須由其他方法實(shí)現(xiàn)(例如WEP中的數(shù)據(jù)完整性校驗(yàn)向量,即ICV)。

下面考慮一些特殊的攻擊模型,這些模型均與要討論的RC4的安全問(wèn)題密切相關(guān)。

RC4算法屬于同步流密碼算法中的一種,由于其偽隨機(jī)數(shù)發(fā)生器PRNG(Pseudo Random Number Gernerator)的輸出完全由加密密鑰確定,所以對(duì)于一個(gè)設(shè)計(jì)良好的流密碼算法必須滿足兩個(gè)條件:輸出的每個(gè)比特應(yīng)該依賴于所有加密密鑰的所有比特;而且,任意一個(gè)比特或者某些比特同加密密鑰之間的關(guān)系應(yīng)該極其復(fù)雜。

上述第一個(gè)條件意味著輸出的每個(gè)比特依賴于加密密鑰所有比特的值。密鑰中任意比特值的改變均有1/2的幾率影響到輸出的每一個(gè)比特。如果滿足此條件,那么,破解此加密需要嘗試所有可能的密鑰值,輸出值同加密密鑰之間幾乎不存在任何聯(lián)系。

如果上面的條件得不到滿足,那么就可被利用來(lái)對(duì)其進(jìn)行攻擊。舉例來(lái)說(shuō),假設(shè)輸出的某8?jìng)€(gè)比特僅僅依賴于加密密鑰的某8?jìng)€(gè)比特,那么就可以簡(jiǎn)單地進(jìn)行對(duì)此8比特密鑰的所有可能值進(jìn)行嘗試,并與實(shí)際輸出相比較獲取此8比特密鑰的值,這樣就大大降低了窮舉攻擊所需的計(jì)算量。

因此,如果輸出以比較高的概率由密鑰的某些比特所確定,那么此信息就可被利用來(lái)對(duì)此流密碼進(jìn)行攻擊。

第二個(gè)條件意味著即使已知兩個(gè)加密密鑰之間的聯(lián)系,也無(wú)法得出PRNG輸出之間的聯(lián)系。此信息也可用來(lái)降低窮舉攻擊的搜索空間,從而導(dǎo)致加密強(qiáng)度的降低。

RC4算法屬于二進(jìn)制異或流密碼,相同的密鑰總是產(chǎn)生相同的PRNG輸出。為解決密鑰重用的問(wèn)題,WEP中引入了初始化向量IV(Initialization Vector)。初始化向量為一隨機(jī)數(shù),每次加密時(shí)隨機(jī)產(chǎn)生。初始化向量以某種形式與原密鑰相組合,作為此次加密的加密密鑰。由于IV并不屬于密鑰的一部分,所以無(wú)須保密,多以明文傳輸。雖然初始化向量的使用很好地解決了密鑰重用的問(wèn)題,然而,Fluhrer? S等人在文獻(xiàn)?2?中指出:初始化向量的使用將導(dǎo)致嚴(yán)重的安全隱患。

下面詳細(xì)地討論本文所提出的KSA攻擊方法。

2 KSA攻擊

本文著重討論WEP中所采用的RC4算法,即前附加初始化向量IV的RC4算法。

2.1 KSA

考慮KSA,注意到唯一影響狀態(tài)表的是交換操作。因此,狀態(tài)表的每個(gè)元素至少交換一次(盡管有可能同它自己交換)。假設(shè)j是一個(gè)均勻分布的隨機(jī)數(shù),那么,考慮狀態(tài)表中某一個(gè)特殊元素,在所有初始化期間j都不指向此元素的概率為:

P=(255/256)∧255≈37%

(指數(shù)為255是因?yàn)楫?dāng)index2和counter相等時(shí)可以忽略)

這意味著有37%的概率某一特定元素在初始化期間僅交換一次。

由此可看出:

給定一密鑰長(zhǎng)度K(bytes),如果E<K,那么元素E有37%的概率僅在i指向它時(shí)被交換。

那么由RC4的KSA 算法可看出僅K[0]....K[E-1],和K[E]影響它。這只是近似估算,因?yàn)椋椋睿洌澹膊豢赡苁蔷鶆蚍植肌?/P>

為利用上述結(jié)果,需要確定狀態(tài)表最可能的值。因?yàn)槊總€(gè)元素至少交換一次(當(dāng)counter指向它時(shí)),所以有必要對(duì)交換可能帶來(lái)的影響加以考慮。交換是令人討厭的非線性操作,難于分析。然而當(dāng)處理狀態(tài)表前幾個(gè)元素時(shí),某個(gè)具體元素有很高的概率沒(méi)有參與它前面的幾次交換,因此還保留初始值(S[X]=X)。

相似地,僅處理狀態(tài)表中前幾個(gè)元素時(shí),即i比較小時(shí),S[j]有很高的概率等于j。因此,可以得到:

狀態(tài)表中元素S[E](E比較小時(shí))最可能的值為:

注意,本文中兩個(gè)元素操作均為模256操作。

基于以上分析,可以計(jì)算出狀態(tài)表中各個(gè)元素滿足B的概率。為統(tǒng)計(jì)狀態(tài)表中元素滿足上式的概率,采用8比特RC4算法進(jìn)行實(shí)驗(yàn)。下面為100000次實(shí)驗(yàn)中S[E]中前48?jìng)€(gè)元素滿足上式的概率:

Probability ?%?

0~7 37.0 36.8 36.2 35.8 34.9 34.0 33.0 32.2

8~15 30.9 29.8 28.5 27.5 26.0 24.5 22.9 21.6

16~23 20.3 18.9 17.3 16.1 14.7 13.5 12.4 11.2

24~31 10.1 9.0 8.2 7.4 6.4 5.7 5.1 4.4

32~39 3.9 3.5 3.0 2.6 2.3 2.0 1.7 1.4

40~47 1.3 1.2 1.0 0.9 0.8 0.7 0.6 0.6

結(jié)果表明,經(jīng)過(guò)KSA后,狀態(tài)表中前面的一些元素實(shí)際值與用B所預(yù)測(cè)出的值強(qiáng)相關(guān)。

2.2 弱密鑰

首先定義it,jt分別為KSA算法經(jīng)過(guò)t步后相應(yīng)的兩個(gè)計(jì)數(shù)器的值,St為KSA經(jīng)t步后狀態(tài)盒的狀態(tài)。從其流程可以看出,PRNG首字節(jié)輸出僅僅依賴于狀態(tài)盒S中的三個(gè)值:S[1]、S[S[1]]和S[S[1]+S[S[1]]]。如果此三個(gè)值為已知,那么就可以完全確定PRNG的首字節(jié)輸出。

KSA經(jīng)過(guò)i步操作后(i>1),設(shè)Si[1]=X,S[X]=Y,假設(shè)j為均勻分布的隨機(jī)數(shù),那么S[1],S[X],S[X+Y]均不參與剩余交換的概率約為e-3≈0.05,此時(shí)RC4的首字節(jié)輸出為S[X+Y]。

假設(shè)IV的長(zhǎng)度為I個(gè)字節(jié),IV附加在密鑰Key前面組成加密密鑰K,即K=IV|Key,且我們已知K中前B個(gè)字節(jié)的值(初始化時(shí)B=0)。如果KSA經(jīng)過(guò)I+B-1次迭代后滿足:

SI+B-1[1]<I

SI+B-1[1]+SI+B-1 [SI+B-1[1]]=I+B

考慮第I+B次迭代:

iI+B=I+B

jI+B=jI+B-1+S[I+B]+K[(I+B) mod L]

交換SI+B-1[iI+B],SI+B-1 [jI+B]:

SI+B [iI+B]=SI+B-1 [jI+B] ,

SI+B [jI+B]=SI+B-1 [iI+B]

在滿足上述條件的情況下,S[1],S[S[1]]和S[S[1]+S[S[1]]]這三個(gè)元素以很高的概率(大于5%)均不參與KSA剩余的交換操作,也即首字節(jié)輸出以很高的概率滿足:

Out=SI+B-1[jI+B]=SI+B-1[jI+B-1+K[B]+SI+B-1[I+B]]

這種情況下,通過(guò)重建KSA,能夠成功地從首字節(jié)輸出中獲取加密密鑰中某個(gè)特定字節(jié)K[I+B]的信息:

K[B]=S[Out]-jI+B-1-SI+B-1[I+B]]

S[Out]表示元素Out在狀態(tài)表中的位置。

從前面分析可以看出,在滿足SI[1]<I+B?且SI[1]+SI[SI[1]]=I+B條件的情況下,可以準(zhǔn)確重建K[B]的概率大于5%,遠(yuǎn)遠(yuǎn)大于1/256。這樣通過(guò)收集足夠數(shù)量的滿足上述條件的數(shù)據(jù)包,就可以成功地重建密鑰K[B]。同理,在成功重建K[B]的基礎(chǔ)上,就可以用類(lèi)似的方法重建所有密鑰。

具體算法如下:

RecoverWepKey(CurrentKeyGuess,KeyByte)

Counts[0...255]=0

For each packet->P

If Resolved﹖(P.IV)

Counts[SimulateResolved(P,CurrentKeyGuess)]+=1

For each SelectMaximalIndexesWithBias(Counts)->ByteGuess

CurrentKeyGuess[KeyByte]=ByteGuess

If Equal﹖(KeyByte,KeyLength)

If CheckChecksums(CurrentKeyGuess)

Return CurrentKeyGuess

Else

Key=RecoverWEPKey(CurrentKeyGuess,KeyByte+1)

If notEqual﹖(Key,Failure)

Return Key

Return Failure

2.3 算法改進(jìn)

可以看出,以上的攻擊方法中,所有關(guān)于K[I+B]的預(yù)測(cè)均是基于其前面所有密鑰(K[0],...,K[I+B-1])已知的基礎(chǔ)上。換言之,前面的預(yù)測(cè)錯(cuò)誤將直接導(dǎo)致K[I+B]的錯(cuò)誤預(yù)測(cè)。那么能否從K[I+B]中推測(cè)出K[0],...,K[I+B-1]的信息?

考慮KSA,如果經(jīng)過(guò)I次迭代后,滿足:

I<SI[1]+SI[SI[1]]=I+B≤L

SI[1]≤I

則SI[1]和SI[SI[1]]以很大的概率((254/256)L-I≈1)不參與第I步與第L步之間的迭代。同時(shí),j以很大的概率不指向SI[I],...,SI[I+B]這幾個(gè)元素。

即:

SI[1]=SI+B-1[1]   iL-1=L-1

jI+B-1=jI+SI[I]+...+SI[I+B-1]+K[I]+...+K[I+B-1]

考慮第L步:

iI+B=I+B   jI+B=jI+B-1+SI[I+B]+K[I+B]

交換S[i],S[j],則SI+B[I+B]=SI+B-1[jI+B]。

如果SI+B-1[jI+B],SI+B-1[1]和SI+B-1[SI+B-1[1]]不參與剩余的交換操作,那么輸出為:

Out=SI+B-1[jI+B]

而由前面的分析可以看出,SI+B-1[jI+B]以很高的概率(約為1)沒(méi)有參與前面的交換操作,也即SI+B-1[jI+B]=jI+B。由此可知

Out=jI+SI[I]+...+SI[I+B-1]+K[I]+...+K[I+B-1]+SI[I+B]+K[I+B]

利用上述關(guān)系可以成功地推出不同K字節(jié)之間的關(guān)系,從而加速攻擊。

另外,由于密鑰管理時(shí)密鑰需要手工輸入,所以絕大多數(shù)情況下,密鑰只是ASIIC字符。這樣大大減小了密鑰的搜索空間,提高了攻擊效率。

3 實(shí)驗(yàn)結(jié)果與結(jié)論

為對(duì)上述算法進(jìn)行驗(yàn)證,進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)中所采用的硬件為朗訊的ORiNOCO無(wú)線網(wǎng)卡,操作系統(tǒng)為Redhat7.1。實(shí)驗(yàn)結(jié)果表明,本文所提出的算法平均在收集100萬(wàn)到200萬(wàn)加密數(shù)據(jù)包的情況下,成功地恢復(fù)出了原加密密鑰。與Fluhrer?S.、Mantin?I.、 Shamir? A.所提出的KSA攻擊需要400萬(wàn)到600萬(wàn)數(shù)據(jù)包相比,攻擊效率有了很大提高。

基于以上分析,不難看出:現(xiàn)有WEP加密中存在重大的安全漏洞,這種情況并不因加密密鑰長(zhǎng)度的增加而得到改善,所以在WEP2中同樣存在。為此,建議現(xiàn)有的802.11用戶:

.假設(shè)802.11鏈路層并不提供安全措施;

.為保障網(wǎng)絡(luò)通信的安全,使用IPSEC或者SSH等高層加密手段;

.把所有通過(guò)802.11接入的用戶置于防火墻之外。

.經(jīng)常更換密鑰,同時(shí)針對(duì)密鑰應(yīng)盡量采用某種HASH算法,避免采用全為ASIIC字符的加密密鑰。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉