《1 前言》
1 前言
随着公共无线局域网 (PWLAN, public wireless LAN) 的日趋普及与大量应用, 无线传输的安全性已经成为个人用户和运营商关注的焦点。802.11无线局域网标准
WAPI
《2 WAPI机制》
2 WAPI机制
WAPI的鉴别过程采用WLAN鉴别基础结构 (WAI:WLAN Authentication Infrastructure) , 用于实现STA与AP之间的相互鉴别, 它建立在链路验证过程和关联过程之上。只有鉴别成功后, STA才能安全接入AP。WAI鉴别基础结构采用公钥密码技术, 用于STA与AP之间的相互身份鉴别。该鉴别建立在关联过程之上, 是实现WAPI 的基础。
AP提供两种访问LAN的逻辑通道, 定义为两类端口, 即受控端口与非受控端口, AP提供STA连接到鉴别服务单元 (ASU) 的端口 (即非受控端口) , 确保只有通过鉴别的STA才能使用AP提供的数据端口 (即受控端口) 访问网络。在基于端口的接入控制操作中定义了3个实体:鉴别器实体AE (authenticator entity) 、鉴别请求者实体ASUE (authentication supplicant entity) 和鉴别服务实体ASE (authentication service entity) 。
非受控端口允许鉴别数据在WLAN中传送, 该传送过程不受当前鉴别状态的限制。对于受控制端口, 只有当该端口的鉴别状态为已鉴别时, 才允许协议数据通过。图1给出了鉴别请求者、鉴别器和鉴别服务实体之间的关系及信息交换过程。在图1中, 鉴别器的受控端口处于未鉴别状态, 鉴别器系统拒绝提供服务, 鉴别器实体利用非受控端口和鉴别请求者通信。
当STA关联或重新关联至AP 时, 必须进行相互身份鉴别。若鉴别成功, 则AP允许STA接入, 否则解除其关联。整个鉴别过程包括证书鉴别与会话密钥协商, 如图2所示。
证书鉴别具体过程如下:当STA关联AP时, AP向STA发送鉴别激活以启动整个鉴别过程。STA向AP发出接入鉴别请求, 将STA证书与STA的当前系统时间发往AP。AP收到接入鉴别请求后, 将STA证书、接入鉴别请求时间、AP证书及AP的私钥对它们的签名构成证书鉴别请求发送给ASU。ASU收到证书鉴别请求后, 验证AP的签名、AP证书和STA 证书的有效性。验证完毕后, ASU将STA证书鉴别结果、AP证书鉴别结果和ASU对它们的签名构成的证书鉴别响应返回AP。AP对ASU返回的证书鉴别响应进行签名验证, 得到STA证书的鉴别结果, 根据此结果对STA进行接入控制。AP将收到的证书鉴别响应回送至STA。STA验证ASU 的签名后, 得到AP证书的鉴别结果, 根据该鉴别结果决定是否接入该AP。至此STA与AP之间完成了证书鉴别过程。STA与AP证书鉴别成功之后进行会话密钥协商, 密钥协商过程如下: STA产生一串随机数据STA—random, 利用AP的公钥加密后, 向AP发出密钥协商请求。AP收到STA发来的密钥协商请求后, 利用本地的私钥解密协商数据, 得到STA产生的随机数据, 然后产生一串随机数据AP—random, 利用STA的公钥加密后, 再发送给STA。STA与AP将自己与对方产生的随机数据进行模2和运算生成会话密钥Session—Key = AP—random⊕STA-random, 利用协商的会话算法对通信数据进行加、解密。
《3 WAPI机制的实现》
3 WAPI机制的实现
支持WAPI机制的无线接入点是在基于Motorola的POWERPC处理器MPC852硬件平台的嵌入式系统上实现的。如图3所示, 天线部分从无线媒介中截获到相应的2.4 GHz频段上的无线信息, 通过低噪声放大等信号调理后送到射频处理单元, 然后在中频变频, AD采样后送到基带处理单元HFA3863进行解扩和其他相关处理。为了保证实时性和可扩展性, MAC层的功能以2种方式实现:数据的接收和发送、数据的加密和完整性校验、载波监听多路访问 (CSMA/CA) 以及和物理层的交互通信等实时性要求比较高的功能在LINUX嵌入式系统的内核中实现;而MAC层的管理模块、WAPI机制认证模块以LINUX嵌入式系统的用户空间程序形式实现。
在无线局域网中, WAPI的端口是一个逻辑概念, 确定何时允许数据从IEEE802.11链路经过。每个WAPI 端口都映射一个连接。其流程如图4所示。
WAPI 端口包括一个授控端口和一个非受控端口。其WAPI认证过程通过非授控端口进行, 同时受控端口将阻止2个STA间数据通信。一旦认证执行成功, 授控端口将打开以允许通信数据通过。WAPI请求者和认证者通过WAPI非受控端口交换协议信息。授控端口在Mac-Data-Service 模块中实现。当收到新站点的连接请求后, 先建立物理连接, 接着初始化授控端口, 过滤所有的数据通信。当数据类型为WAPI认证帧时上传到用户态空间的 WAPI-Authentication 模块进行处理, 其他数据包则作丢弃处理。
WAPI认证模块流程以状态机的形式实现。笔者设计了符合WAPI认证协议的认证者状态机, 如图5所示。
WAPI认证模块流程以状态机的形式实现。笔者设计了符合WAPI认证协议的认证者状态机, 如图5所示。
Authenticator状态机有以下的状态:
1) INITIALIZE:
Authenticator状态机处于初始化状态。当portControl为Auto并且portMode不等于portControl时进入此状态, 并且置portMode为Auto。当INITIALIZE结束后, 无条件地进入DISCONNECTED状态。
2) DISCONNECTED:
Authenticator状态机处于未连接状态。由INITIALIZE状态无条件转换进入此状态, 或者由FAILURE状态无条件转换进入此状态, 此时向用户发送激活数据包, 并且置portStatus为Unauthorized。当收到用户发送的接入鉴别请求时进入SERVER-REQUEST状态。
3) SERVER-REQUEST:
Authenticator状态机处于向认证服务器请求状态。由DISCONNECTED状态收到用户的接入鉴别请求进入此状态, 此时向认证服务器发送证书鉴别请求数据包, 并且置rxAuthResp, authSuccess, auth-Failure为FALSE。当收到认证服务器发送的证书鉴别响应时进入SERVER-RESPONSE状态。
4) SERVER-RESPONSE:
Authenticator状态机处于向认证服务器响应状态。由SERVER-REQUEST状态收到认证服务器发送的证书鉴别响应进入此状态, 此时向用户发送接入鉴别响应数据包, 并且置rxServerResp, aSuccess, aFailure为FALSE。当认证服务器认证成功时进入SUCCESS状态, 当认证服务器认证失败时进入FAILURE状态。
《5) SUCCESS:》
5) SUCCESS:
Authenticator状态机处于用户认证成功状态。由SERVER-RESPONSE状态置aSuccess为TRUE时进入此状态, 置authSuccess为TRUE, portStatus为Authorized。当收到用户的密钥协商的数据包时进入KEY-AGREEMENT状态。
6) FAILURE:
Authenticator状态机处于用户认证失败状态。由SERVER-RESPONSE状态置aFailure为TRUE时进入此状态, 置authFailure为TRUE, portStatus为Unauthorized。无条件转换到DISCONNECTED状态。
《7) KEY-AGREEMENT:》
7) KEY-AGREEMENT:
Authenticator状态机处于与用户密钥协商的状态。由SUCCESS状态得到用户的密钥协商请求数据包时进入此状态或由FORCE-AUTH状态得到用户的密钥协商请求数据包时进入此状态, 置rxKey为FALSE, 并且发送密钥协商响应数据包, 处理密钥。
8) FORCE-AUTH:
Authenticator状态机处于强制认证通过状态。当portControl为Force-Authorized并且portMode不等于portControl时进入此状态, 并且置portMode为Force-Authorized, portStatus为Authorized。当收到用户的密钥请求数据包转换到KEY-AGREEMENT状态。
《9) FORCE-UNAUTH:》
9) FORCE-UNAUTH:
Authenticator状态机处于强制认证不通过状态。当portControl为ForceUnauthorized并且portMode不等于portControl时进入此状态, 并且置portMode为ForceUnauthorized, portStatus为Unauthorized。
《4 结语》
4 结语
目前的WAPI提供相对于过去WEP加密机制而言, 采用基于证书的认证协议和对称加密算法提供无线网络保护, 随着目前无线网络的日趋普及, 对于企业与注重安全性的运营商而言, 具备WAPI机制的无线网络设备, 在未来将会发挥比较重要的作用。在讨论WAPI的技术特征和基本架构的基础上, 笔者提出了支持WAPI机制的无线接入点实现方案, 详细描述了AP的软件实现框架结构和端口控制的流程图。最后通过状态机的方式实现了WAPI认证的具体流程。