WPA 相對於 WEP 的改進如下:
- IV (Initialization Value) 增長為 48-bit,並由 TKIP Sequence Counter (TSC) 產生,強制每個封包不同。
- 延續使用 WEP 的 128-bit RC4 stream 加密,但不再是簡單的 IV 接上固定的 WEP key,而是每個封包重新由 48-bit source MAC address, 128-bit Temporal Encryption key (TEK) 及 TSC 混和產生。由於 TSC 每個封包不同,所以每個封包加密的 key 也不同,可避免 replay attacks。
- 每個 MAC SDU (上層封包) 多加了 64-bit Message Integrity Check (MIC),採用 Michael 演算法。
← RC4 加密 → | |||||||||
802.11 Frame header | IV | Res | Ext. IV | Key ID | Extended IV | Payload | MIC | ICV | FCS |
24b | 5b | 1b | 2b | 32b | 64b | 32b |
- 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 可避免。
- CSE571S: Network Security (Fall 2007)對網路安全有不錯的講解
- Wikipedia: Wi-Fi Protected Access
- 二樓守衛 - WPA/WPA2
- 無線網路安全:破解 WPA/WPA2 - 第一種作法
- 無線網路安全:破解 WPA/WPA2 - 完全不受密碼長度限制
- WPA2 (Wi-Fi Protected Access II)
- 802.11i-2004 標準
- 用 CCMP 取代 TKIP,CCMP 是基於 AES 的加密機制,有時也稱為 AES。
- WAPI (中國標準)
- 依照 authentication key distribution 方式可分成個人版 (WPA-Personal, WPA-PSK) 及企業版 (WPA-Enterprise, WPA-802.1X, WPA),WPA 跟 WPA2 都適用。企業版需要 RADIUS 伺服器,使用 Extensible Authentication Protocol (EAP) 作為認證,例如 EAP-TLS、EAP-TTLS、EAP-SIM。個人版的加密來自一個 256-bit key,可直接輸入 64 的十六進位數字 (剛好 256-bit),或輸入 8 至 63 個可印的 ASCII 字元 (0x20~0x7E) 作為 passphrase,加上 SSID,使用演算法產生 256-bit key。取較佳的 passphrase 及 SSID 較不易破解。
- WPA3:Wi-Fi 聯盟公佈更安全的 WPA3 標準協定