用户接入认证实现了对接入用户的身份认证,为网络服务提供了安全保护。接入认证主要有802.1x接入认证,MAC接入认证以及PSK认证。其中802.1x接入认证和MAC接入认证可以支持对有线用户和WLAN无线接入用户进行身份认证,而PSK认证则是专门为WLAN无线用户提供认证的一种方法。
WLAN服务应用中,对于WPA用户或者RSN用户需要进行EAPOL-Key密钥协商。根据WLAN协议服务定义,对于WPA服务和RSN服务需要和802.1x接入认证以及PSK接入认证配合使用:在802.11链路协商的过程中,可以确定用户使用的接入认证算法;并且在链路协商成功后触发对用户的接入认证;随后需要为该接入用户的协商密钥;之后WLAN客户端才才可以访问WLAN网络。
PSK认证
WPA和WPA2无线接入都支持PSK认证,无线客户端接入无线网络前,需要配置和AP设备相同的预共享密钥。
四次握手(4-Way Handshake)密钥协商通过802.1X的4个密钥报文交互为无线链路在无线终端和AP侧动态协商出私有密钥,而预共享密钥将作为密钥协商的种子密钥使用。在协商过程中,种子密钥将被双方进行验证,只有密钥设置相同,密钥协商才可以成功,也就是无线用户成功通过PSK接入认证;否则无线用户PSK接入认证失败,无线用户链路将被断开。
PSK接入认证为IEEE802.11i定义的一种新的接入认证方式,该认证方式仅支持WLAN接入客户端。
PSK认证需要实现在客户端和设备端配置相同的预共享密钥,而具体的认证过程实际上在密钥协商过程(EAPOL-Key密钥协商过程)中完成。在密钥协商过程中,预共享密钥将作为输入生成密钥协商使用的PMK。
可以通过是否能够对协商的消息成功解密,来确定本端配置的预共享密钥是否和对端配置的预共享密钥相同,完成设备端和客户端的互相认证。
如果密钥协商成功,则表明PSK接入认证成功;如果密钥协商失败,则可以认为PSK接入认证失败。
在WLAN应用中,PSK接入认证可以和MAC接入认证配置使用;但是对于一个客户端不能同时进行PSK接入认证和802.1x接入认证。在WLAN客户端和WLAN建立链路协商过程中,WLAN会为接入用户选择所使用的认证方式。这个在802.11用户接入过程的描述中,会给出相应的描述。
密钥协商
密钥协商为数据安全提供有力保障,为了实现WLAN数据的安全,IEEE802.11i和IEEE 802.1X定义了EAPOL-Key密钥协商机制(也称4-Way Handshake),WLAN就是用该机制实现WLAN设备和WLAN客户端的密钥协商,协商出来的密钥将作为802.11数据传输过程中的加密/解密密钥。
对于支持WPA和RSN服务的WLAN,需要进行EAPOL-Key密钥协商。密钥协商过程在逻辑上可以看作接入认证的一部分,所以只有在EAPOL-Key密钥协商成功以后,接入认证才会打开端口,允许用户的报文通过。
WLAN密钥协商主要包括四次握手密钥协商和组密钥协商过程,这两种密钥协商都通过EAPOL-Key报文协商实现。WLAN客户端和WLAN设备端使用四次握手机制协商该客户端的单播数据报文使用的密钥,而WLAN设备端可以通过组密钥协商过程将广播和组播使用的密钥通知所有的WLAN客户端。
下图描述了四次握手密钥协商过程,该图只给出了关键参数描述,详细的处理请参见IEEE802.11i的描述:
PSK 两个作用:前期的认证和后期协商的密钥用于传输过程中的数据加密和解密
MAC接入认证
MAC地址认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法,它不需要用户安装任何客户端软件。设备在首次检测到用户的MAC地址以后,即启动对该用户的认证操作。认证过程中,也不需要用户手动输入用户名或者密码。在WLAN网络应用中,MAC认证需要预先获知可以访问无线网络的终端设备MAC地址,所以一般适用于用户比较固定的、小型的无线网络,例如家庭、小型办公室等环境。
MAC地址认证分为以下两种方式:
l 本地MAC地址认证:当选用本地认证方式进行MAC地址认证时,直接在设备上完成对用户的认证,此时需要在设备上配置本地用户名和密码。通常情况下,可以采用MAC地址作为用户名,需要事先获知无线接入用户的MAC地址并配置为配置的本地用户名。无线用户接入网络时,只有存在用户的MAC地址可以认证通过,其它用户将被拒绝接入。
图1-7 本地MAC地址认证
l 通过RADIUS服务器进行MAC地址认证:当选用RADIUS服务器认证方式进行MAC地址认证时,设备作为RADIUS客户端,与RADIUS服务器配合完成MAC地址认证操作。当MAC接入认证发现当前接入的客户端为未知客户端,AP设备作为RADIUS客户端,会与RADIUS服务器完成MAC地址认证。在RADIUS服务器完成对该用户的认证后,认证通过的用户可以访问无线网络,而且RADIUS服务器可以下发相应的授权信息。
图1-8 本地MAC地址认证
采用RADIUS服务器进行MAC地址认证时,可以通过在各无线服务下分别指定各自的domain域,将不同SSID的MAC地址认证用户信息发送到不同的远端RADIUS服务器。
以设备端PAE对EAP报文进行中继转发为例,IEEE 802.1X认证系统的基本业务流程如下图所示(该种认证为典型的有线应用,无线局域网也可以支持该种认证)。
在WLAN应用网络中,WLAN客户端Station为客户端PAE,提供WLAN服务的设备为设备端PAE。设备端通过产生一个随机Challenge发送给客户端;客户端会使用配置的密钥对该Challenge进行加密处理并将处理后的信息返回设备端;设备端根据客户端返回的加密后的Challenge以及原始的Challenge进行比较判断,设备端完成对客户端的单项认证。
图1 IEEE 802.1X认证系统的EAP方式业务流程
为了提高WLAN服务的数据安全性,IEEE 802.1x和IEEE802.11i中使用了EAPOL-Key的协商过程,设备端和客户端实现动态密钥协商和管理;同时通过802.1x协商,客户端PAE和设备端PAE协商相同的一个种子密钥PMK(参见IEEE802.11i),进一步提高了密钥协商的安全性。802.1x支持多种EAP认证方式,其中EAP-TLS为基于用户证书的身份验证。EAP-TLS 是一种相互的身份验证方法,也就是说,客户端和服务器端进行相互身份验证。在EAP-TLS 交换过程中,远程访问客户端发送其用户证书,而远程访问服务器发送其计算机证书。如果其中一个证书未发送或无效,则连接将终断。下图描述了EAP TLS认证方式过程:
在无线局域网应用中,当EAP TLS认证成功时,客户端PAE和Radius服务器会对应产生公用的对称的Radius Key,Radius服务器会在认证成功消息中将Radius Key通知设备端PAE。客户端PAE和设备端PAE会根据该Radius Key,客户端MAC地址以及设备端MAC地址,产生种子密钥PMK以及对应的索引PMKID。根据IEEE802.11i协议定义的算法(本文档不再对该算法进行描述,可以直接参见相应的协议),设备端PAE和客户端PAE可以获得相同的PMK,该种子密钥将在密钥协商过程(EAPOL-Key密钥协商)中使用(具体的密钥协商随后将进行专门的介绍)。