WPA

<image>

WPA（Wi-Fi Protected Access），意即「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這個名詞的設備以核發證書。

<image>

<image>

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

<image>

在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保全之前的過渡步驟：

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

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

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

## WPA2

WPA2是經由Wi-Fi聯盟驗證過的IEEE 802.11i標準的認證形式。WPA2實現了802.11i的強制性元素，特別是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位元加密和單獨加密。WPA3標準還使用IEEE 802.11-2016中定義的對等實體同時驗證（Simultaneous Authentication of Equals，SAE）來取代預共享密鑰（PSK）交換，從而在個人模式下實現更安全的初始密鑰交換。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