WPA2协议由用户认证、密钥协商和数据通信组成。
① 用户认证。为满足不同安全要求用户的需要,WPA2协议定义了企业和个人2种应用模式,根据不同的应用模式,认证方式也有所不同。
企业模式:对于大型企业的网络,STA(station,客户端)提供认证所需的用户名和密码,采用RADIUS(remote authentication dial-in user servic,远程拨号认证服务)服务器与STA进行双向的身份验证。验证通过后,RADIUS 服务器通知AP(wireless access point,无线访问接入点)允许STA接入网络,并且RADIUS 服务器与STA确定一个MSK(master session key,主会话密钥)。此后,RADIUS 服务器通过安全的有线网通道发送该MSK到AP。MSK是生成PMK(pairwise master key,成对主密钥)的基础。
个人模式:对于中小型企业或家庭用户的网络,不需要专门的RADIUS服务器来认证,而是采用一种简化模式WPA2-PSK(wireless protected access2-pre shared key,WPA2预共享密钥),仅要求在每个WLAN节点(AP、无线路由器、网卡等)预先输入一个密钥即可实现。身份验证以预先设定好的静态PSK进行,此密钥需要手动进行传递,由passphrase(连接Wi-Fi热点时需要输入的密码)和SSID(service set identifier,服务集标识即无线网络名)生成。在该模式下,PMK=PSK。
② 密钥协商。身份认证通过后,STA和AP进行WPA2的4次握手过程,在握手过程中,STA与AP均需确认对方是否持有与自己一致的PMK,如不一致,握手过程宣告失败。此外,AP与STA需经过协商由PMK生成PTK(pairwise transient key,成对临时密钥)。生成PTK所需的5元素为:PMK、AP生成的随机数、STA生成的随机数、STA的MAC(media access control,介质访问控制)地址以及AP的MAC地址。最终生成的PTK被拆分为3个部分:密钥确认密钥KCK(key confirmation key)、密钥加密密钥KEK(key encryption key)以及临时密钥TK(temporal key),KCK和KEK分别用于握手消息的完整性验证与加密传输,TK则用于通信数据的加密和完整性验证。
③ 数据通信。在数据通信过程中,可利用协商好的密钥对无线网络帧进行安全处理,以便对数据进行机密性和完整性保护。数据加密和消息验证码计算分别使用了CCMP(counter CBC-MAC protocol,计数器模式密码块链消息完整码协议)的CTR mode(advanced encryption standard in counter mode,计数器模式下的AES)加密算法和CBC-MAC mode(cipher block chaining message authentication code,密码分组链接模式消息认证码)算法。