首页 理论教育WPA工作机制简介

WPA工作机制简介

【摘要】:为了简化分析和降低建模难度,做如下假设:图15-7 WPA包格式15.3.1.1 认证WPA认证与IEEE 802.1x规范相一致,它为集中型用户和/或无线网络认证提供了可扩展的认证协议,同时也提供了加密密钥管理和分发功能。使用WPA的接入点支持广播信标消息。

WPA可以在两种模式下工作:WPA企业模式和WPA个人模式。在WPA企业模式中,存在多个移动客户端、一个接入点和一个认证服务器(RADIUS或者LDAP)。在这一模式下,当某个移动客户端希望接入网络时,他会联络相应的接入点进行认证。客户端将认证信息发送至接入点。这一信息随后被转发给认证服务器进行验证。在检查有效的证件后,认证服务器将指示接入点允许客户端接入网络。服务器同时会向接入点和客户端发送一个加密密钥。客户端可以使用这一密钥对其和接入点所交换的信息进行加密。图15-5给出了WPA企业模式的配置。WPA企业模式一般使用于拥有大量客户端和可用信息技术基础设施的公司和组织。

与此同时,WPA个人模式用于家庭用户或者小型办公环境,在这些地方部署认证服务器是不可行的。因此,WPA个人模式有时被称为WPA小型办公/家庭办公(Small Office,Home Office,SOHO)。它也被称为预共享密钥(Preshared Key,PSK)模式。在这种预共享密钥模式下,通行口令在接入点手动输入,同时口令被发放给移动客户端。当客户端希望接入网络时,接入点首先检查用户的口令和自身的口令是否匹配。如果匹配,则接入点将允许客户端接入网络。之后接入点将加密密钥发送给移动客户端并开始信息交换。WPA个人模式如图15-6所示。

978-7-111-34574-9-Part02-111.jpg

图15-6 WPA个人模式

WPA可以概括为:WPA=IEEE 802.1x+EAP+TKIP+MIC(对于WPA个人模式,EAP被PSK所代替)。WPA数据包中的各字段如图15-7所示。WPA的安全性基于安全认证、强加密和数据完整性。在接下来的章节中我们将依次介绍它们。

978-7-111-34574-9-Part02-112.jpg

图15-7 WPA包格式

15.3.1.1 认证

WPA认证与IEEE 802.1x规范相一致,它为集中型用户和/或无线网络认证提供了可扩展的认证协议(Extensible Authentication Protocol,EAP),同时也提供了加密密钥管理和分发功能。WPA支持两种基于不同目的的认证模式,见表15-4。

表15-4 WPA认证支持

978-7-111-34574-9-Part02-113.jpg

在企业模式下,WPA使用IEEE 802.1x和EAP,同时需要使用认证服务器。WPA使用EAP为移动客户端和无线网络传输认证信息。EAP是一种可扩展的认证协议,同时支持不同的认证方式,例如通行口令、数字证书和智能卡。移动客户端可以使用任何一种在认证服务器中所安装的并被支持的认证方法。如果所有的认证方法失败,接入点就会拒绝移动客户端的证件。

使用WPA的接入点支持广播信标消息。当一个移动终端接近这类接入点时,它将自身的子系统标识符SSID和接入点关联。如果关联成功,移动终端开始认证过程。

在认证之后,两组密钥即对偶密钥(Pairwise Keys)和群密钥(Groupwise Keys),被传送到移动客户端。这些密钥用于在无线传输之前对IEEE 802.11数据包进行加密。群密钥用于使所有的移动客户端和同一个接入点建立连接。对偶密钥是某个移动客户端和接入点之间唯一的密钥。这种IEEE 802.1x密钥分发机制解决了认证和数据加密中所有移动客户端共享相同的WEP密钥的WEP认证问题。

在个人模式中,由于不存在认证服务器,所以使用了一种简单的通行口令匹配方案。这种认证方式被称为预共享密钥模式(WPA-PSK)。在这种模式中,一个简单的预共享密钥(或者通行口令)是在每个移动客户端和接入点处手工输入的。移动客户端可以在它的通行口令和接入点中所持有的口令相匹配的情况下被允许接入网络。

不考虑所使用的WPA认证方法,在认证成功之后,使用TKIP加密传输的消息。这种加密方法使得WPA-PSK不同于WEP。这也是WPA个人模式比WEP更安全的原因。

15.3.1.2 加密

WEP加密的问题主要是源于无线传输的初始矢量未经加密。在一个重负载Wi-Fi网络中,初始矢量每几个小时就会重新出现一次。通过捕获具有相同初始矢量值的数据包,攻击者就可以通过重复地对密文进行异或运算来找出WEP密钥,然后就可以非法接入网络。

使用了TKIP的WPA,通过以下手段解决了WEP中的这一问题:

1)使用了更长位数的初始矢量(48bit);

2)将密钥的长度从40bit增加至128bit;

3)每10000个数据包就重新生成一个加密密钥;

4)使用每个数据包的密钥和初始矢量进行混合。

加密密钥是通过添加一个48bit的初始矢量、一个104bit的RC4密钥以及客户端的物理地址生成的,之后将结果输入一个混合函数来生成一个128bit的RC4加密密钥值。

15.3.1.3 消息完整性

WPA中的消息完整性检测(MIC),正如它的名字,提供了保证完整性的功能。正如前面提到过的,WEP的CRC-32码不能保证消息的完整性,所以MIC单向哈希函数被用于替代WEP中的CRC-32校验和。在MIC方案中,接收者和传输者分别计算并比较MIC值。如果它们不匹配,就会认为数据在传输过程中已经被改变,数据包被丢弃。

MIC使用了一种叫做Michael的算法,它通过源和目的地消息认证码(MAC)地址和数据域来计算得到一个64bit的值。通过源和目的地计算得到MIC值,数据包就将发送者及接收者联系起来,这样就可以阻止基于伪造数据包的攻击。