WPS由三个逻辑单元组成:Registrar,AP,Enrollee。Registrar可以内置在一个AP中,称为standaloneAP。通常一个WLAN网络的建立是分布进行的,首先打开一个AP(这个AP连接到交换机等网络设备),然后添加一个Enrollee或者Registrar设备到这个网络,这是通过运行Registration Protocol完成的,如果新加的设备上Registrar,则以后的设备可作为Enrolless使用该Registrar加入网络,WPS定义了新的WPS等IE,这些IE包含在beacons,probe requests,probe response中,这些IE表明设备是否支持WPS操作。
RP协议完成以下目的:
排除无线连接问题
定义了用out-of-band信息完成Enrollee和Registrar相互间的识别,使能认证配置功能
为设备建立某种角色(AP,Registrar,Enrollee);
安全地将WLAN配置信息从Registrar传递到Enrollee;
建立EMSK(Extended Master Session Key)
RP协议可以单独地运行在in-band,out-of-band或者两者的结合,这样可以灵活的利用out-of-band通信机制。
RP协议的运行分为两个阶段,第一阶段称为discovery阶段,用于在Registrar和Enrollee之间交换描述信息,discovery阶段是必须的。
STA Erollee可以通过下面中断一种方法运行discovery:
1. 在扫描阶段发出包含WPS IE的probe request帧到AP,AP回复包含WPS IE的probe response,可用于选择registrar和AP。
STA enrollee可决定是否连接到AP,并发送M1开始RP协议,如果Registrar还没有准备好接受STAenrollee的连接,则registrar会回复M2D,sta enrollee继续发现可用的registrar。
2. 如果AP作为enrollee,则由registrar发起discovery阶段
无线external registrar发送包含WPS IE的probe request,WPS IE中的request type设为Registrar或者WLAN ManagerRegistrar,AP回复probe response。
有线external registrar用UPnP的discovery机制发现AP
在discovery阶段,Enrollee可以与多个AP或者Registrar交换信息。
第二阶段为enrollment,这个阶段将完成预认证的过程
RP协议分步同步运行,停止运行于M2,M2D或者M8
M2D---表示registrar还未准备好与enrollee的认证,但是会向enrollee提供registrar的描述信息
M2---在用NFC等out-of-band方式通信时,第一阶段和第二阶段结合为一个阶段,只需要一个回合的信息交互,不需要M2以后的交互
M8---三个回合信息交互的结束,第二阶段的三个回合保证在Enrollee device password基础上交互完成Enrollee和Registar的双向认证,WLAN的认证信息通过M8传递给Enrollee。
其他遇到error或者超时的情况下RP协议的运行也可能被停止。
设备厂商有可选择不同的安全策略,这里有主要两种WPS操作:in-band 配置,out-of-band配置。
在in-band配置中,Diffie-Hellman密码被应用,其来自device password,device password从Errollee获得并通过输入栏(或者NFC)键入Registrar。
WPS in-band RP协议的设计目的是抵御窃听工具和暴力破解。如果Registar认为一个Enrollee的攻击者合法,且发现攻击者并不知道密码。Registrar的这种对攻击者的错误认知发生在还未向暴力破解者暴露足够多信息之前。但是,如果Registrar用相同的PIN码与一个攻击者的Enrollee运行了多次RP协议,攻击者可以利用线下离线暴力攻击发现PIN码,并重新运行RP协议获得网络设置。为了处理这个弱点,如果发出M6后PIN认证或通信发生错误,Registrar必须警告用户且不能再使用原来PIN码,提示用户使用Enrollee产生的新的PIN码,新的PIN码应该与旧的PIN码不同,如果用一个32字节以上的随机强密码替换PIN码,这样的密码才可以勉强多次使用,而在PBC method中却没有PIN码重用的问题。
Device Password
支持WPS的设备必须能提供一个随机独立的Device Password(PIN),虽然有可能并允许两个设备产生相同的Password,多个设备还是应该避免故意产生相同的Device password,Device password也不能以设备的其他身份特性产生,如MAC地址或序列号等。
Headless Devices
headless device没有显示,WPS应用在这些设备上要求提供一个8个数字的PIN码,这个PIN码可以贴在设备上,在生产过程中配置。
PIN码作为device password是WPS中最基本的安全等级,因为8个数字的PIN中将会有一位用于checksum,PIN包含约23位的熵,固定值的PIN码可以重用,易受攻击。WPS协议允许用户重新定义默认的devicepassword,这样可以使有安全顾虑的用户提高网络的安全性。
在WLAN中,headless device的代表设备就是AP本身,每次RP运行时,AP作为registrar的enrollee产生一个临时的变化PIN,如果一个固定PIN码被使用,AP在多次与Registrar认证失败后进入lock-down状态,在lock-down状态下,AP会拒绝运行RP协议,这样会避免攻击者作为registrar窃取AP的PIN码,在AP lock-down状态下,允许添加Enrolee到WLAN,但不能使用AP的PIN添加registrar,需要用户干预退出lock-down状态,例如用AP的管理页面或者重新开关电源。
除了PIN method,headless device也可以实现PBC method,PBC的熵为0位,只能避免被动窃听攻击,PBC method只是用在Registrar 不支持PIN码,有一定的安全风险。
Devices with Display
如果Enrollee设备支持display configuration method,Enrollee在每次运行RP协议的时候都会产生一个4个或者8个数字的PIN码,并在显示设备上显示该PIN码,这种方法有两点明显的优点:首先,因为PIN码只使用一次,可以防止暴力破解;其次,每次动态产生密码也要比生产的时候配置容易。
两类设备对PIN码的要求不同:
a. Headless device必须使用8个数字的PIN码,PIN码贴在设备的上面,PIN码的最后一个数字作为前七个数字的checksum
b. 带显示设备的即可以用4个数字的PIN码,也可以用8个数字的PIN码,与headless device一样,8个数字PIN码的最后一个数字作为checksum,4个数字的PIN码则没有checksum。
如果一个设备能动态产生PIN码,且设备上贴有PIN码,建议使用动态产生的PIN码,建议手动输入的device password为8个数字的PIN码,这个长度虽然不能为健全认证提供大量熵池,但在RP协议中可以防范对PIN码的字典攻击。
PIN的值应当随机产生,不能来自于那些可能被攻击者获得的信息,例如in-band中设备的序列号和MAC地址等。如果一个设备有多个PIN,每一个PIN码必须独立且加密,例如一个NFC设备可能有一个PIN码还有一个device password,它的PIN码和device password必须不同且彼此不相关。
Registrar可以提前配置Enrollee PIN和UUID-E的一组值作为packagedsolution的一部分,Registrar也可以只存储PIN值,PIN码在Registrar中保留的时间不确定,Registrar会在PIN 认证失败后使PIN无效。存储在Registrar中的PIN码需加密保护且对外接口不可读。