安全问题一直是困扰在WLAN灵活便捷的优势之上的阴影,已成为阻碍WLAN进入信息化应用领域的最大障碍。国际标准为此采用了WEP、WPA、802.1x、802.11i、VPN等方式来保证WLAN的安全,但都没有从根本上解决WLAN的安全问题。我国在2003年5月份提出了无线局域网国家标准GB15629.11,引入一种全新的安全机制—WAPI,使WLAN的安全问题再次成为人们关注的焦点。 WAPI机制已由ISO/IEC授权的IEEE Registration Authority审查获得认可,并分配了用于该机制的以太类型号(IEEE EtherType Field)0x88b4,这是我国在这一领域向ISO/IEC提出并获得批准的唯一的以太类型号。
WAPI安全机制
无线局域网鉴别与保密基础结构WAPI(WLAN Authentication and Privacy Infrastructure)由无线局域网鉴别基础结构WAI(WLAN Authentication Infrastructure)和无线局域网保密基础结构WPI(WLAN Privacy Infrastructure)组成。其中,WAI采用基于椭圆曲线的公钥证书体制,无线客户端STA和接入点AP通过鉴别服务器AS进行双向身份鉴别。而在对传输数据的保密方面,WPI采用了国家商用密码管理委员会办公室提供的对称密码算法进行加密和解密,充分保障了数据传输的安全。
WAPI充分考虑了市场应用,根据无线局域网应用的不同情况,可以以单点式、集中式等不同的模式工作,同时也可以和现有的运营商系统结合起来,支持大规模的运营级服务。此外,用户的使用场景不同,WAPI的实现和工作方式也略有诧异。WAPI的用户使用场景主要有以下几种:
1. 企业级用户应用场景:有AP和独立的AS(鉴别服务器),内部驻留ASU(鉴别服务单元),实现多个AP和STA证书的管理和用户身份的鉴别;
2. 小公司和家庭用户应用场景:有AP,ASU可驻留在AP中;
3. 公共热点用户应用场景:有AP,ASU驻留在接入控制服务器中;
4. 自组网用户应用场景:无AP,各STA在应用上是对等的,采用共享密钥来实现鉴别和保密。
鉴别器实体AE:驻留在AP中,在接入服务前,提供鉴别操作。
鉴别请求者实体ASUE:驻留在STA中,需通过鉴别服务单元ASU进行鉴别。
鉴别服务实体ASE:驻留在ASU中,为鉴别器和鉴别请求者提供相互鉴别。
受控与非受控端口可以是连接到同一物理端口的两个逻辑端口,所有通过物理端口的数据都可以到达受控端口和非受控端口,并根据鉴别状态决定数据的实际流向。
受控端口:只有当该端口的鉴别状态为已鉴别时,才允许协议数据通过。只有通过鉴别的STA才能使用的AP提供的数据端口为受控端口。
非受控端口:协议数据的传送不受当前鉴别状态的限制。AP提供STA连接到鉴别服务单元ASU的端口即为非受控端口。
需要说明的是,除鉴别数据外,系统中AP与STA之间的网络协议数据的交换都是通过一个或多个受控端口来实现的。受控端口状态由系统鉴别控制参数确定。
另一个重要概念是鉴别服务单元ASU,前面已经提到,在整个WAI鉴别过程中,ASU作为第三方起着提供鉴别服务的作用。此外,ASU还担当着为STA和AP提供证书的颁发、认证、吊销等功能。一个ASU可以管理一个或多个BSS,在同一个ASU的管理范围内,STA与AP之间需通过ASU实现证书的双向认证。
WAI鉴别基础结构
在BSS中,当STA关联或重新关联至AP时,必须进行相互身份鉴别。若鉴别成功,则AP允许STA接入,否则解除其链路验证。整个鉴别过程包括证书鉴别、单播密钥协商与组播密钥通告。
STA与AP之间的鉴别数据分组利用以太类型字段为0x88B4的WAPI协议传送,AP与ASU之间的鉴别数据报文通过端口号为3810的UDP套接口传输。
在WAI的整个过程中,涉及到数种加/解密和消息摘要等算法,可归纳如下:
基于WAI的安全接入控制分类
根据WLAN的不同类型,可将基于WAI的安全接入控制作以下分类。
BSS(有AP)
WAI典型范例,采用公钥密码技术实现STA与AP之间的相互身份鉴别,证书鉴别成功后分单播密钥协商和组播密钥通告。
IBSS(Ad Hoc,无AP)
WAI采用共享密钥完成STA之间的相互身份鉴别。网络中各个STA约定一个共享密钥,用户通过设置(输入)共享密钥接入网络,和其他用户交换信息。用户输入的为共享主密钥。
WDS模式
WAI采用共享密钥完成STA之间的相互身份鉴别。网络中各个STA约定一个共享密钥,用户通过设置(输入)共享密钥接入网络,和其他用户交换信息。用户输入的为共享主密钥。
WPI WPI采用国家密码管理委员会办公室批准的用于WLAN的SSF43对称分组加密算法对MAC子层的MSDU进行加/解密处理,有两种工作模式:用于数据保密的OFB模式和用于完整性校验的CBC-MAC模式。
WPI封装过程
数据发送时,WPI的封装过程为:
1.利用加密密钥和数据分组序号PN,通过工作在OFB模式的加密算法对MSDU(包括SNAP)数据进行加密,得到MSDU密文;
2.利用完整性校验密钥与数据分组序号PN,通过工作在CBC-MAC模式的校验算法对完整性校验数据进行计算,得到完整性校验码MIC;
3.封装后再组帧发送。
WPI解封装过程
数据接收时,WPI的解封装过程为:
1.判断数据分组序号PN是否有效,若无效,则丢弃该数据;
2.利用完整性校验密钥与数据分组序号PN,通过工作在CBC-MAC模式的校验算法对完整性校验数据进行本地计算,若计算得到的值与分组中的完整性校验码MIC不同,则丢弃该数据;
3.利用解密密钥与数据分组序号PN,通过工作在OFB模式的解密算法对分组中的MSDU密文进行解密,恢复出MSDU明文;
4.去封装后将MSDU明文递交至上层处理。
结语
目前,我们已用软件实现了STA的WAPI机制,运行结果完全能够满足GB15629.11标准的要求。此外,我们还使用硬件描述语言Verilog HDL对WPI的封装和解封装过程进行了RTL描述,并从数字电路设计的角度对其进行了优化。总体而言,WPI硬件仿真结果较WPI软件运行在时间上体现了强大的优势,这对于保证无线局域网数据通信的高速性无疑是很重要的一点。当然,WPI软件可以与驱动程序相结合,体现低成本和易维护的特点。对于WAI,整个过程处在AP和STA之间网络协议数据通信之前,因此对时间的要求要略逊一些,而过程相对繁杂,笔者认为更宜用软件实现。 |