2011年1月30日 星期日

WPA

在 2003,由於 WEP 的缺陷而面臨沒加密機制可用狀況下,Wi-Fi 聯盟在 802.11i 標準制定無法如期完成前,緊急推出 WPA,也就是 TKIP (Temporal Key Integrity Protocol),作為將來較安全但較複雜 WPA2 前的過渡,部份 WEP 設備可透過韌體更新使用 WPA。

WPA 相對於 WEP 的改進如下:
  1. IV (Initialization Value) 增長為 48-bit,並由 TKIP Sequence Counter (TSC) 產生,強制每個封包不同。
  2. 延續使用 WEP 的 128-bit RC4 stream 加密,但不再是簡單的 IV 接上固定的 WEP key,而是每個封包重新由 48-bit source MAC address, 128-bit Temporal Encryption key (TEK) 及 TSC 混和產生。由於 TSC 每個封包不同,所以每個封包加密的 key 也不同,可避免 replay attacks。
  3. 每個 MAC SDU (上層封包) 多加了 64-bit Message Integrity Check (MIC),採用 Michael 演算法。
封包 PDU 格式






← RC4 加密 →
802.11 Frame headerIVResExt.
IV
Key
ID
Extended
IV
PayloadMICICVFCS

24b5b1b2b32b
64b32b
  • Ext. IV 表示有 Extended IV 欄位,及每個 MAC SDU 的 MIC
  • IV + Extended IV 的 byte 依序為 TSC1, d, TSC0, TSC2, TSC3, TSC4, TSC5,組合成傳送的 TSC。d 為 dummy byte 避免較弱的 TKIP key

Michael 演算法是 WPA 設計者在大多數舊的網路卡也能使用的條件下找到的最強的演算法,然而它可能會受到偽造封包攻擊。為了降低這個風險,WPA 網路每當偵測到一個企圖的攻擊行為時就會關閉 30 秒鐘。

WPA 個人版是用 pre-shared key (PSK) 的方式,可以輸入 8 ~ 63 個 ASCII 字元的密碼產生 256-bit 的 Pairwise Master Key (PMK),或是直接輸入 64 十六進位數字。密碼產生 PMK 是用 PBKDF2 演算法 (JavaScript),SSID 作為 salt,執行 HMAC-SHA1 4096 次 。

PMK 加上兩者 MAC address、supplicant nonce 及 authenticator nonce 經過 SHA-1 產生 Pairwise Transient Keys (PTK),包括 EAPOL-key Encryption Key, EAPOL-key Integrity Key, TEK, 及 MIC key,這些每次 association 會重新產生。

而企業版是用 802.1X 認證伺服器來散佈不同的鑰匙給各個用戶。

安全性
  • 暴力破解 (brute force attack) 弱密碼需要兩三天
  • 解出達 596 bytes 以下的封包的 keysteam,例如 ARP,插入假的 ARP 將封包導到其他地方
  • 一種新形式的攻擊可解出所有到 client 的封包,但關掉 QoS 可避免。
參考
  1. CSE571S: Network Security (Fall 2007)對網路安全有不錯的講解
  2. Wikipedia: Wi-Fi Protected Access
延伸閱讀

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...