《1 前言》

1 前言

随着公共无线局域网 (PWLAN, public wireless LAN) 的日趋普及与大量应用, 无线传输的安全性已经成为个人用户和运营商关注的焦点。802.11无线局域网标准[1] 采用开发系统认证和共享密钥认证两种方式提供用户认证。但802.11标准的认证协议存在极大的安全问题, 因此IEEE正在制定新的安全增强标准802.11i[2], 针对无线网络原有的安全弱点进行改进。由于IEEE 802.11i的标准尚未制订完成, 在WIFI的推动下, 制订了WPA (WIFI Protected Access) 标准[3], 以IEEE 802.11i草案为蓝图, 去建构出一个符合现今需求、具备更进一步安全性的无线网络环境。我国也提出了自己的无线局域网国家标准, 国家标准在IEEE802.11的基础上提出了新的一种无线局域网媒体访问控制和物理规范, 其中增加了类似于IEEE802.1X[4] 的认证模型——无线局域网鉴别与保密基础结构WAPI。该结构利用椭圆曲线密码 (ECC, elliptic curve cryptosystem) 算法实现数字签名和身份认证。

WAPI[5] (WLAN Authentication and Privacy Infrastructure) 由无线局域网鉴别基础结构WAI (WLAN Authentication Infrastructure) 和无线局域网保密基础结构WPI (WLAN Privacy Infrastructure) 组成。笔者在分析WAPI标准的技术特征和基本架构的基础上, 介绍了东南大学信息安全研究中心开发的无线接入点对WAPI认证机制的实现机理和具体流程, 并对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中, 鉴别器的受控端口处于未鉴别状态, 鉴别器系统拒绝提供服务, 鉴别器实体利用非受控端口和鉴别请求者通信。

《图1》

图1 鉴别系统结构
Fig.1 Authentication system architecture

图1 鉴别系统结构 Fig.1 Authentication system architecture  

当STA关联或重新关联至AP 时, 必须进行相互身份鉴别。若鉴别成功, 则AP允许STA接入, 否则解除其关联。整个鉴别过程包括证书鉴别与会话密钥协商, 如图2所示。

《图2》

图2 接入鉴别流程图
Fig.2 Access authentication process

图2 接入鉴别流程图 Fig.2 Access authentication process  

证书鉴别具体过程如下:当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产生一串随机数据STArandom, 利用AP的公钥加密后, 向AP发出密钥协商请求。AP收到STA发来的密钥协商请求后, 利用本地的私钥解密协商数据, 得到STA产生的随机数据, 然后产生一串随机数据APrandom, 利用STA的公钥加密后, 再发送给STA。STA与AP将自己与对方产生的随机数据进行模2和运算生成会话密钥SessionKey = APrandom⊕STA-random, 利用协商的会话算法对通信数据进行加、解密。

《3 WAPI机制的实现》

3 WAPI机制的实现

支持WAPI机制的无线接入点是在基于Motorola的POWERPC处理器MPC852硬件平台的嵌入式系统上实现的。如图3所示, 天线部分从无线媒介中截获到相应的2.4 GHz频段上的无线信息, 通过低噪声放大等信号调理后送到射频处理单元, 然后在中频变频, AD采样后送到基带处理单元HFA3863进行解扩和其他相关处理。为了保证实时性和可扩展性, MAC层的功能以2种方式实现:数据的接收和发送、数据的加密和完整性校验、载波监听多路访问 (CSMA/CA) 以及和物理层的交互通信等实时性要求比较高的功能在LINUX嵌入式系统的内核中实现;而MAC层的管理模块、WAPI机制认证模块以LINUX嵌入式系统的用户空间程序形式实现。

《图3》

图3 支持WAPI机制的无线接入点框架图
Fig.3 WAPI access point architecture

图3 支持WAPI机制的无线接入点框架图 Fig.3 WAPI access point architecture  

在无线局域网中, 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状态。

《图4》

图4 支持WAPI机制的接入点流程图
Fig.4 WAPI access point flow chart

图4 支持WAPI机制的接入点流程图 Fig.4 WAPI access point flow chart  

《图5》

图5 WAPI鉴别状态机
Fig.5 WAPI authentication state machine

图5 WAPI鉴别状态机 Fig.5 WAPI authentication state machine  

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认证的具体流程。