有線等效加密(WEP)標準是802.11無線安全早期的解決方案,WEP並不安全。 既然WEP並不安全,為什麼還要學習WEP呢? 1. WEP簡單,相比後續出現的加密協議,它不要求有多麼強大的計算能力。一些老的設備,特別是缺乏足夠處理能力的手持設備,WEP已經是最佳選擇; 2. 較新的技術,如TKIP ...
有線等效加密(WEP)標準是802.11無線安全早期的解決方案,WEP並不安全。
既然WEP並不安全,為什麼還要學習WEP呢?
- WEP簡單,相比後續出現的加密協議,它不要求有多麼強大的計算能力。一些老的設備,特別是缺乏足夠處理能力的手持設備,WEP已經是最佳選擇;
- 較新的技術,如TKIP,仍舊會用到WEP的幀處理能力;
1. WEP的密碼學背景
WEP用以保護數據的RC4密碼屬於對稱性(密鑰)流密碼(stream cipher),流密碼會用到稱為密鑰流(keystream)的位流,密鑰流隨後會與信息結合,產生密文(ciphertext)。為了還原原始信息,接收端會以相同的密鑰流處理密文。RC4會利用異或(exclusive OR,簡稱XOR)運算結合密鑰流與密文。如下圖所示。
流密碼的運作方式通常是先選用一把較短的密鑰,通過偽隨機數生成器(pseudorandom number generator,PRNG)將之展開為與信息等長的偽隨機數密鑰流,如下圖所示。
2. WEP的加密操作
通信安全有三個主要目的:
機密性
防止數據不受未授權的第三者攔截;
完整性
確保數據沒有被修改;
真實性
真實性是所有安全策略的基礎,因為數據的可信度部分取決於數據源的可靠性;
WEP的數據處理流程如下圖所示:
驅動程式以及介面硬體負責處理數據,然後送出加密過的封包,順序如下:
- 802.11幀被放在隊列中等待發送。幀由標頭(Header)和有效載荷(Payload)組成,根據有效載荷計算出完整性校驗值ICV,並放在有效載荷尾部;
- 隨後組裝幀加密密鑰(或稱WEP種子),WEP種子分為兩部分:秘鑰(secret key)以及初始向量(IV)。添加IV是為了避免出現使用相同密鑰流進行加密的情況,802.11並未限制選取IV時非得使用何種演算法;
- 幀加密密鑰被當成RC4密鑰,用以加密步驟1有效載荷和ICV,整個加密過程通常通過RC4專用電路來完成;
- 有效載荷加密之後,就可以組裝待傳的幀。802.11標頭與加密過的有效載荷之間插入WEP標頭,除了IV,WEP標頭中還包含密鑰編號,WEP最多允許定義4個密鑰。一旦附加上最後的標頭,就可以針對真個MAC幀,計算出802.11幀校驗碼(FCS)。
以上闡述了WEP幀的組裝流程,解密的過程剛好相反。一旦使用WEP進行加密,幀主體就會增加8個位元組。其中4個位元組作為幀主體的IV標頭,另外4個位元組作為ICV標尾,如下圖所示。
IV標頭使用3個位元組來容納長度為24位的IV,第四個位元組則包含填充位以及密鑰標識符(key ID)。數據幀的32位迴圈冗餘校驗(CRC)碼提供了完整性檢查,附加於幀主體之後,同時被RC4保護。
3. 關於WEP的種種問題
手動管理密鑰對於變換密鑰工作量大;
標準的靜態WEP只提供長度為40位的密鑰,業界標準所提供的密鑰長度最多只達到104位;
一旦重覆使用密鑰流(keystream),流密碼(stream cipher)就容易被識破。可供使用的IV值(24位)並不大,容易重覆;
如果不常更換密鑰,攻擊者就可以採集解密字典(decryption dictionarie),即積累以相同密鑰流加密的大量幀,那麼破解密鑰就指日可待;
WEP使用CRC進行完整性檢查,CRC並沒有密碼學上的安全性;
4. 動態WEP
不同於讓網路中所有工作站共用一個靜態密鑰來加密所有幀,動態WEP讓網路上所有工作站使用一個密鑰來加密廣播幀,但個別工作站使用自己的映射密鑰來加密單播幀。動態WEP每隔一段時間就會產生並分配新的密鑰。