WEP演算法的安全性

2021-09-06 23:14:54 字數 3866 閱讀 9867

翻譯自

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

我們的分析表明, 所有的這些攻擊手法, 只需要使用便宜易得的裝置, 可以很容易地實施起來. 我們建議任何使用802.11無線網路的使用者不要依賴wep來提供安全性, 而應該使用其它安全措施來保護他們的無線網路.

注意, 我們的攻擊手法同時適用於40位和128位的wep. 它們同樣也適用於採用802.11b標準的無線網路(802.11b是對802.11的擴充套件, 可以支援更高的資料傳輸速率, 但仍然保留使用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)不安全. 這個協議的問題在於, 設計者錯誤地理解了密碼學原語, 導致以一種不安全的方式來組合使用它們. 這裡的攻擊手法表明, 邀請密碼協議設計方面的專業人士進行公開審稿是多麼地重要; 只有這樣做了之後, 才能真正地避免這裡指出的問題.

密碼演算法安全性列表

密碼演算法安全性列表 業界已知不安全演算法 對稱演算法 des在所有場景下都不安全。對稱演算法 3des在金鑰長度256以下,k1 k2 k3時不安全。對稱演算法 skipjack和rc2在所有場景下都不安全。對稱演算法 rc4和blowfish當金鑰長度128以下時,不安全。非對稱演算法 rsa在...

mysql安全性試驗 Mysql安全性測試

一 沒有進行預處理的sql語句 1.連線資料庫 conn mysql connect 127.0.0.1 3306 root 518666 if conn die could not connect mysql error 2.選擇資料庫 mysql select db mysql safe con...

安全性測試

1.url哪些引數可以放進去,哪些不可以放。後面的id 可以隨便改,可以查所有活動。url作處理 後端限制。編輯 時,不應帶有 id,防有人改id編輯其它人的 加密。比如每個使用者金鑰都不一樣,很難破解。2.有些操作自已去資料庫確認,而不靠control層。比如,編輯活動時活動時,活動還沒有開始,但...