WPA/WPA2
由于WEP共享密钥认证采用的是基于RC4对称流的加密算法,需要预先配置相同的静态密钥,无论从加密机制还是从加密算法本身,都很容易受到安全威胁。为了解决这个问题,在802.11i标准没有正式推出安全性更高的安全策略之前,Wi-Fi联盟推出了针对WEP改良的WPA。WPA的核心加密算法还是采用RC4,在WEP基础上提出了临时密钥完整性协议TKIP(Temporal Key Integrity Protocol)加密算法,采用了802.1X的身份验证框架,支持EAP-PEAP、EAP-TLS等认证方式。随后802.11i安全标准组织又推出WPA2,区别于WPA,WPA2采用安全性更高的区块密码锁链-信息真实性检查码协议CCMP(Counter Mode with CBC-MAC Protocol)加密算法。
为了实现更好的兼容性,在目前的实现中,WPA和WPA2都可以使用802.1X的接入认证、TKIP或CCMP的加密算法,他们之间的不同主要表现在协议报文格式上,在安全性上几乎没有差别。
综上所述,WPA/WPA2安全策略涉及了链路认证阶段、接入认证阶段、密钥协商和数据加密阶段。
链路认证阶段链路认证分为开放式系统认证和共享式密钥认证,详细内容请参见STA接入过程中的“链路认证阶段”。
WPA/WPA2仅支持开放式系统认证。
接入认证阶段WPA/WPA2分为企业版和个人版:WPA/WPA2企业版:采用WPA/WPA2-802.1X的接入认证方式,使用RADIUS服务器和可扩展认证协议EAP(Extensible Authentication Protocol)进行认证。用户提供认证所需的凭证,如用户名和密码,通过特定的用户认证服务器(一般是RADIUS服务器)来实现对用户的接入认证。
在大型企业网络中,通常采用WPA/WPA2企业版的认证方式。
说明:关于802.1X的原理描述,请参见《配置指南-安全》中的“802.1X认证”。
WPA/WPA2支持基于EAP-TLS和EAP-PEAP的802.1X认证方式,其认证流程如图4-1和图4-2所示。
图4-1 基于EAP–TLS的802.1X认证流程图
图4-2 基于EAP-PEAP的802.1X认证流程图
WPA/WPA2个人版:对一些中小型的企业网络或者家庭用户,部署一台专用的认证服务器代价过于昂贵,维护也很复杂,因此,WPA/WPA2提供了一种简化的模式,即WPA/WPA2预共享密钥(WPA/WPA2-PSK)模式,它不需要专门的认证服务器,仅要求在每个WLAN节点(WLAN服务端、无线路由器、网卡等)预先输入一个预共享密钥即可。只要密钥吻合,客户就可以获得WLAN的访问权。由于这个密钥仅仅用于认证过程,而不用于加密过程,因此不会导致诸如使用WEP密钥来进行802.11共享认证那样严重的安全问题。
802.1X认证可以支持对有线用户和无线用户进行身份认证,而PSK认证则是专门针对无线用户的认证方法。
PSK认证需要事先在STA和AP端配置相同的预共享密钥,然后通过是否能够对协商的消息成功解密,来确定STA配置的预共享密钥是否和AP配置的预共享密钥相同,从而完成STA和AP的互相认证。如果密钥协商成功,表明PSK接入认证成功;如果密钥协商失败,表明PSK接入认证失败。
密钥协商阶段在802.11i里定义了两种密钥层次模型,一种是成对密钥层次结构,主要用来保护STA与AP之间往来的数据;一种是群组密钥层次结构,主要用来描述STA与AP之间的广播或组播数据。
密钥协商阶段是根据接入认证生成的成对主钥PMK(Pairwise Master Key)产生成对临时密钥PTK(Pairwise Transient Key)和群组临时密钥GTK(Group Temporal Key)。PTK用来加密单播报文,GTK用来加密组播和广播无线报文。
密钥协商包括单播密钥协商和组播密钥协商过程。
单播密钥协商过程
密钥协商过程也叫做四次握手过程,是通过EAPOL-Key报文进行信息交互的,如图4-3所示。图4-3 单播密钥协商流程图
- AP发送EAPOL-Key帧给STA,帧中包含随机数ANonce。
- STA根据STA与AP的MAC地址、PMK、ANonce和SNonce计算出PTK,STA发送EAPOL-Key帧给AP,帧中包含SNonce、RSN信息元素和EAPOL-Key帧的消息完整码MIC(Message Integrity Code)。AP根据PMK、ANonce、SNonce、AP的MAC地址、STA的MAC地址计算出PTK,并校验MIC,核实STA的PMK是否和自己的一致。
- AP发送EAPOL-Key帧给STA,并通知STA安装密钥,帧中包含Anonce、RSN信息元素、帧MIC、加密过的GTK。
- STA发送EAPOL-Key帧给AP,并通知AP已经安装并准备开始使用加密密钥。AP收到后安装加密密钥。
组播密钥协商过程
组播密钥协商过程也叫做二次握手过程,此过程是在四次握手产生PTK并安装密钥后开始进行的,如图4-4所示。图4-4 组播密钥协商流程图
- AP计算出GTK,用单播密钥加密GTK,发送EAPOL-Key帧给STA。
- STA收到EAPOL-Key帧后,验证MIC,解密GTK,安装组播加密密钥GTK,并发送EAPOL-Key确认消息给AP。AP收到EAPOL-Key确认帧后,验证MIC,安装GTK。
数据加密WPA/WPA2支持TKIP和CCMP两种加密算法。
TKIP加密算法
区别于WEP共用一个共享密钥,TKIP采用一套动态密钥协商和管理方法,每个无线用户都会动态地协商一套密钥,保证了每个用户使用独立的密钥。每个用户的密钥是由密钥协商阶段协商出来的PTK、发送方的MAC地址和报文序列号计算生成的,通过这种密钥混合的防护方式来防范针对WEP的攻击。
TKIP采用信息完整性校验机制,一方面保证接收端接收报文的完整性;另一方面保证接收端和发送端数据的合法性。信息完整性校验码是通过密钥协商阶段协商出来的MIC Key、目的MAC地址、源MAC地址和数据包计算生成的。
CCMP加密算法
区别于WEP和TKIP采用的流密码机制,CCMP采用了以高级加密标准AES(Advanced Encryption Standard)的块密码为基础的安全协议。这种基于块密码的加密技术克服了RC4算法本身的缺陷,安全性更高。