有關(guān)無線局域網(wǎng)應(yīng)用中的安全知識
University of California at Berkeley(美國加州柏克萊大學(xué))的三名研究人員,Nikita Borisov、Ian Goldberg、以及Dabid Wagner,在去年發(fā)現(xiàn)WEP編碼的重大漏洞;除此之外,在2001年8月,密碼學(xué)家Scott Fluhrer、Itsik Mantin、以及Adi Shamir在一篇論文中,指出了RC4編碼的缺點,而RC4正是WEP的基礎(chǔ)。就在幾天后,2001年8月底,Rice University(美國萊斯大學(xué))的學(xué)生與兩名AT&T(美國電報電話公司)實驗室的員工(Adam Stubblefield與John Joannidis、Aviel D. Rubin),將這兩篇論文的內(nèi)容化為實際的程序代碼。令人驚訝的是,其中完全沒有牽扯到任何特殊裝置,你只要有一臺可以連上無線網(wǎng)絡(luò)的個人計算機,從網(wǎng)絡(luò)上下載更新過的驅(qū)動程序,接下來就可以開始記錄網(wǎng)絡(luò)上來往的所有封包,再加以譯碼即可。
即使無線局域網(wǎng)絡(luò)的系統(tǒng)管理者使用了內(nèi)置的安全通訊協(xié)議:WEP(Wired Equivalent Privacy),無線局域網(wǎng)的安全防護仍然不夠。在倫敦一項長達7個月的調(diào)查顯示,94%的無線局域網(wǎng)都沒有正確設(shè)定,無法遏止黑客的入侵。隸屬于國際商會(International Chamber of Commerce)的網(wǎng)絡(luò)犯罪部門(Cybercrime Unit)就發(fā)現(xiàn),即使無線網(wǎng)絡(luò)很安全,也會因為種種原因而大打折扣?,F(xiàn)在非常盛行「路過式的入侵(drive-by hacking)」,黑客開車進入商業(yè)辦公區(qū),在信號所及的地方,直接在車里滲透企業(yè)的無線局域網(wǎng)。
University of California at Berkeley(美國加州柏克萊大學(xué))的三名研究人員,Nikita Borisov、Ian Goldberg、以及Dabid Wagner,在去年發(fā)現(xiàn)WEP編碼的重大漏洞;除此之外,在2001年8月,密碼學(xué)家Scott Fluhrer、Itsik Mantin、以及Adi Shamir在一篇論文中,指出了RC4編碼的缺點,而RC4正是WEP的基礎(chǔ)。就在幾天后,2001年8月底,Rice University(美國萊斯大學(xué))的學(xué)生與兩名AT&T(美國電報電話公司)實驗室的員工(Adam Stubblefield與John Joannidis、Aviel D. Rubin),將這兩篇論文的內(nèi)容化為實際的程序代碼。令人驚訝的是,其中完全沒有牽扯到任何特殊裝置,你只要有一臺可以連上無線網(wǎng)絡(luò)的個人計算機,從網(wǎng)絡(luò)上下載更新過的驅(qū)動程序,接下來就可以開始記錄網(wǎng)絡(luò)上來往的所有封包,再加以譯碼即可。
WEP的運作方式
在許多無線局域網(wǎng)中,WEP鍵值(key)被描述成一個字或位串,用來給整個網(wǎng)絡(luò)做認證。
目前WEP使用2種編碼大小,分別是64與128位,其中包含了24位的初始向量(IV,Initialization Vector)與實際的秘密鍵值(40與104位)。大家耳熟能詳?shù)?0位編碼模式,其實相當于64位編碼。這標準中完全沒有考慮到鍵值的管理問題;唯一的要求是,無線網(wǎng)卡與基地臺必須使用同樣的算法則。通常局域網(wǎng)的每一個用戶都會使用同樣的加密鍵值;然而,局域網(wǎng)用戶會使用不同的IV,以避免封包總是使用同樣WEP鍵值所「隨機」產(chǎn)生的RC4內(nèi)容。
在封包送出之前,會經(jīng)過一個「忠誠檢查(IC,Integrity Check)」,并產(chǎn)生一個驗證碼,其作用是避免數(shù)據(jù)在傳輸過程中,遭到黑客竄改。RC4接下來會從秘密鍵值與IV處,產(chǎn)生一個keystream,再用這個keystream對數(shù)據(jù)與IC做互斥運算(XOR,Exclusive-Or)。首先IV會以一般文字方式傳送出去,然后才是加密后的數(shù)據(jù)。只要將IV、已知的鍵值、以及RC4的keystream再做一次互斥運算,我們就可以將數(shù)據(jù)還原。
弱點:初始向量(IV,Initialization Vector)
40或64位編碼可以填入4組鍵值;然而我們只使用了第一組。
WEP編碼的弱點在于IV實作的基礎(chǔ)過于薄弱。例如說,如果黑客將兩個使用同樣IV的封包記錄起來,再施以互斥運算,就可以得到IV的值,然后算出RC4的值,最后得到整組數(shù)據(jù)。
如果我們使用的初始向量為24位,那我們就可以在繁忙的網(wǎng)絡(luò)點上(例如以11Mbps的頻寬,不斷傳送1500字節(jié)的封包),以不到5小時的時間算出結(jié)果。以這樣的例子來說,總數(shù)據(jù)量為24GB。因此,要在幾小時的時間內(nèi),記錄所有傳輸?shù)姆獍?,并?a href='http://lpo831.com/it/weihubijiben/' target='_blank'>筆記本計算機算出其結(jié)果,是絕對可行的事情。
由于該標準并沒有規(guī)定IV所產(chǎn)生的相關(guān)事宜,所以并不是每家廠商都用到IV的24個位,并在短時間內(nèi)就重復(fù)用到相同的IV,好讓整個程序快一點。所以黑客所要記錄的封包就更少了。以Lucent(朗訊)的無線網(wǎng)卡來說,每次激活時它就會將IV的初始值設(shè)為0,然后再往上遞增。黑客只要記錄無線網(wǎng)絡(luò)上幾個用戶的數(shù)據(jù)內(nèi)容,馬上就可以找到使用同樣IV的封包。
Fluhrer、Martin、Shamir三人也發(fā)現(xiàn),設(shè)計不良的IV有可能會泄漏鍵值的內(nèi)容(信心水準為5%),所以說只要記錄400~600萬個封包(頂多8.5 GB的數(shù)據(jù)量),就有可能以IV來算出所有的WEP鍵值。
更進一步探討,如果WEP鍵值的組合不是從16進位表,而是從ASCII表而來,那么因為可用的字符數(shù)變少,組合也會變少。那么被黑客猜中的機率就會大增,只要一兩百萬個封包,就可以決定WEP的值。
網(wǎng)絡(luò)上可找到的入侵工具
Adam Stubblefield在其論文中詳盡的描述了整個過程,卻僅限于理論;但現(xiàn)在網(wǎng)絡(luò)上四處可見這些免費的入侵工具程序。與Stubblefield所提的類似,所有程序支持的幾乎清一色是Prism-2芯片。使用這芯片的包括了Compaq(康柏)WL100、友訊(D-Link)DWL-650、Linksys WPC11、以及SMC 2632W等,都是市面上常見的產(chǎn)品。會選用這芯片的原因是因為其Linux驅(qū)動程序(WLAN-NG)不需要登入網(wǎng)絡(luò),即可監(jiān)聽封包。這程序會先搜尋設(shè)計不良、有漏洞的IV,然后記錄500~1,000萬不等的封包,最后在剎那間將WEP鍵值算出來。
黑客可以采取主動式攻擊
由于以上所說的被動式攻擊(單純的紀錄封包)十分可靠、有效,所以主動式攻擊反而失去了其重要性。不過毫無疑問的,黑客也可以主動的侵入網(wǎng)絡(luò),竊取數(shù)據(jù)。我們假設(shè)黑客知道了原始數(shù)據(jù)及加密后的數(shù)據(jù),收訊方會將這些信息視為正確無誤。接下來黑客就可以在不需要知道鍵值的情形下,將數(shù)據(jù)偷天換日,而收訊方仍然會將這些數(shù)據(jù)當成正確的結(jié)果
有效的解決方法
RSA Security(RC4編碼的發(fā)明機構(gòu))與Hifn(位于加州,專精于網(wǎng)絡(luò)
安全的公司,)正努力加強WEP的安全,并發(fā)展新的運算法則。兩家機構(gòu)為RC4發(fā)展的解決方案為「快速封包加密(Fast Packet Keying)」,每個封包送出時,都會快速的產(chǎn)生不同的RC4鍵值。傳送與接收雙方都使用了128位的RC4鍵值,稱為暫時鍵值(TK,Temporal Key)。當雙方利用TK連結(jié)時,會使用不同的keystream,其中會加入16位的IV,再一次的產(chǎn)生128位的RC4鍵值。用戶可以通過軟硬件與驅(qū)動程序更新,在現(xiàn)有無線局域網(wǎng)中使用RC4快速封包加密。