无线局域网标准之WAPI
无线局域网标准之WAPI
WAPI概述
WAPI (Wireless LAN Authentication and Privacy Infrastructure) 是无线局域网鉴别和保密基础结构,是一种安全协议,同时也是中国无线局域网安全强制性标准,最早由西安电子科技大学综合业务网理论及关键技术国家重点实验室提出。
当前全球无线局域网领域仅有的两个标准,分别是美国行业标准组织提出的IEEE 802.11系列标准(包括802.11a/b/g/n/ac等),以及中国提出的WAPI标准。WAPI是我国首个在计算机宽带无线网络通信领域自主创新并拥有知识产权的安全接入技术标准。
本方案已由国际标准化组织ISO/IEC授权的机构IEEE Registration Authority(IEEE注册权威机构)正式批准发布,分配了用于WAPI协议的以太类型字段,这也是中国在该领域唯一获得批准的协议。
与WIFI的单向加密认证不同,WAPI双向均认证,从而保证传输的安全性。WAPI安全系统采用公钥密码技术,鉴权服务器AS负责证书的颁发、验证与吊销等,无线客户端与无线接入点AP上都安装有AS颁发的公钥证书,作为自己的数字身份凭证。当无线客户端登录至无线接入点AP时,在访问网络之前必须通过鉴别服务器AS对双方进行身份验证。根据验证的结果,持有合法证书的移动终端才能接入持有合法证书的无线接入点AP。
无线局域网鉴别与保密基础结构(WAPI)系统中包含以下部分:
- WAI (WLAN Authentication Infrastructure): 无线局域网鉴别基础结构,用于无线局域网中身份鉴别和密钥管理的安全方案,实现了整个基础网络的集中用户管理,从而满足更多用户和更复杂的安全性要求。
- WPI (WLAN Privacy Infrastructure): 无线局域网保密基础结构,用于无线局域网中数据传输保护的安全方案,包括数据加密、数据鉴别和重放保护等功能,从而实现设备的身份鉴别、链路验证、访问控制和用户信息在无线传输状态下的加密保护。
WAPI的系统组成
在一个典型的WAPI系统中,如下图所示,WAPI用户通过AP接入有线IP网络。首先,WAPI用户与AP进行802.11链路协商,之后AP为该用户触发WAI鉴别过程,配合AS完成与用户的双向认证。当认证通过后,AP会发起对该用户的密钥协商,并使用协商出的密钥通过WPI向该WAPI用户提供加、解密服务。
WAPI系统典型组网图:
所涉及到的基本概念:
| 概念 | 全称及中文解释 | 说明 |
|-|-|:-|
| AC | Access Controller,接入控制器 | 用于对WLAN中与之关联的FIT AP进行控制和管理的设备 |
| AP | Access Point,接入点 | 是指任何一个能通过无线介质为无线终端提供分布式访问服务的实体 |
| AS | Authentication Server,鉴别服务器 | 用于对用户和设备证书进行身份鉴别等,是基于公钥密码技术的WAI中重要的组成部分 |
| FAT AP | Fat Access Point,胖AP | 传统AP,除了提供基本的无线连接功能外,还能提供安全、管理和性能增强功能。FAT AP不能与AC关联使用 |
| FIT AP | FIT Access Point,瘦AP | 区别于传统的FAT AP,只提供可靠、高性能的无线连接功能,而剥离了其它功能。FIT AP必须与AC关联使用,本文中的AP均指FIT AP |
| STA | Station,站点 | 即无线终端,本文中是指带有支持WAPI协议无线网卡的PC、便携式笔记本电脑等无线终端 |
| WAPI user | WAPI用户 | 是指使用WAPI安全模式进行认证的用户,系统所支持的最大WAPI用户数量为1024个。本文中也称为STA |
WAP的工作过程
在一个采用了WAPI安全关联机制的WLAN中,当STA需要访问该WLAN时,通过被动侦听AP的信标(Beacon)帧或主动发送探询帧(主动探询过程如图所示)以识别AP所采用的安全策略:
- 若AP采用证书鉴别方式,AP将发送鉴别激活分组启动证书鉴别过程,当证书鉴别过程成功结束后,AP和STA再进行单播密钥协商和组播密钥通告;
- 若AP采用预共享密钥鉴别方式,AP将与STA直接进行单播密钥协商和组播密钥通告。
主动探询过程:
WAPI的鉴别方式
WAPI支持如下两种鉴别方式:证书鉴别方式和预共享密钥鉴别方式。
证书鉴别方式
数字证书是一种经PKI(Public Key Infrastructure,公钥基础设施)证书授权中心签名的、包含公开密钥及用户相关信息的文件,是网络用户的数字身份凭证。WAPI系统中所使用的用户证书为数字证书,通过AS对用户证书进行验证,可以唯一确定WAPI用户的身份及其合法性。
证书鉴别是基于STA和AP双方的证书所进行的鉴别。鉴别前STA和AP必须预先拥有各自的证书,然后通过AS对双方的身份进行鉴别,根据双方产生的临时公钥和临时私钥生成BK,并为随后的单播密钥协商和组播密钥通告做好准备。证书鉴别的过程如图3所示。
证书鉴别过程:
在进行证书鉴别时,有如下两种证书鉴别模式可供选择:
标准鉴别模式: 即基于WAPI标准协议的UDP模式。在该模式下,AP与AS之间的WAI协议报文将通过普通的UDP方式进行传输,最终完成证书鉴别。该模式不支持对用户的计费功能。
AAA鉴别模式: 是H3C私有的一种鉴别模式。在该模式下,AP与AS之间通过RADIUS报文完成证书鉴别,WAI协议报文将承载于RADIUS协议报文之上(要求RADIUS服务器支持WAPI功能),作为RADIUS报文的一个私有属性。此外,该模式还能够提供对用户的授权和计费功能(需要RADIUS服务器配合)。
预共享密钥鉴别方式
预共享密钥鉴别是基于STA和AP双方的密钥所进行的鉴别。鉴别前STA和AP必须预先配置有相同的密钥,即预共享密钥。鉴别时直接将预共享密钥转换为BK,然后进行单播密钥协商和组播密钥通告。
WAPI的密钥管理
STA与AP之间交互的单播数据利用单播密钥协商过程所协商出的单播加密密钥和单播完整性校验密钥进行保护;AP利用自己通告的、由组播主密钥导出的组播加密密钥和组播完整性校验密钥对其发送的广播/组播数据进行保护,而STA则采用AP通告的、由组播主密钥导出的组播加密密钥和组播完整性校验密钥对收到的广播/组播数据进行解密。
首先要进行单播密钥的协商,其过程如图所示。
单播密钥协商过程:
当单播密钥协商完成后,再使用单播密钥协商过程所协商出的密钥进行组播密钥的通告,其过程如图所示。
组播密钥通告过程:
Linux内核对WAPI的支持
WAPI自2003年成为强制国家标准后,由于其标准的专有性质和SMS4加密算法的分类问题,在Linux系统上的实现遇到了很多困难。随着SMS4加密算法的解密和WAPI国际标准化进程的推进,尤其是2010年WAPI ISO提案获得多数支持后,WAPI在Linux上的实现变得可能。
组件
对于WAPI主要有2个组件的更改:
- wpa_supplicant更改 -这尚未实现
- mac80211 更改 -已经合并,已经开始在某些硬件中支持SMS4加密算法。
cfg80211 WAPI API
你可以通过cfg80211来使用WAPI
cfg80211 WAPI managed mode API
All APIs required for WAPI for STA mode are in place on cfg80211/nl80211. Refer to NL80211_ATTR_CONTROL_PORT_ETHERTYPE and NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT. You would give those to the assoc() or connect() command to replace the control port protocol, which defaults to EAPOL, by the WAPI protocol (and the WAPI requirement to not encrypt). Your supplicant will use this protocol to negotiate WPI-SMS4 keys, which to cfg80211 is just a regular cipher, however mac80211 doesn’t implement it in software, so make sure the device supports it as one of the ciphers, the cipher suite is 00-14-72:1 (0x00147201 in cfg80211).
cfg80211 WAPI AP mode API#
Same as managed mode, the attributes are used with the crypto settings given when setting the beacon (aka starting AP)