有線等效加密

(重定向自WEP

有線等效加密(英語:Wired Equivalent Privacy,縮寫:WEP),又稱無線加密協議(英語:Wireless Encryption Protocol,縮寫:WEP),是個保護無線網路信息安全的體制,於1997年,由IEEE802.11制定與發佈。

WEP採用64bit或128bit的金鑰加密(其中24bit用來給初始向量(Initialization Vector, IV)),故64bit可用的密碼(Secret Key)是64-24=40bit (WEP-40);也就是10個16進制數字。而128bit可用的密碼是128-24=104bit (WEP-104);也就是26個16進制數字。這種用法曾經被廣泛使用,也是當時路由器給使用者的預設配置。

因為無線網路是用無線電把訊息傳播出去,它特別容易被竊聽。WEP的設計是要提供和傳統有線的區域網路相當的機密性,而依此命名的。不過密碼分析學家已經找出有線等效加密幾個弱點,因此在2003年被Wi-Fi Protected Access (WPA)取代,隨著2004年發佈完整IEEE 802.11i標準,其中所制定的WPA2淘汰了WEP-40與WEP-104。

最初WEP僅適用於802.11a與802.11b,而其後的第一代WPA適用於802.11g。但隨著部份廠商升級自家802.11b產品的韌體,亦能採用WPA加密。

細節

WEP是1999年9月通過的IEEE 802.11標準的一部分,使用RC4串流加密技術達到機密性,並使用CRC-32 驗和達到資料正確性。其後於2004年正式由IEEE 802.11i明文淘汰WEP標準。

標準的64比特WEP使用40位元的鑰匙接上24位元的初向量(initialization vector,IV)成為RC4用的鑰匙。在起草原始的WEP標準的時候,美國政府在加密技術的輸出限制中限制了鑰匙的長度,其後這個限制放寬之後,眾多的主要業者都用104位元的鑰匙實作了128位元的WEP延伸協定。用戶輸入128位元的WEP鑰匙的方法一般都是用含有26個十六進位數(0-9和A-F)的字串來表示,每個字元代表鑰匙中的4個位元,4 * 26 = 104位元,再加上24位元的IV就成了所謂的"128位元WEP鑰匙"。有些廠商還提供256位元的WEP系統,就像上面講的,24位元是IV,實際上剩下232位元作為保護之用,典型的作法是用58個十六進位數來輸入,(58 * 4 = 232位元)+ 24個IV位元 = 256個WEP位元。

鑰匙長度不是WEP安全性的主要因素,破解較長的鑰匙需要攔截較多的封包,但是有某些主動式的攻擊可以激發所需的流量。WEP還有其他的弱點,包括IV雷同的可能性和變造的封包,這些用長一點的鑰匙根本沒有用,見stream cipher attack一頁。

身份驗證(Authentication)

WPA支援開放系統認證(Open System authentication)與分享密鑰認證(Shared Key authentication)。

瑕疵

因為RC4是流加密的一種,同一個鑰匙絕不能使用二次,所以使用(雖然是用明文傳送的)IV的目的就是要避免重複;然而24位元的IV並沒有長到足以擔保在忙碌的網路上不會重複,而且IV的使用方式也使其可能遭受到關連式鑰匙攻擊

許多WEP系統要求鑰匙得用十六進位格式指定,有些用戶會選擇在有限的0-9 A-F的十六進位字元集中可以拼成英文詞的鑰匙,如C0DE C0DE C0DE C0DE,這種鑰匙很容易被猜出來。

2001年8月,Fluhrer et al.發表了針對WEP的密碼分析,利用RC4加解密和IV的使用方式的特性,結果在網路上偷聽幾個小時之後,就可以把RC4的鑰匙破解出來。這個攻擊方式很快就實作出來了,而自動化的工具也釋出了,只要用個人電腦、現成的硬體和免費可得的軟體(例:aircrack-ng)就能進行這種攻擊。

Cam-Winget et al.(2003)審查了WEP的各種短處,他們寫下「在實際場所實驗的結果顯示,只要有合適的儀器,就可以在一英里之外或更遠的地方偷聽由WEP保護的網路。」他們也報告了兩個一般的弱點:

在2005年,美國聯邦調查局的一組人展示了用公開可得的工具可以在三分鐘內破解一個用WEP保護的網路。

再者,若802.11網路有連上網際網路,攻擊方可以在802.11訊框(fragmentation)上編造新的IP標頭(Header),做出重送竊聽封包。而該AP會解密這些封包然後重送給在網際網路另一端正常情況下的收方(Client),如此攻擊方可以即時解密WEP使用的金鑰。

亡羊補牢

對WEP安全問題最廣為推薦的解法是換到WPA或WPA2,不論哪個都比WEP安全。有些古老的WiFi接入点可能需要汰換或是把它們記憶體中的作業系統升級才行,不過替換費用相對而言並不貴。另一種方案是用某種穿隧協定,如IPsec

參考

外部連結