至2001年,黑客攻击WEP使得无线安全的加强变得势在必行。IEEE制定的802.11i标准,是一个改进的标准。直到2003年,还没有最终批 准该标准,因此Wi-Fi Alliance便制定了Wi-Fi Protected Access (WPA),这是基于当时的802.11i草案的子标准集。
WPA是精心设计的,以致都不需要进行硬件升级。许多早期接入端(AP)的处理能力非常有限。RC4密码被选择用于WEP,因为它不需要一个很强的 CPU。WPA延用RC4,但增加了一些特性以消除WEP使用密码方式上的一些问题:
1.更严格的认证:一个802.1x服务器,如Radius服务器,可以单独地用于用户认证。
2.更长的密钥:WPA将Initialization Vector (IV)的长度增加到48位,主密钥的长度增加到128位。
3.Temporal Key Integrity Protocol (TKIP)为每一个客户生成不同密钥,并且为每一个后续数据包使用不同的密钥。
4.有一个消息完整码(MIC),或加密校验码,验证消息在传输过程中不被修改,并避免重复传输。
认证
WPA具备以下2种模式工作:个人或企业。
个人模式:这个模式以WEP相同方式手动地使用配置的密钥。所有客户端使用相同的初始主密钥。
企业模式:AP使用Extensible Authentication Protocol (EAP)来与每个单独的客户端协商一个成对主密钥。然后AP在一个802.1x服务器上验证客户端身份。结果是每一个允许使用网络的客户端都会与配置在 802.1x服务器上的信息进行验证,并使用一个与其它客户端上密钥不同的密钥。
RFC 3748中定义的EAP是一个可扩展的协议。它并没有定义一个具体的认证协议,但指定了一组功能和格式。并且已经定义了大量的WAP方法。Wi-Fi Alliance已经选择了一小组可用的方法。
加密密钥
密钥重用会为黑客提供很多,可用来判断主密钥的数据。通过使用WEP,所有站点都使用相同的主密钥,而且24位的IV只能生成1600万可能的值,所 以一个繁忙的网络在几小时内就会使用相同的IV。而对于48位的IV则需要几年才能消耗完。
为了增加IV的长度,TKIP解决了弱IV的问题。1600万的WEP IV中大约有9000个是所谓的弱IV,因为它们会比其它IV更容易暴露主密钥信息。TKIP算法则能去除弱IV。
在企业模式,802.1x服务器支持为每一个客户提供不同的主密钥,但在个人模式,所有的主密钥都是一样的。TKIP算法组合了IV和主密钥与发送者 的MAC地址,并增加一个顺序计数。在密钥中包含MAC地址表示相同的组合密钥将不会被所有客户端使用。包含数据包序号会为每一个后续的数据包生成不同的 组合密钥。
使用序号也能够消除重放攻击。接收站点可以检测出该序号不会超过每一个接收数据包所应有的数。
消息完整性检查
WEP中使用的CRC32校验码并没有提供足够的保护。一个黑客可以通过修改数据包中的一个或多个位并在校验码中标记相应的变化来修改一个WEP数据 包。WPA使用一个名为Michael 的MIC算法。它提供了比CRC32更强的保护,而只要求有限的处理器资源。
WPA2
IEEE 802.11i标准是在2004年6月最终确定的。Wi-Fi Alliance将WPA2应用到标准的强制需求的实现中。从2006年春季以来,Wi-Fi Alliance已经要求产品必须支持WPA2才能打上“Wi-Fi认证”标签。
WPA2在计数模式(Counter Mode)中使用密码块链接消息认证编码协议(Cipher Block Chaining Message Authentication Code Protocol,CCMP),其中是基于Advanced Encryption Standard (AES)算法进行认证和数据加密。TKIP大大增加了拦截使用WEP的无线流量的难度,但CCMP比组合RC4和TKIP的方法更加安全。因为CCMP 比RC4要求更多的处理器周期,升级到WPA2可能需要更换AP或客户端无线接口。
WPA2同时支持个人和企业模式。在个人模式,预共享密钥与SSID组合来创建成对的主密钥(PMK)。客户端和AP使用PMK来交换消息以创建成对 的临时密钥(PTK)。
在企业模式中,在成功认证后——使用其中一种EAP方法——客户端和AP都收801.1z服务器接收消息,并用于创建PMK。然后它们交换消息以创建 PTK。然后PTK被用以加密和解密消息。
在个人和企业两种情况中,都有一个组临时密钥(GTK)在客户端和AP的消息交换过程中被创建出来。GTK被用于解密广播和多播消息。
WPA2也增加了一些方法来加快客户端在AP之间移动时的切换速度。用一个802.1x服务器认证和生成密钥的过程的时间足以打断无线语音通话。 WPA2有一些客户端可以用来对邻近AP进行预授权的方法。AP和客户端也保留密钥,这样一个客户端返回一个AP时可以快速地恢复通信。