admin 管理员组

文章数量: 887021

一、WPS简介

WPS全称为Wi-Fi Protected Setup(无线保护设置),是WSC规范早期的名字,WSC全称为Wi-Fi Simple Configuration;路由器中WPS是由Wi-Fi联盟所推出的全新Wi-Fi安全防护设定标准,该标准推出的主要原因是为了解决长久以来无线网络加密认证设定的步骤过于繁杂艰难之弊病,使用者往往会因为步骤太过麻烦,以致干脆不做任何加密安全设定,因而引发许多安全上的问题。WPS用于简化Wi-Fi无线的安全设置和网络管理。它支持两种模式:个人识别码(PIN)模式和按钮(PBC)模式。

二、WSC核心组件构成及接口


Enrollee(注册者):相当于client端,向Registrar发起注册请求;
Registrar(注册器):相当于server端,检查Enrollee合法性;
AP:也需要注册到Registrar中,所以对于Registrar来说AP也是Enrollee;
对于三者来说:Enrollee从Registrar那获取AP的安全配置信息,然后Enrollee利用该信息加入AP提供的无线网络; 对于CPE产品,AP和Registrar是集合在一起的。
Interface E:Enrollee和Registrar之间的接口;通过Interface E,Registrar可以探测Enrollee的存在;
Interface M:AP和Registrar之间的接口;通过Interface M,Registrar管理WSC的AP;
Interface A:AP和Enrollee之间的接口;通过Interface A,可以用来发现WLAN的存在。

三、基本流程

WSC在整体流程上与STA连接AP的流程几乎相同,只是在eapol process之前有EAP-WSC的14次帧的交互,EAPOL-Start开始,结束于EAP-Fail。在这14次帧交互过程中,STA和AP双方将协商安全配置信息,在14次帧的交互完成后,重新发起auth请求,完成后续的连接。


1、EAP-WSC四次包交换内容:
① STA发起EAP start;

② AP发送EAP-Request/Identity以确定STA的ID

③ STA在回复的EAP-Response/Identity包中设置Identity为"WFA-SimpleConfig-Enrollee-1-0"

④ AP确定STA的Identity为"WFA-SimpleConfig-Enrollee-1-0"后,将发送EAPRequest/Start包以启动EAP-WSC认证流程

2、M1-M8消息:
① M1消息:M1消息由STA发送给AP;STA生成随机数,将自己的public key发给AP;Public Key属性包含了Enrollee的D-H Key值。
(1) Message Type:代表Enrollee和Registrar发送的消息类型,其可取值从0x01(代表Beacon帧)到0x0F(代表WSC_DONE)。该属性一般只在EAP-WSC帧中用到。对于M1消息而言,其Message Type取值为0x04;
(2) MAC Address:STA的MAC地址;
(3) Enrollee Nonce:STA产生的一串随机数,它用于后续的密钥派生等工作;
(4) Public Key:双方采用了Diffie-Hellman[6](D-H)密钥交换算法,该算法使得通信的双方可以用这个方法确定对称密钥(注意,D-H算法只能用于密钥的交换,而不能进行消息的加密和解密。通信双方确定要用的密钥后,要使用其他对称密钥操作加密算法以加密和解密消息);

② M2消息:AP收到STA发过来的随机数、Mac、Public Key,然后将自己的随机数、Mac、Public Key发给AP;结合二者的随机数、Mac、D-H key可以计算出一个对称派生密钥KDK(Key Derivation Key)。
(1) Registrar Nonce:Registrar生成的随机数;
(2) Public Key:D-H算法中,Registrar一方的D-H Key值;
(3) Authenticator:身份验证器;由HMAC-SHA-256及AuthKey算法得来一个256位的二进制串。Authenticator属性只包含其中的前64位二进制内容,作用是下一帧验证双方密钥交换是否成功;


③ M3消息:STA收到M2中的AP中的随机数,可以计算出一个相同的KDK;并且通过Authenticator验证密钥交换过程是否成功;然后生成两个新的随机数,加密得到ES-1和ES-2。
(1) E Hash1:EMAC算法 + AuthKey + ES-1 + PSK1 + Registrar D-H Key + Enrollee D-H Key = E Hash1;
(2) E Hash2:EMAC算法 + AuthKey + ES-2 + PSK2 + Registrar D-H Key + Enrollee D-H Key = E Hash2;

④ M4消息:AP发给STA,把AP计算得到的 R Hash1 和R Hash2发给STA,同时把自己用于生成R Hash1的R-S1加密后发给STA,让STA去验证PIN码的前半段。
(1) R Hash1:EMAC算法 + AuthKey + RS-1 + PSK1 + Registrar D-H Key + Enrollee D-H Key = R Hash1;
(2) R Hash2:EMAC算法 + AuthKey + RS-2 + PSK2 + Registrar D-H Key + Enrollee D-H Key = R Hash2;
(3) Encrypted Settings:携带R-S1、ES-1、R-S2、ES-2的加密信息;

⑤ M5消息:STA发给AP,STA把自己的E-S1加密后发给AP,让AP验证PIN码前半部分。


⑥ M6消息:AP发给STA,AP把自己的R-S2加密后发给STA,让STA去验证PIN码的后四位。

⑦ M7消息:STA发给AP,STA把自己的E-S2加密后发给AP,让AP验证PIN码后四位。

⑧ M8消息:AP发给STA,下发所有配置信息给STA。

3、WSC_DONE及去关联
① STA收到了配置后,向AP表示完成配置下发。

② AP发送失败,并发送解除关联,目的是让STA用刚刚拿到的配置信息,重新和AP建立连接。

4、再次建立连接
AP发送deauth后,STA将重新扫描周围的无线网络。由于STA已经获取了AP的配置信息,所以它可以利用这些信息加入AP所在的无线网络,完成WPS连接。

本文标签: 路由 器中 WPS