一、概述
WPS全称为Wi-Fi Protected Setup,是WSC规范早期的名字,WSC全称为Wi-Fi Simple Configuration,该项技术用于简化SOHO环境中无线网络的配置和使用。举一个简单的例子,配置无线网络环境时,网管需要首先为AP设置SSID、安全属性(如身份认证方法、加密方法等)。然后他还得把SSID、密码告诉给该无线网络的使用者。可是这些安全设置信息对普通大众而言还是有些复杂。而有了WSC之后,用户只需输入PIN码(Personal Identification Number,一串数字),或者摁一下专门的按钮(WSC中,该按钮被称为Push Button)甚至用户只要拿着支持NFC的手机到目标AP(它必须也支持NFC)旁刷一下,这些安全设置就能被自动配置好。有了这些信息,手机就能连接上目标无线网络了。显然,相比让用户记住SSID、密码等信息,WSC要简单多了。WFA推出WPA后不久,WPS规范便被推出。随着WPA2的出现,WFA又制订了WPS的升级版,即WSC。
二、术语介绍
WSC规范定义了三个核心组件,如下图所示:
1. Enrollee的角色类似于client端,它向Registrar发起注册请求;
2. Registrar用于检查Enrollee的合法性,类似于server端,另外,Registrar还能对AP进行配置;
3. AP也需要注册到Registar中,所以,从Registrar角度来看,AP也是Enrollee;
4. AP和Registrar以及Enrollee三者交互,Enrollee从Registrar那获取AP的安全配置信息,然后Enrollee利用该信息加入AP提供的无线网络。
注意,这三个组件只是逻辑上的概念。在具体实现时,AP和Registrar可以由同一个实体实现,也可分别由不同实体来实现。
支持WSC的无线路由器兼具AP和Registrar的功能,这种AP在规范中被称为Standalone AP。Android智能手机扮演Enrollee的角色。
如果AP和Registrar分别由不同实体来实现,这种Registrar也被称为External Registrar。
三大组件之外,规范还定义了组件之间的交互接口。上图中的E、M、A代表三个核心组件之间交互的接口,这些接口定义了交互双方需要实现的一些功能。简要描述如下:
1. STA中的Interface E包括的功能有
1) STA首先要寻找周围支持WSC功能的Standalone AP。此步骤将通过发送携带WSC IE的Probe Request帧来实现;
2) STA关联到Standalone AP后(注意,仅仅是关联成功。由于缺乏安全配置信息,STA无法和AP开展RSNA流程,即四次握手等工作),双方需要借助Registration Protocol协议(以后简称RP协议)来协商安全配置信息。所以,STA必须实现RP协议的Enrollee的功能;
2. Standalone AP中Interface E包括的功能有:
1) 回复携带WSC IE的Probe Response帧以表明自己支持WSC功能;
2) 实现RP协议定义的Registrar的功能。另外,STA和AP可选择实现某种Out-of-Band交互手段,规范中提到的两种手段包括NFC和USB;
3. 对于Interface A来说:
1) STA必须实现802.1X supplicant功能,并支持EAP-WSC算法;
2) Standalone AP需发送携带WSC IE的Beacon帧来表示自己支持WSC功能。同时,AP还必须支持802.1X authenticator功能,并实现EAP-WSC算法;
4. 由于Standalone AP已经集成了三大组件中的AP和Registrar,所以Interface M的功能几乎简化为0。
WSC的核心内容集中在WSC IE以及RP协议中。
三、Registration Protocol
当STA和Standalone AP采用In-Band交互方法时,RP协议的完整交互流程如图所示:
将RP协议分为两个部分,由“Enter passworkd of Enrollee”行隔开,其中:
1. Discovery Phase为上半部分,在此阶段中,STA借助Beacon帧或Probe Request帧搜索周围的AP。对开启了WSC功能的AP来说,这些帧中都必须携带WSC IE。而没有携带WSC IE的帧则表明发送者不支持或者未开启WSC功能。Discovery Phase结束后,STA将确定一个目标AP;
2. 如果是PIN方式,此时用户需要将STA显示的PIN码输入到目标AP的设置页面;
3. STA将关联到目标AP。和非WSC流程不一样的是,STA和AP不会开展4次握手协议,而是先开展EAP-WSC流程;
4. EAP-WSC流程从EAPOL-Start开始,结束于EAP-Fail帧,一共涉及14次EAPOL/EAP帧交换。在这14次帧交互过程中,STA和AP双方将协商安全配置信息(例如采用何种身份验证方法、何种加密方法,以及PSK等)。另外,这14次帧中,M1到M8属于EAP-WSC算法的内容,它们用于STA和AP双方确认身份以及传输安全配置信息;
5. 最后EAP-WSC最终以EAP-Fail帧结束,但STA已经和AP借助M1到M8成功完成了安全信息协商。所以,STA已经获得了AP的安全配置情况。另外,由于STA收到的是EAP-Fail帧,所以它会断开和AP的连接(AP会发送Deauthentication帧给STA);
6. STA将利用协商好的安全配置信息重新和AP进行关联,后续流程和非WSC的无线网络关联一样,即STA关联到AP后,将开展RSNA工作(RSNA工作属于WPA和WPA2规范所指定),如4次握手协议、Group Handshake流程。
四、WSC IE
WSC IE并不属于802.