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