Wi-Fi保護存取協定

**WPA**（英語：**W**i-Fi **P**rotected **A**ccess），意即「Wi-Fi 存取保護」，是一種由 Wi-Fi 聯盟制訂與發佈，用來保護無線網路（Wi-Fi）存取安全的技術標準。前一代有線等效加密（Wired Equivalent Privacy, WEP）系統中，被發現若干嚴重的弱點，因此 Wi-Fi 聯盟推出 WPA、WPA2 與 WPA3 系列來加強無線網路安全。

目前廣泛實作的有 WPA、WPA2 兩個標準。第一代 WPA (以 TKIP 為基礎) 由 2003 年開始啟用，WPA 實作了 IEEE 802.11i 標準的大部分，是在 802.11i 完備之前替代 WEP 的過渡方案。WPA 的設計可以用在所有的無線網卡上，但未必能用在第一代的無線存取點上。

WPA2 具備完整的標準體系，但其不能被應用在某些舊型的網卡上。WPA 和 WPA2 這兩個標準都提供了不錯的保全能力，但也都存在自己的問題：

* WPA 或 WPA2 一定要啟動並且被選來代替 WEP 才能生效，但是在某些舊裝置的安裝指引或預設組態中，WEP 標準是預設選項。
* 在使用家中和小型辦公室最可能選用的「個人」（Personal）模式時，為了保全的完整性，所需的密語一定要比過去使用者所設定的六到八個字元的密碼還長。

目前最新版標準是 2018 年 1 月發表的 WPA3。

## 歷史

WPA 是由 Wi-Fi 聯盟（英語：The Wi-Fi Alliance）這個業界團體建立的，他們擁有 Wi-Fi 這個名詞的商標，並且會檢驗要使用 Wi-Fi 這個名詞的裝置以核發憑證。

對 WPA 標準的實際運用檢驗從 2003 年 4 月開始，並於 2003 年 11 月變成強制性。完整的 802.11i 標準是在 2004 年 6 月通過的。

在 WPA 的設計中要用到一個 802.1X 認證伺服器來分發不同的金鑰給各個終端使用者；不過它也可以用在較不保險的「預共享金鑰模式」（pre-shared key（PSK）），這是讓同一無線路由器底下的每個使用者都使用同一把金鑰。Wi-Fi 聯盟把這個使用 pre-shared key 的版本叫做「WPA - 個人版」或「WPA2 - 個人版」（WPA-Personal or WPA2-Personal），用 802.1X 認證的版本叫做「WPA - 企業版」或「WPA2 - 企業版」（WPA-Enterprise or WPA2-Enterprise）。

WPA 的資料是以一把 128 位元的鑰匙和一個 48 位元的初向量（IV）以 RC4 串流加密法演算法來加密。WPA 超越 WEP 的主要改進就是在使用中可以動態改變金鑰的「臨時金鑰完整性協定」（Temporal Key Integrity Protocol，TKIP），加上更長的初向量，這可以擊敗知名的針對 WEP 的金鑰擷取攻擊。

除了認證跟加密外，WPA 對於所載資料的完整性也提供了巨大的改進。WEP 所使用的 CRC（迴圈冗餘校驗）先天就不安全，在不知道 WEP 金鑰的情況下，要篡改所載資料和對應的 CRC 是可能的，而 WPA 使用了名為「Michael」的更安全的訊息認證碼（在 WPA 中叫做訊息完整性查核，MIC）。進一步地，WPA 使用的 MIC 包含了影格計數器，以避免 WEP 的另一個弱點 —— 重放攻擊（Replay attack）的利用。

有兩個理由使得 WPA 被定位為到達較安全的 802.11 保全之前的過渡步驟：

1. 制定 802.11i 的工作比原先預期的久了很多，在大家越來越關心無線安全的同時，該標準的制定花費了四年才完成；
2. 它包含了與 WEP 相容的 802.11i 子集合，即使是最早的 802.11b 介面卡也能用。

許多已出貨的無線網路介面卡都有 WPA 韌體更新；在 2003 年之前售出的 802.11 無線接取器（無線路由器、無線網卡等）一般而言則必須要淘汰和更換。

藉由加長金鑰和初向量、減少和金鑰相關的封包個數、再加上安全訊息驗證系統，WPA 使得侵入無線區域網路變得困難許多。Michael 演算法是 WPA 設計者在大多數舊的網路卡也能使用的條件下找到的最強的演算法，然而它可能會受到偽造封包攻擊。為了降低這個風險，WPA 網路每當偵測到一個企圖的攻擊行為時就會關閉 30 秒鐘。

## WPA2

WPA2 是經由 Wi-Fi 聯盟驗證過的 IEEE 802.11i 標準的認證形式。WPA2 實現了 802.11i 的強制性元素 [1]，特別是 Michael 演算法由公認徹底安全的 CCMP 訊息認證碼所取代、而 RC4 也被 AES 取代。微軟 Windows XP 對 WPA2 的正式支援於 2005 年 5 月 1 日推出，但網路卡的驅動程式可能要更新。蘋果電腦在所有配備了 AirPort Extreme 的麥金塔、AirPort Extreme 基地台和 AirPort Express 上都支援 WPA2，所需的韌體升級已包含在 2005 年 7 月 14 日釋出的 AirPort 4.2 中。

### 預共享密鑰模式（PSK）的安全性

預共享金鑰模式（pre-shared key （PSK），又稱為 "-Personal"，即「－個人模式」）是針對承擔不起 802.1X 認證伺服器的成本和複雜度的家庭或小型公司網路設計和使用的，每一個使用者必須輸入預先組態好的相同的金鑰來接入網路，而金鑰可以是 8 到 63 個 ASCII 字元、或是 64 個 16 進位數字（256 位元）。使用者可以自行斟酌要不要把金鑰存在電腦裡以省去重複鍵入的麻煩，但金鑰一定要預先組態在 Wi-Fi 路由器裡。

安全性是利用 PBKDF2 密鑰導出函式來增強的，然而使用者採用的典型的弱金鑰會被密碼破解攻擊。WPA 和 WPA2 可以用至少 5 個 Diceware 詞或是 14 個完全隨機字母當金鑰來擊敗密碼破解攻擊，不過若是想要有最大強度的話，應該採用 8 個 Diceware 詞或 22 個隨機字母。金鑰應該要定期更換，在有人使用網路的權利被復原、或是設定好要使用網路的裝置遺失或被攻破時，也要立刻更換。某些消費電子晶片製造商已經有辦法跳過使用者選出弱金鑰的問題，而自動產生和散佈強金鑰。做法是透過軟體或硬體介面以外部方法把新的 Wi-Fi 介面卡或家電加入網路，包括按鈕（Broadcom SecureEasySetup 和 Buffalo AirStation One-Touch Secure Setup）和透過軟體輸入一個短的挑戰語（Atheros JumpStart）。

目前 WPA 加密方式尚有一漏洞，攻擊者可利用 spoonwpa 等工具，搜尋到合法使用者的網卡位址，並偽裝該位址對路由器進行攻擊，迫使合法使用者掉線重新連接，在此過程中獲得一個有效的握手包，並對握手包批次猜密碼，如果猜密的字典中有合法使用者設定的密碼，即可被破解。建議使用者在加密時儘可能使用無規律的字母與數字，以提高網路的安全性。

### 金鑰重新安裝攻擊（KRACK）

2017 年 5 月 19 日，比利時 2 位資安研究員發表了一篇 WPA2 弱點研究，在不久後引發喧然大波，14 年來被視為安全的 WPA2 架構其實有攻破的方法。不論是 Android 手機、iOS 裝置或 Windows 電腦、Linux 裝置都有可能被竊取資料。

比利時魯汶大學 IMEC-DistriNet 研究群教授 Mathy Vanhoef 及 Frank Piessens 在 5 月中旬發表了篇針對 WPA2 協定 CVE 漏洞的重安裝鍵攻擊（Key Reinstallation Attacks）研究，也通報美國電腦網路危機處理中心（CERT/CC）。2017 年 8 月 24 日，兩位教授在全球資安廠商和專家集聚的黑帽駭客大會上，發表這項研究發現。基本上是一種交握階段的重安裝 GTK 攻擊，該種攻擊可以在一個無線基地台的通訊範圍內發動，可說是一種旁敲側擊的攻擊手法，並非直接解開 WPA2 加密強制通訊，而是透過基地臺重送訊號讓接收者再次使用那些應該用過即丟的加密金鑰，進而能將封包序號計數器歸零，這就可以進一步大量重播來解碼封包，或是插入封包來竄改通訊內容，就可以綁架所有的通訊流量，尤其許多網站把資料只透過 http 明碼傳輸，而沒有加密，只要綁架了 Wi-Fi 流量，就能直接竊聽或竄改使用者接收或發送的內容。攻擊者得以竊取信用卡、密碼、聊天訊息、電子郵件、相片等資訊，理論上任何 Wi-Fi 網路上的內容都會被看光甚至竄改。

唯一受限是攻擊者必須進入基地台的訊號範圍，無法用網際網路遠端攻擊，但依然有一大隱患，各大硬體廠商也在研究軟體修正此一漏洞方法。然而目前世界上大量基地台是由不太懂電腦的使用者所控制，例如大量超商、餐館中的免費 Wi-Fi 或是家用裝置、商店裝置，如果修補涉及到要進入基地台後端更新軟體、韌體，對多數人恐難以關注此一問題和實現操作。

## WPA 和 WPA-2 企業版中的 EAP 種類

Wi-Fi 聯盟已經發佈了在 WPA 及 WPA2 企業版的認證計劃裡增加 EAP（可擴充認證協定）的訊息，這是為了確保通過 WPA 企業版認證的產品之間可以互通。先前只有 EAP-TLS（Transport Layer Security）通過 Wi-Fi 聯盟的認證。

目前包含在認證計劃內的 EAP 有下列幾種：

* EAP-TLS（之前就驗證過了）
* EAP-TTLS/MSCHAPv2
* PEAPv0/EAP-MSCHAPv2
* PEAPv1/EAP-GTC
* EAP-SIM

特定廠商開發的 802.1X 使用者端和伺服器也許會支援其他的 EAP 種類，這個認證是為了使流行的 EAP 種類之間能夠互通；目前在異質網路中之所以未能大量鋪設 802.1X 的主要原因就是互通性的問題。

## WPA3

2018 年 1 月，Wi-Fi 聯盟宣布將於年內發布包含眾多對安全性改進的 **WPA3**，它將會取代 WPA2。新標準為每個使用者使用 192 位元加密和單獨加密。Wi-Fi 聯盟還稱，WPA3 將緩解由弱密碼造成的安全問題，並簡化無顯示介面裝置的設定流程。該標準於 2018 年 6 月 25 日正式發布。

## 參考

* WAPI - 無線區域網路安全的中國國家標準
* tinyPEAP - 設計來載入無線取用點的少量記憶體 RADIUS 伺服器

## 參考資料

* Wi-Fi Alliance.（2003）. Wi-Fi Protected Access: Strong, standards-based, interoperable security for today’s Wi-Fi networks. Retrieved March 1, 2004 from https://web.archive.org/web/20040920195653/http://www.wifialliance.com/OpenSection/pdf/Whitepaper\_Wi-Fi\_Security4-29-03.pdf
* Wi-Fi Alliance. (2004). Wi-Fi Protected Access™ security sees strong adoption: Wi-Fi Alliance takes strong position by requiring WPA security for product certification. Retrieved January 5, 2004 from https://web.archive.org/web/20040220003927/http://www.wi-fi.org/OpenSection/ReleaseDisplay.asp?TID=4&ItemID=165&StrYear=2004&strmonth=2
* Weakness in Passphrase Choice in WPA Interface, by Robert Moskowitz. Retrieved March 2, 2004 from http://wifinetnews.com/archives/002452.html （頁面存檔備份，存於網際網路檔案館）
* Press Release about new EAP types supported under WPA-Enterprise from http://www.wi-fi.org/OpenSection/ReleaseDisplay.asp?TID=4&ItemID=205&StrYear=2005&strmonth=4

## 外部連結

* Wi-Fi Alliance's WPA page
* Wi-Fi Alliance's Interoperability Certificate page
* Network Configuration with WPA
* Apple Airport and Wi-Fi Network Security （頁面存檔備份，存於網際網路檔案館）
* EAP types supported under WPA-Enterprise
* Linux WPA/WPA2/IEEE 802.1X Supplicant
* Steve Gibson's Perfect Passwords: GRC's Ultra High Security Password Generator （頁面存檔備份，存於網際網路檔案館）