西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → WEP抓包WEP加密的破解原理的深入分析

WEP抓包WEP加密的破解原理的深入分析

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:趙小布的博客時間:2011/7/14 15:01:45字體大小:A-A+

作者:趙小布點擊:1045次評論:1次標簽: 抓包

  • 類型:網(wǎng)絡(luò)共享大。434KB語言:英文 評分:5.0
  • 標簽:
立即下載

知其然,知其所以然。呵呵,有興趣的人可以看下去,沒興趣的人跳過吧。前幾天發(fā)過一個帖子,粗略講了下WEP加密的破解原理?赡芎芏嗳丝吹脑评镬F里。最近幾天因為忙著要準備考研,在復(fù)習線性代數(shù)和離散數(shù)學(xué),學(xué)計算機的人都知道,這兩門課是計算機的專業(yè)基礎(chǔ)課,而很多密碼學(xué)的知識都是建立的數(shù)學(xué)的基礎(chǔ)上的,比如非常著名的非對稱加密算法RSA就是建立在大素數(shù)分解難題上的。這個不是我們今天要討論的主題,呵呵,我主要講的WEP加密的原理和為什么我們抓包就能破解,盡量講的通俗易懂點。
   WEP是鏈路層的安全機制(關(guān)于7層模型,有疑問的,大家自己去百度google)。他的加密過程是這樣的。
   (1) 客戶端計算原始數(shù)據(jù)包中明文數(shù)據(jù)(我們記做P)的32位CRC循環(huán)冗余校驗碼,實際上是計算整數(shù)檢查向量(我們記做ICV),(又一堆專業(yè)術(shù)語,大家不理解沒關(guān)系),這兩個,也就是P和ICV構(gòu)成我們要傳輸?shù)臄?shù)據(jù)(P+ICV),這才是需要加密的真正的明文。

   (2) 我們用40位的密鑰和24位的初始向量(IV)構(gòu)成種子密鑰(假設(shè)我們采用64位加密)。輸入到采用RC4算法的偽隨機數(shù)發(fā)生器,生成與我們要傳輸?shù)拿魑模≒+ICV)等長的隨機數(shù),我喜歡把這個稱作為真正的密鑰(Real Key)。我們輸入的種子不同,生成的隨機數(shù)也是不同的。這個類似于現(xiàn)在很多軟件都靠MD5散列來檢驗有沒有被人篡改過。又扯遠了;氐秸}。

   (3) 將我們得到的隨機數(shù)和傳輸明文數(shù)據(jù)(P+ICV)按位進行異或操作(所謂異或操作,就是比較相同位上的數(shù)字,如果相同值為0,不同則為1),得到密文(我們記做C),然后將前面的24位初始向量和密文(C)組合在一起,得到要傳輸?shù)拿芪模↖V+C)。

    解密的過程只是個簡單的取反。就是AP收到數(shù)據(jù)后,將得到的(IV+C),分解,提取IV,然后將自己所持有的密鑰Key組合在一起,輸入到采用RC4算法的偽隨機數(shù)發(fā)生器,得到解密的隨機數(shù),實際上和加密的隨機數(shù)是一樣的。然后將解密的隨機數(shù)和密文(C)做異或操作,就得到了明文(P+ICV);


    這么說也許大家看不懂,我覺得例子吧。
    假設(shè)我們要傳輸?shù)拿魑模≒+ICV)= 0001101101
    與之等長的隨機數(shù)列(Real Key)= 0111011010
    將這兩個進行異或操作 得到密文C=0110110111
解密過程就是將密文C和隨機數(shù)列(Real Key)進行異或操作。得到的就是明文(P+ICV);

    接下來就是最最關(guān)鍵的,就是為什么我們能夠破解WEP。其實,產(chǎn)生Real Key的RC4算法本身就是有問題的,具體我就不講了,涉及很復(fù)雜的數(shù)學(xué)知識,有興趣的自己查資料。我這里要講的就是我們現(xiàn)在所使用的,就是抓包很多包來破解。
   
    我們來討論下24位的初始向量,因為這個在密文(IV+C)中是明文傳輸?shù),我們可以很方便的得到?的24次方是16777216。我們現(xiàn)在使用的網(wǎng)絡(luò)一般是54Mb/s,我們假設(shè)傳輸分組的大小為2000字節(jié),實際比這小,我們計算下 54(Mb/s) / (2000B/包 * 8bits/B) = 3375 包/秒,也就說大概經(jīng)過16777216 /3375=4971秒,也就是差不多1.3個小時,初始向量就要被全部用光了,就會出現(xiàn)重復(fù)。呵呵,如果我們真的等一個多小時才抓到兩個IV相同的包,那估計很多人會抓狂了,實際情況遠比這個要好。我上面講的是IV初始為0,然后隨著數(shù)據(jù)包的個數(shù)的增加,逐漸按模2的24次方遞增,到24位全部用完時,IV又返回為0這么一種情況。然后實際過程中,IV 是在[0,224-1]上隨機取的值。

   好吧,接下去就是概率的問題了(又是一門專業(yè)基礎(chǔ)課概率論與數(shù)理統(tǒng)計),經(jīng)過我的計算,在傳輸4823個數(shù)據(jù)包后,將會有50%的概率IV會相同,當發(fā)送12430個數(shù)據(jù)包時99%的概率會發(fā)生IV相同。也就是4秒鐘左右,就會發(fā)生IV相同的情況。
   
   假設(shè)我們抓到兩個IV相同的包(IV+C1)和(IV+C2),因為IV相同,40位的密鑰也相同,所以他們產(chǎn)生的Real Key也相同。那么我們可以將密文C1和密文C2進行異或操作,這個值和他們的明文異或操作時相同的。這一點大家可以按照我上面的例子自己算下。這樣,如果我們抓到足夠的包,也就是隨著IV相同的密文數(shù)的增多,完全就可以分析出密鑰和明文。
  關(guān)于WEP協(xié)議,它犯了密碼學(xué)中的大忌,就是避免使用線性運算。這里CRC冗余算法和RC4都是線性運算。至于為什么這么說,下次再說吧。呵呵

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)