WEP算法的安全性


翻譯自http://www.isaac.cs.berkeley.edu/isaac/wep-faq.html

WEP算法的安全性

這篇文章講述了我們對有線等效加密協議(WEP, 802.11標准的一部分)的一些分析, 由Nikita Borisov, Ian Goldberg, 和David Wagner 3人共同完成. 如果你有任何疑問, 請通過wep@isaac.cs.berkeley.edu與我們聯系.

執行摘要

我們已經在WEP中發現了一些的漏洞, 它們極大地削弱了系統的安全性. 具體來講, 我們發現了下述幾種攻擊手法:

  • 被動攻擊, 基於統計分析來解密數據流量.
  • 主動攻擊, 基於已知的明文數據, 經未授權的移動站向網絡中注入偽造的數據流量.
  • 主動攻擊, 通過欺騙接入點來解密數據流量.
  • 字典攻擊, 在分析了大約一天的數據流量之后,可以實現實時自動解密所有數據流量.

我們的分析表明, 所有的這些攻擊手法, 只需要使用便宜易得的設備, 可以很容易地實施起來. 我們建議任何使用802.11無線網絡的用戶不要依賴WEP來提供安全性, 而應該使用其它安全措施來保護他們的無線網絡.
注意, 我們的攻擊手法同時適用於40位和128位的WEP. 它們同樣也適用於采用802.11b標准的無線網絡(802.11b是對802.11的擴展, 可以支持更高的數據傳輸速率, 但仍然保留使用WEP協議).

WEP簡介

802.11標准制訂了無線局域網的通信規范. 有線等效加密協議(WEP)被用來防止無線通信被竊聽. WEP的另外一個功能是防止對無線網絡的未授權訪問; 該功能並非802.11標准的明確目標, 但它常常被認為是WEP的一項特性.

WEP依賴於在移動站(例如,帶有無線網卡的筆記本)和接入點(即基站)之間共享的密鑰. 該密鑰被用來在發送數據之前加密數據, 還有一個完整性檢查被用來確保數據包在傳輸過程中沒有被篡改. 標准並未說明密鑰是如何建立起來的. 在實踐中, 大多數設施在所有移動站和接入點之間共享一個單一密鑰. 更復雜的密鑰管理技術可以幫助阻止我們所描述的攻擊; 但是, 據我們所知, 還沒有商業產品支持這種技術.

下面的兩節內容分別說明了協議中存在的問題以及攻擊的技術細節; 這些內容假設讀者具備一些加密協議方面的背景知識. 你不妨直接跳轉到下述章節, 它們討論了攻擊的可行性.

問題

WEP使用RC4加密算法, 這是一個流密碼. 流密碼的原理是將一個短密鑰擴展為一個無限的偽隨機密鑰流. 發送者通過將密鑰流與明文進行XOR操作得到密文. 接收者擁有同樣的短密鑰, 使用它可以得到同樣的密鑰流. 將密鑰流與密文進行XOR操作, 即可得到原來的明文.

這種操作模式使得流密碼容易遭受幾個攻擊. 如果攻擊者翻轉了密文中的一位, 解密之后, 明文中的相應位也將被翻轉. 此外, 如果竊聽者截獲到了兩份使用相同密鑰流加密的密文, 則他也能夠知道兩個明文的XOR結果. 已知XOR可以通過統計分析恢復明文. 統計分析隨着更多使用相同密鑰流加密的密文被截獲而變得更實用. 一旦其中一個明文已知, 很容易就可以恢復所有其它的.

WEP對這些攻擊均有防御策略. 為了確保數據包在傳輸過程中未被修改, 它在數據包中使用了一個完整性檢查(IC)的字段. 為了避免使用相同的密鑰流對兩份明文進行加密, 一個初始化向量(IV)被用來與共享密鑰一起, 針對每個數據包產生不同的RC4密鑰. IV也被包括在數據包中. 然而, 它們均沒有被正確實現, 導致了糟糕的安全性.

完整性校驗字段被實現為一個CRC-32校驗和, 它是數據包有效載荷的一部分. 然而, CRC-32是線性的, 這意味着可以根據數據包的位差異計算出它們的CRC-32之間的位差異. 換句話說, 翻轉消息中的第n位, 可以明確推算出其CRC-32中必須被翻轉的位, 以產生與修改之后的消息對應的校和. 因為位翻轉在RC4解密之后被仍然生效, 這使得攻擊者可以任意翻轉加密消息中的位, 並正確調整它的校檢和, 使最終得到的消息看起來合法.

WEP中的初始化向量是一個24位的字段, 作為消息的明文部分被發送. 初始化向量的取值空間如此之小必然會導致相同密鑰流的重復使用. 對於一個繁忙的接入點, 它不斷以11Mbps的速度發送1500字節的數據包, 將在1500 * 8 / (11 * 10^6) * 2^24 = ~18000秒, 或5小時耗盡IV. (時間可能會更少, 因為許多數據包小於1500字節.) 這允許攻擊者收集以相同密鑰流加密的密文, 然后通過統計分析來恢復明文. 更糟的是, 當所有移動站使用相同的密鑰時, IV沖突的概率將會更高. 例如, Lucent的無線網卡在網卡初始化時將IV重置為0, 並且每發送一個包將IV遞增1. 這意味着, 在大致相同的時間插入的兩個網卡將為攻擊者提供豐富的IV沖突機會. (更糟糕的是, 802.11標准規定, 改變與每個數據包的IV是可選的!)

攻擊手法

被動攻擊解密數據流量

第一種攻擊手法直接源自上面的分析結果. 一個被動的竊聽者可以攔截所有的無線流量, 直到發生IV沖突. 通過對兩個使用同一IV產生的密鑰流加密的密文進行XOR操作, 攻擊者即可獲得兩個明文消息的XOR結果. 所得XOR結果可以用來推斷兩個消息的明文內容. IP流量往往具有很好的可預測性, 並包括了很多的冗余數據. 這些冗余數據可以用來消除很多關於消息明文的可能性. 對消息內容的進一步可信猜測, 可以從統計上減少消息明文可能性的搜索范圍, 在某些場景下, 甚至可以確定明文的確切內容.

當僅基於兩個數據包的統計分析還不能確定結果時, 攻擊者可以尋找更多的IV碰撞. 在多花一些時間的前提下, 完全有可能恢復相當數量的使用相同密鑰流加密的數據包, 並且統計分析的成功率將快速增長. 一旦有可以恢復其中一條消息的明文, 所有其它使用相同IV加密的消息之明文均可恢復, 因為所有的成對XOR結果是已知的.

對這種攻擊手法的一個擴展方法是, 使用互聯網上某處的一台主機從外部向無線網絡內部的一台主機發送數據流量. 這種流量的內容對攻擊者而言是已知的, 即明文是已知的. 當攻擊者在802.11上攔截到由他發送的加密消息時, 他將能夠解密所有使用相同的初始化向量加密的報文.

主動攻擊注入數據流量

下面的攻擊手法也是直接源自上面的分析結果. 假設攻擊者知道了一條加密消息對應的明文. 他可以利用這些知識來偽造合法的加密數據包. 該過程包括構造一條新的消息, 計算其CRC-32, 並在原來的加密消息之上進行位翻轉, 將明文消息變為新消息. 這里的原理是, RC4(X) xor X xor Y = RC4(Y). 這一數據包現在可以發送給接入點或移動站, 它將作為一個有效的數據包而被接受.

通過細小的變形, 這種攻擊手法可以變得更加陰險. 即使不能完全知道分組的內容, 也可以翻轉消息中選定的部分位, 並正確調整其加密形式的CRC(如前一節中描述的), 得到一個經過篡改但是仍然正確的加密數據包. 如果攻擊者知道某個數據包的部分內容, 他可以攔截它, 並在其上執行選擇性地修改. 例如, 可以修改通過telnet會話發送給shell的命令, 或者修改與文件服務器之間的交互命令.

 從兩端同時發起的主動攻擊

上面的攻擊手法可以被進一步擴展, 以解密任意數據流量. 在這里, 攻擊者並非猜測數據包的內容, 而是數據包的包頭. 通常來講, 這些內容是很容易知道或者猜測的; 實際上, 我們只需要猜測目標IP地址. 借由這一點, 攻擊者通過翻轉某些位來改變目標IP地址, 通過惡意移動站進行傳送, 來將數據包發送到在互聯網上某處由他控制的機器上. 大多數無線設施都連接到了互聯網之上; 數據包將被接入點解密, 並將解密之后的包通過合適的網關和路由器轉發到攻擊者的機器上, 得到明文. 如果還可以猜測到TCP報頭, 甚至可以修改數據包的目標端口號為80, 這使得它可以通過大多數防火牆.

字典攻擊

狹小的IV取值空間允許攻擊者構建一個解密字典. 一旦他知道了某個數據包的明文, 他就可以計算出該IV對應的RC4密鑰流. 該密鑰流可以用來解密其它所有使用相同IV的數據包. 隨着時間的推移, 使用上面的技術, 攻擊者可以構建一個IV-密鑰流字典. 這個表只需要極少的存儲空間(~15GB); 一旦構建成功, 攻擊者可以解密該無線鏈路上任何一個數據包.

監聽

盡管解碼2.4GHz的數字信號有難度, 但是監聽802.11數據傳輸的硬件對於攻擊者來說則是現成的, 即普通的802.11消費者產品. 這些產品具備所有必要的監聽能力, 攻擊者所需要做的便是讓它物盡其用.

盡管大多數802.11設備被設計為忽略那些它們未知的加密內容, 但是通過修改網卡驅動的配置, 我們還是能夠成功地截取到使用WEP加密的數據流量. 我們可以使用混雜模式讓網卡固件將未知的密文返回到我們這里來以便進行進一步的檢查和分析.

主動攻擊(這種手法要求傳輸數據, 而不只是監聽數據)看起來更困難一些, 但並非不可能. 大多數802.11產品擁有可編程固件, 可以逆向工程並修改它來向攻擊者提供注入數據流量的能力. 當然, 這樣的逆向工程需要投入相當長的時間(我們自己沒有這樣做過), 但需要注意的是, 這是一個一次性投入. 一群有能力的人可以共同致力於此, 然后通過地下圈子分發惡意固件, 或將其出售給對間諜活動有興趣的團體. 這是一個高利潤的業務, 所以投入的時間可以很容易地賺回來.

總結

有線等效加密協議(WEP)不安全. 這個協議的問題在於, 設計者錯誤地理解了密碼學原語, 導致以一種不安全的方式來組合使用它們. 這里的攻擊手法表明, 邀請密碼協議設計方面的專業人士進行公開審稿是多么地重要; 只有這樣做了之后, 才能真正地避免這里指出的問題.

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM