消息如何破解路由器密码

如何破解路由器密码  时间:2021-05-19  阅读:()
WPS学习文档IWPS学习文档深圳软件开发中心黄杰版本历史版本/状态责任人起止日期备注V1.
0/正式黄杰17.
12.
28创建文档.
WPS学习文档II目录1.
WPS的两种实现11.
1PIN(PERSONALIDENTIFYNUMBER)11.
2PBC(PUSHBUTTONCONFIGURATION)12.
WPS中的基本概念.
13.
核心结构.
23.
1INTERFACEE.
33.
2INTERFACEM.
33.
3INTERFACEA.
34.
WPS交互过程.
34.
1WPS交互过程概述.
34.
1.
1Beacon44.
1.
2ProbeRequest44.
1.
3ProbeResponse.
54.
1.
4虚线部分.
54.
1.
5关联和认证54.
1.
6EAPOL-Start.
54.
1.
7身份认证.
54.
1.
8启动EAP-WSC认证流程.
54.
1.
9M1和M2.
54.
1.
10M3.
64.
1.
11M4.
64.
1.
12M5.
64.
1.
13M6.
64.
1.
14M7.
64.
1.
15M8.
64.
1.
16WSC_Done64.
1.
17EAP-Fail74.
1.
18Deauthentication74.
2WPS交互过程详解.
7WPS学习文档III4.
2.
1版本协商.
74.
2.
2消息编码.
74.
2.
3EAP消息格式.
74.
2.
4802.
11管理帧.
94.
2.
5beacon帧124.
2.
6AssociationRequest和ReassociationRequest帧.
144.
2.
7AssociationResponse和ReassociationResponse帧154.
2.
8ProbeRequest(D-EorD-R)帧154.
2.
9ProbeResponse(D-AP/Registrar)帧.
164.
2.
10RegistrationProtocol消息.
175.
参考文档.
35WPS学习文档-1-1.
WPS的两种实现WSC(Wi-Fisimpleconfiguration),翻译为"快速接入无线网"协议,这个协议主要包括三种快速连接方式(这里我们仅仅讨论WPS).
WPS:相信也有很多人对WPS不了解,因为周边的朋友从来都问Wi-Fi密码是多少,不会问WPS按钮在哪.
但是老外对这个功能比较喜爱,他们把密码设个几十位加特殊字符,连自己都不记得了,更不要说将密码告诉你了,所以WPS成了解决这个问题的很好选择.
有线之所以比无线跟安全,其中一个原因是我们不能轻易的将一根网线插到他的router上去,但是却可以通过无线轻易的搜到这个router的信号,通过不同的手段破解.
但是将router设个几十位的CCMP加密,我想应该不会有人想去破解它了.
WPS主要包括两种快速接入的方法:PIN(personalidentifynumber)andPBC(pushbuttonconfiguration).
1.
1PIN(personalidentifynumber)RouterPIN是一组序列号,它写在router里面,一般可以从router的标签上可以看到,它是"externalregistrar"的验证模式,仅需路由器的PIN,此模式的设计存在问题允许对PIN进行暴力猜测攻击.
当PIN验证失败时访问接入点会发送EAP-NACK消息回客户端.
根据发送回的EAP-NACK消息攻击者可判断PIN的前一半是否正确,此外,PIN的最后一个数字也是已知的,因为它是一个PIN的校验.
这种设计大大降低了暴力破解PIN的尝试次数,尝试次数从10的8次方到10的4次方+10的3次方之间,共11000次尝试.
根据报告显示:一些无线路由器没有对暴力破解尝试进行任何保护策略,这就大大降少了成功进行暴力破解攻击的时间.
也有报告一些路由器会因为暴力破解尝试产生拒绝服务条件,需要重新启动.
对于这种问题,router一般会对尝试验证次数进行限制,如果是5,那么验证5次后会锁住,不再让PIN认证.
ClientPIN是无线客户端随机生成的PIN,在连接router的时候,将它输入router里面,实现验证连接,这种方式会比routerpin会安全些.
1.
2PBC(pushbuttonconfiguration)PBC就是按下WPS按钮后,router会开始广播带有WCSIE的beacon包,当wirelessclient收到这个信息以后,表示在这周围有发现可使用WSP连接的AP,然后就会发送request进行关联,这个关联并不是真正的连接,只是为了让完成8路WPS认证,以获取router的认证信息,包括SSID、KEY、encryption等.
获取到这些信息以后,断开与router的关联,然后用这些信息实现RSNA(正常连接的4路握手过程),这个过程就和我们手动去输入SSID和密码连接是样的,只是WPS为我们自动完成了输入SSID和密码的过程.
2.
WPS中的基本概念Registrar:一个发放和撤销证书的实体,它可能整合在外部AP上,也可能和AP相互独立,这个实体可能没有wlan特性,而且一个指定的域里面也有可能有多个registrars.
它就是一个server,所以下面叫它"认证server",enrollee叫"接入者".
WPS学习文档-2-Enrollee:ADeviceseekingtojoinaWLANDomain.
OnceanEnrolleeobtainsavalidcredential,itbecomesaMember.
Stand-AloneExternalRegistrar(SAER):AnExternalRegistrarthatisnotembeddedinawirelessSTA.
Forexample,maybeembeddedinanEthernetconnecteddevice,ormaybesoftwareinstalledonanynetworkingdevice.
WSCIE:WSCinformationelement,这个字段主要在beacon,proberequests和proberesponses里面,以表明是WSC连接,从这些包的IE里面获取的信息是没有加密认证的.
In-band(内带):DatatransferusingtheWLANcommunicationchannel,includingWLANmultibanddevices(e.
g.
2.
4GHz、5GHz、and60GHz).
Out-of-Band(外带):DatatransferusingacommunicationchannelotherthantheWLAN.
内带和外带是两个比较重要的概念,这主要体现在输入PIN的时候,如果将无线客户端的PIN通过页面或其他方式输入给router,那么这叫内带,因为它传输使用的是和无线同一channel;但是如果使用的是NFC的方式,那么就是外带了,因为NFC工作在13.
56MHz频道.
我们下面讨论的都是内带方式,包括RouterPIN,ClientPIN,PBC.
3.
核心结构图3-1WPS核心结构这种结构需要至少三个设备:enrollee用来作客户端,AP用来做接入点,registrar用来做认证服务器.
Enrollee的角色类似于supplicant,它向Registrar发起注册请求.
Registrar用于检查Enrollee的合法性.
另外,Registrar还能对AP进行配置.
AP也需要注册到Registrar中.
所以,从Registrar角度来看,AP也是Enrollee.
AP和Registrar以及Enrollee三者交互,Enrollee从Registrar那获取AP的安全配置信息,然后Enrollee利用该信息加入AP提供的无WPS学习文档-3-线网络.
AP和Registrar可以由同一个实体实现,也可分别由不同实体来实现,如果是同一个实体实现那么就叫做StandaloneAP.
3.
1InterfaceE该接口是位于Enrollee和Registrar之间逻辑上的接口(实际上的消息转发由AP实现).
这个接口的目的是允许Registrar发现并将Credentials传递给Enrollee.
E接口不仅包括WLAN方式的消息传递也包含outofband的方式(NFC).
至于如何在Enrollee和Registrar之间实现该接口,请参考协议标准.
3.
2InterfaceM该接口位于AP和Registrar之间,他可以允许额外的Registrar去管理简单网络配置管理的AP.
Wi-FiSimpleConfigurationusesthesameprotocolforsettinguptheAPManagementinterfaceasforissuingCredentialstoEnrolleedevices.
.
至于如何在Enrollee和Registrar之间实现该接口,请参考协议标准.
3.
3InterfaceAInterfaceAisbetweentheEnrolleeandtheAP.
ThefunctionofInterfaceAistoenablediscoveryoftheWi-FiSimpleConfigurationWLANandtoenablecommunicationbetweentheEnrolleeandIP-onlyRegistrars.
4.
WPS交互过程对于常用的家用路由器使用场景,实际上基本都是StandaloneAP.
所以本交互过程也就仅仅是针对StandaloneAP来讲解.
对于EAP-basedSetupofExternalRegistrar和Ethernet-basedSetupofExternalRegistrar大家有兴趣可以参考标准协议,这里就不在叙述了.
4.
1WPS交互过程概述如图4-1WPS交互过程:这是整个WPS的交互过程:这里想简单介绍一下WPS的认证流程,后面再抓包,以及详细介绍这些过程中的包的具体含义.
WPS学习文档-4-图4-1WPS交互过程4.
1.
1BeaconAP端的WSC开始工作后,它会广播带有WSCIE字段的beacon包,以声明AP支持WSC,并不是说要按下按键才会携带WSCIE,有些路由只要支持WPS,那么就会在beacon帧当中添加WSCIE字段.
4.
1.
2ProbeRequest如果Enrollee收到来自AP的端的beacon包,那么它会解析beacon包中的WSCIE,并向AP发送单播ProbeRequest包(当按下WPS按键后,就会在ProbeRequest包中添加WSCIE字段,并且包含RequestType属性,该属性一般取值0x01(含义为Enrollee,open802.
1X),代表该设备是Enrollee,并且想要开展WSC后续流程.
它还有一个取值为0x00(含义为Enrollee,Infoonly),代表STA只是想搜索周围支持WSC的AP,而暂时还不想加入网络);如果Enrollee没有收到带有WSCIE的beacon包,那么它就会去搜索周围支持WSC的AP,所以会向周围发送ProbeRequest广播包(WSCIE同单播一样).
WPS学习文档-5-4.
1.
3ProbeResponseAP收到带有WSCIE的ProbeRequest请求包以后,那么就会那么就会用带有WSCIE的ProbeResponse帧回复该ProbeRequest包.
这个包里面带有WSCIE,会告诉Enrollee一些信息,这些信息很多,Enrollee会根据这些信息来决定下一步的动作.
4.
1.
4虚线部分对于PINWPS需要在这个步骤输入PIN,对于PUSHBUTTON则不需要输入,当然PIN有分APPIN和clientPIN,这个决定了需要在AP还是在Enrollee端输入PIN,这种输入都是in-band的方式,当然也可以使用out-band的方式输入信息,如NFC.
4.
1.
5关联和认证临时的关联认证,用于后续的吗M1-M8的数据通信.
4.
1.
6EAPOL-Start开始WPS的认证过程.
4.
1.
7身份认证在STA和AP双方开展EAP-WSC流程前,AP需要确定STA的Identity以及使用的身份验证算法.
该过程涉及三次EAP包交换:1、AP发送EAP-Request/Identity以确定STA的ID2、对于使用WSC认证方法的STA来说,它需要在回复的EAP-Response/Identity包中设置Identity为"WFA-SimpleConfig-Enrollee-1-0".
3、AP确定STA的Identity为"WFA-SimpleConfig-Enrollee-1-0".
4.
1.
8启动EAP-WSC认证流程AP确定STA的Identity为"WFA-SimpleConfig-Enrollee-1-0"后,将发送EAP-Request/WSC_Start包以启动EAP-WSC认证流程.
这个流程将涉及M1~M8相关的知识.
4.
1.
9M1和M2交换共享秘钥.
主要是通过Diffie-Hellman密钥交换算法交换共享密钥.
这两次交互之后双方就拥有一套共享的密钥.
在双方交换密钥以后,可以使用这个共享密钥(D-HKey)配合一种加密算法对要发送的数据进行加密,对方接收到数据包以后就可以用共享密钥(D-HKey)进行解密.
当然在M1-M8中并没有用D-HKey直接用于数据加密,而是用它计算出来一个派生密钥KDK.
发送M2之前会根据EnrolleeNonce、EnrolleeMAC以及RegistrarNonce并通过D-H算法计算一个KDK(KeyDerivationKey),总共640位,KDK密钥用于其他三种Key派生(分为三段),这三种Key分别用于加密RP协议中的一些属性的AuthKey(256位)、加密Nonce和ConfigData(即一些安全配置信息)的KeyWrapKey(128位)以及派生其他用途Key的EMSK(ExtendedMasterSessionKey(256).
总共640位二进制.
WPS学习文档-6-注意M1和M2中的随机数用来生成KDK,而不是生成D-HKey.
生成D-HKey的随机数因该是不可见的.
4.
1.
10M3HMAC-SHA-256:HMAC是一种消息摘要算法,兼容了MD和SHA算法的特性,HMAC-SHA-256算法则是其中的一种,HMAC,主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出.
所以在这个算法中,主要变量是密钥和消息.
Enrollee提供本端devicepassword的前半部分和后半部分信息给Registrar(E-Hash1||E-Hash2).
E-Hash1=HMAC-AuthKey(ES1||PSK1||PKE||PKR):AuthKey生成.
E-Hash2=HMAC-AuthKey(ES2||PSK2||PKE||PKR):AuthKey生成.
4.
1.
11M4Registrar提供己端devicepassword的前半部分和后半部分信息给Enrollee(R-Hash1||R-Hash2),并提供验证随机数ENCKeyWrapKey(R-S1)给Enrollee(随机数是加密的).
R-Hash1=HMAC-AuthKey(RS1||PSK1||PKE||PKR):AuthKey生成.
R-Hash2=HMAC-AuthKey(RS2||PSK2||PKE||PKR):AuthKey生成.
AP将计算RHash1和RHash2.
其使用的PIN码为用户通过AP设置界面输入的PIN码.
很显然,如果AP设置了错误PIN码的话,STA在比较RHash1/2和EHash1/2时就会发现二者不一致,从而可终止EAP-WSC流程.
4.
1.
12M5M5用于Enrollee验证Registrar端的devicepassword前半部分正确,并提供ENCKeyWrapKey(E-S1)给Registrar(随机数是加密的).
4.
1.
13M6Registrar验证Enrollee端的devicepassword前半部分正确,并提供ENCKeyWrapKey(R-S2)给Enrollee(随机数是加密的).
4.
1.
14M7Enrollee验证Registrar端的devicepassword后半部分正确,并提供ENCKeyWrapKey(E-S2)给Registrar(随机数是加密的).
4.
1.
15M8Registrar验证Enrollee端的devicepassword后半部分正确,并提供加密的ConfigData(KeyWrapKey加密)给Enrollee.
4.
1.
16WSC_DoneEnrollee成功接收并获取ConfigData,回复RegistrarWSC_Done消息.
WPS学习文档-7-4.
1.
17EAP-FailRegistrar向Enrollee发送EAP-Fail消息.
4.
1.
18DeauthenticationRegistrar向Enrollee发送Deauth消息让Enrollee和AP断开关联.
如果Enrollee发现周围有两个或者两个以上的AP在跑WPS,则Enrollee会在发现阶段停止继续执行;同理,如果AP发现有两个或两个以上的Enrollee在尝试建立WPS连接,AP也会停止运行WPS.
如果哪一天按下你router的WPS按钮,发现WPS灯快闪了几下就不闪了,可能就是当时同时有两个Enrollee在尝试WPS连接.
4.
2WPS交互过程详解4.
2.
1版本协商在EAP_WSC消息中包含使用的协议版本信息,以保证向后兼容以及向前扩展.
1.
0版本并没有描述接收消息时,对版本特性的具体处理规则,为了避免发生问题,现在的消息中必须包含版本属性,并且固定值为value0x10;一个新的子属性Version2用来表明这个协议遵守第二版本的规则,2.
0或更新的版本都要包含Version2subelement,如果没有包含,表示使用的是1.
0协议.
如果收到一个版本号不匹配的消息,不应该马上把这个包丢弃掉,消息生成端有责任生成接收端能够支持的消息.
4.
2.
2消息编码根据上面的描述,我们可以构造出不同种类的包,但是要怎么合理的将它们组成二进制发送出去才是关键,RegistrationProtocolmessages可以封装在不同的包里面发送,比如EAP和UPnP,所以有必要对这个做一个规定.
attributes的排列顺序必须按照下面的表格来,R(require)表示必须的,O(optional)表示可选的,C(conditional)表示满足一定条件的.
WPS的attribute中的格式按照Type,Length,Value(TLV)format排列.
4.
2.
3EAP消息格式AP在WLAN中也是扮演一个EAP认证者的角色,registrar是认证服务器,所以AP会产生EAPRequestmessage,Enrollee和registrar会生成EAPResponse.
如果registrar独立于AP,那么它会使用UPnP(而不是RADIUS)和AP交互RegistrationProtocolmessages.
一个registrar在802.
1x也可能扮演认证者的角色,而且这种模式在legacyAPs网络中作用很大.
下面将简单的介绍一下EAP-WSC,下面是EAP请求帧和回复帧的格式:WPS学习文档-8-图4-2WPSEAP帧格式Codefiled:1–--EAPrequestmessages2–--EAPresponse;Identifierfield:用来关联请求包和回复包;length:EAP包的总长度;Type:指定EAPmethod的类型,我们知道EAPmethod有很多种类型,具体在交互中使用哪种类型,就靠它了,在WPS配置中将它设成254(expandedtype);Vendor-Id:WFASMIcode0x00372A;Vendor-Type:0x00000001(SimpleConfigure);Op-Code:这个字段很重要,表示EAP-WSC中一共有6种EAP消息表4-1EAP消息Value含义说明0x01WSC_Start当AP收到一个包含NAI(networkaccessId)为"WFA-SimpleConfig-Enrollee-1-0"的EAPResponse/Identity报文的时候,这个包的MessageDatafield是空的.
0x02WSC_ACK如果Enrollee或registrar成功接收并处理了一个包,但是没有消息回复的时候,就会发送一个WSC_ACK包回去,比如Enrollee收到一个M2D包,它就会回复一个WSC_ACK包.
0x03WSC_NACK当认证或处理出错的时候会发这个包.
0x04WSC_MSGsupplicant和authenticator都会发送这个包,它用来负载MessageData,authenticator不会查询这个消息包里面的信息来决定状态机的状态,他们只是简单的传送给对方.
WPS学习文档-9-0x05WSC_Done当Enrollee成功接收并处理了WSCM8报文以后,它会发送WSC_Done报文以表明自己正确的获取到了WLAN的Credential.
0x06WSC_FRAG_ACK当supplicant或authenticator成功接收并处理了一个EAP消息分片并准备接收下一个分片的时候会发送这个包.
Flagsfield:0x01:morefragments(MF):置1表示有分片.
当接收端在收到任意带MF标志的包以后,就会回复一个WSC_FRAG_ACKmessage,并且将每一个分片的MessageDate组合成最原始的包.
0x02:Lengthfield(LF):如果LF位置1,那么头部就会包含MessageLengthfield以表明要发送的WSCmessagedata字节大小,如果没有置1,MessageLengthfield会被忽略.
如果消息有分片,那么第一个包LF必须置1,后面的包不能设置该标志.
0x04–0x80:reserved.
Messagedata:数据部分4.
2.
4802.
11管理帧在发现阶段,WSC设备是通过在管理帧里面携带WSCIE来完成的.
管理帧包括:Beacon、probeRequest和probeResponse.
如果一个Enrollee需要建立一个网络连接,它就会初始化一个基于EAP注册协议的802.
1x/EAP连接,在beacon包和probeRequest包里面交换信息是不安全的,只能作为一种声明信息来看待.
下面我们来了解一下WSC-IE的相关内容.
这个IE里面包含指定的数据,包括网络信息,性能和模式等,这些信息可用于配置Enrollee连接到一个网络,也可以让Enrollee在关联过程中出错时发送报告.
下面是WSC_IE的格式:在同一个802.
11管理帧中可能携带多个WSC-IE,如果在一个管理帧中有发现多个WSC-IE,就需要将这些数据单元串联起来,在串联的时候,需要在原始包里面预留这些元素的顺序.
AP必须在beacon包和probeResponse包里面携带WSC-IE信息,以表明AP支持WSC;STA在probeRequest包里面也必须携带WCS-IE以声明支持WSC.
如果一个STA想要通过EAP-WSC的方法接入一个开启WPS功能的AP,那么除了需要携带802.
11指定的IE外,STA在它的802.
11(re)associationrequest包里面还必须携带WSC-IE.
请注意,在WSCassociation过程中,Capabilityinformation域中的Privacysubfield,RSNIE和WPAWPS学习文档-10-IE是不相干的,而且这些信息会被STA和AP忽略,但是STA和AP会继续遵守其他协议(比如WMM),所以如果(re)associationrequest包里面携带了WSCIE信息,那么AP应该使用EAP-WSC加密方式和STA进行交互,而不应该尝试其他的加密握手交互.
当STA和AP关联成功以后,STA会向AP发送一个EAPOL-Start包,然后等待AP回复EAP-Request/Identity包;当然,如果在AP收到的(re)associationrequest包中携带WSCIE,而且WSCIE的版本在2.
0以上,也允许AP在还没有收到EAPOL-Start前,先向STA发送EAP-Request/Identity;在STA接收到AP的EAPRequest/Identity,STA将回复EAP-Response/Identity以声明它在接下来的过程中扮演Enrollee的角色还是registrar.
注意:为了兼容1.
0版本,如果开启WSC功能的AP使用的是WPA2-Personal加密,那么在和STA关联交互的报文中可以不带RSNIE或者WPAIE,甚至可以不带WSCIE.
而且AP只允许在接收到EAPOL-Start帧以后才开始交换EAP-WSC消息.
在1.
0版本中的associationrequests可能没有携带WSCIE信息.
在WSCIE里面,ElementID的值是221,OUI的值是十六进制0050F204.
发送端应该限制放入WSCIE里面的数据,以避免超出802.
11帧规定的大小.
WSCIE中,Data域的组织结构为一个或多个Attribute(属性).
Attribute的格式为TLV,即Type(长度为2字节)、Length(长度为2字节,代表后面Value的长度),Value(最大长度为0xFFFF字节).
WSCIE的数据域里面有好多attributes组成,下面来分析一下一些常用的attributes.
4.
2.
4.
1Version和VendorExtension属性Version属性表达了发送端使用的WSC版本信息.
Version属性的Type字段取值为0x104a,Length字段长度为1字节.
Version属性已经作废(Deprecated),但为了保持兼容性,规范要求WSCIE必须包含该属性,并且其Value字段需设为0x10.
取代Version属性的是Version2属性,Version2属性并不能单独存在,而是作为VendorExtension的子属性被包含在WSCIE中.
图4-3WPSVersion字段VendorExtension头部包含三个部分,分别是Type(值为0x1049)、Length(此处的值为9)、VendorID①(十进制值为14122,十六进制值为0x00372a).
VendorExtension可包含多个WPS学习文档-11-子属性,VendorExtension包含了Version2和RequesttoEnroll两个子属性.
"VendorExtension:00372a000120030101"一行代表的是VendorExtension的Value.
它是后面VendorID、Version2和RequesttoEnroll的所有内容.
RequesttoEnroll子属性代表Enrollee希望开展后续的EAP-WSC流程.
4.
2.
4.
2RequestType和ResponseType属性图4-4RequestType和ResponseType属性左图所示为RequestType,右图所示为ResponseType.
RequestType属性必须包含于Probe/AssociationRequest帧中,代表STA作为Enrollee想要发起的动作.
该属性一般取值0x01(含义为Enrollee,open802.
1X),代表该设备是Enrollee,并且想要开展WSC后续流程.
它还有一个取值为0x00(含义为Enrollee,Infoonly),代表STA只是想搜索周围支持WSC的AP,而暂时还不想加入某个网络.
ResponseType属性代表发送者扮演的角色.
对于AP来说,其取值为0x03(含义为AP),对于Registrar来说,其取值为0x02,对于Enrollee来说,其取值可为0x00(Enrollee,Infoonly)和0x01(Enrollee,open802.
1X).
StandaloneAP也属于AP,故图的ResponseType取值为0x03.
4.
2.
4.
3ConfigurationMethods和PrimaryDeviceType属性ConfigurationMethods属性用于表达Enrollee或Registrar支持的WSC配置方法.
前文提到的PIN和PBC就属于WSC配置方法.
考虑到支持Wi-Fi的设备类型很多,例如打印机、相机等.
WSC规范定义的WSC配置方法较多.
下图所示ConfigurationMethods属性:WPS学习文档-12-Type字段取值为0x1008,Length字段取值为2,代表Value的内容长度为2字节.
ConfigurationMethod的Value长度为2字节,共16位.
每一位都代表Enrollee或Registrar支持的WSC配置方法.
下图所示为GalaxyNote2所支持的Method,它支持动态PIN码(即STA能动态生成随机PIN码,由Display位表达静态PIN码由Label位表示).
注意:Display还需细分为PhysicalDisplay或VirtualDisplay.
二者区别是PhysicalDisplay表示PIN码能直接显示在设备自带的屏幕上,而VirtualDisplay只能通过其他方式来查看(由于绝大多数无线路由器都没有屏幕,所以用一般情况下,用户只能在浏览器中通过设备页面来查看)PIN码.
Keypad表示可在设备中输入PIN码.
另外,是否支持PushButton由PushButton位表达.
同PIN码一样,它也分PhysicalPushButton和VirtualPushButton.
由于GalaxyNote2硬件上并没有专门的按钮(它只不过是在软件中实现了一个按钮用来触发PushButton,所以这里的设置为支持VirtualPushButton.
PrimaryDeviceType属性代表设备的主类型.
在DiscoveryPhase阶段,交互的一方可指定要搜索的设备类型(需设置RequestedDeviceType属性,该属性的结构和取值与PrimaryDeviceType一样).
这样,只有那些PrimaryDeviceType和目标设备类型匹配的一方才会进行响应.
4.
2.
4.
4DevicePasswordID和RFBands属性DevicePasswordID属性用于标示设备Password的类型,默认值是PIN(值为0x0000),代表Enrollee使用PIN码(静态或动态PIN码都可以).
提示DevicePasswordID其他可取值包括0x0001(User-Specified)、0x0002(Machine-Specified)、0x0003(Rekey)、0x0004(PushButton)等.
RFBands代表设备所支持的无线频率,包括2.
4G或5G,或者同时支持2.
4G和5G.
4.
2.
5beacon帧后续的截图中R/O/C分别表示必选项/可选项/条件项.
如果AP开启了WSC功能,那么它的beacon帧里面肯定会携带WSCIE,而且WSCIE里面会包含下表中的attributes,如果APPIN的功能锁住了(比如因为APPIN的参数次数太多了),就会携带APSetupLocked信息.
WPS学习文档-13-Wi-FiSimpleConfigurationState:这个属性用于描述AP或STA的WSC配置情况,这些配置包括SSID、加密方法等.
值0x01表示"NotConfigured",值0x02表示"Configured",很显然,为完成配置的STA中,给属性取值为0x01.
而AP一般早就配置好了,所以AP取值为0x02.
APSetupLocked:这个值为TURE表示AP已经锁定,即不能开展RP协议.
以PIN方法为例,如果三次PIN方法失败以后,AP将锁定60秒.
如果PIN被锁定,则Beacon帧必须包含这个属性.
SelectedRegistrar:该属性的作用是,当AP已选择合适的Registrar后,该属性值为0x01,否则为0x00.
对于StandaloneAP来说,如果其内部的Registrar组件启动,则设置该值为0x01.
DevicePasswordID:该属性用于标示设备Password的类型,默认值是PIN(值为0x0000),代表Enrollee使用PIN码(静态或动态PIN码都可以).
DevicePasswordID其他可WPS学习文档-14-取值包括0x0001(User-Specified)、0x0002(Machine-Specified)、0x0003(Rekey)、0x0004(PushButton)等.
SelectedRegistrarConfigurationMethods:它表示registrar所使用的configuremethod,如果SelectedRegistrar设置了.
必须包含这个值.
UUID-E:STA的通用唯一标识符,enrollee的UUID-E,registrar的UUID-RAuthorizedMACs:包含在vendorextension属性里面,这个子属性列出了已经注册(表示Enrollee已经注册到registrar中)的STAMAC地址.
只有那些在MAC地址列表中的STA才可以开展EAP-WSC流程.
注意,已注册的STAMAC地址由Registrar设置给AP.
如果registrar不支持该功能,则不能使用该属性.
RegistrarConfigurationMethods:AP如果使用的是内部注册方式,这个属性表示AP所支持的配置方法,如果AP是一个NFC设备,那么应该包含Registrar配置方法的子元素.
4.
2.
6AssociationRequest和ReassociationRequest帧如果STA想要使用WSC,那么AssociationRequest和ReassociationRequest帧就会包含WSCIE.
注意:1.
0版本中可能没有包含.
RequestType属性必须包含于Probe/AssociationRequest帧中,代表STA作为Enrollee想要发起的动作.
该属性一般取值0x01(含义为Enrollee,open802.
1X),代表该设备是Enrollee,并且想要开展WSC后续流程.
它还有一个取值为0x00(含义为Enrollee,Infoonly),代表STA只是想搜索周围支持WSC的AP,而暂时还不想加入某个网络.
WPS学习文档-15-4.
2.
7AssociationResponse和ReassociationResponse帧ResponseType属性代表发送者扮演的角色.
对于AP来说,其取值为0x03(含义为AP),对于Registrar来说,其取值为0x02,对于Enrollee来说,其取值可为0x00(Enrollee,Infoonly)和0x01(Enrollee,open802.
1X).
StandaloneAP也属于AP,故图的ResponseType取值为0x03.
4.
2.
8ProbeRequest(D-EorD-R)帧WPS学习文档-16-4.
2.
9ProbeResponse(D-AP/Registrar)帧WPS学习文档-17-4.
2.
10RegistrationProtocol消息对于选择来in-band方式的用户,一般会要求输入设备的密码到Registrar中,这个密码一般可以从显示器或标签中获得,在等待输入密码的期间,Registrar会向enrollee发送包含有Registrar信息的M2D包,这样就可以让Enrollee支持多种用户接口方便提示用户适当的信息,然后引导他们选择正确的Registrar.
M3-M7RP消息通过逐步相互证实来获取对方的设备密码,如果对方都相互知道密码的时候,经过加密的配置数据就会发生交换.
消息的加密保护是通过KDK(keyderivationkey)来实现的,KDK是由Diffie-Hellmansecret、nonces和EnrolleeMACaddress计算所得.
注册的初始化过程可能在Enrollee刚上电的时候就发生,当然也有可能Enrollee不会选择尝试去注册,除非用户有明确的这方面的动作.
每一个实体的RP消息都是通过nonces和Authenticatorattributes来识别的,如果一个接受到的消息并没有携带有效的nonce,也没有携带正确的Authenticatorattribute,那么这边消息会被丢弃.
如果消息封装在EAP里面进行传输,那么只有IEEE802.
1x的认证服务器才有责任去重传这个消息,推荐的重传超时时间是:重传超时=5s,个别消息处理超时时间=15s,整个处理过程总时间=2min.
在使用in-band方法的时候,可能发生一种令人担忧的事情,入侵者可能一直发送请求来引导server分配可用的计算资源,抢占正常用户的服务.
解决这种问题一般建议限制次数控制资源.
M2中的DevicePasswordID可以和M1中的不同,这就意味着,registrar可能不使用Enrollee使用的DevicePassword.
比如,一个Enrollee想要使用pushbutton的方式进行连接,并在M1消息中将DevicePasswordID设为pushbutton,但是registrar检测到多个Enrollee都在使用pushWPS学习文档-18-button的方式,然后决定使用PIN的方式更合适,那么registrar就会在M2中将DevicePasswordID设为PIN而不是pushbutton,告诉Enrollee在接下来使用PIN.
现在的Enrollee中也还有另外一种做法,在发现阶段它会检测是否还有另外一个Enrollee也在使用相同的DevicePasswordID,如果有,就会让自己先停止,直到没有其他的相同DevicePasswordID设备时才继续进行,比如两个Enrollee同时按下pushbutton,那么后按的那个设备会停止WPS.
下面先对WSC-EAP计算式的一些概念进行注释:Description代表UUID、Manufacturer、MAC地址等信息.
PKE和PKR代表D-H算法的Enrollee方的Key以及Registrar方的Key.
M*x代表没有包含HMAC-SHA-256结果的第X消息的内容.
HMACAuthenKey代表利用AuthenKey和HMAC-SHA-256算法进行计算.
ENCKeyWrapKey代表利用KeyWrapKey进行加密.
[…]代表其中的内容为可选信息.
N1和N2分别代表Enrollee和Registrar的Nonce.
||表示串联,不是"或"的关系.
4.
2.
10.
1M1Enrollee->Registrar:M1=Version||N1||Description||PKEWPS学习文档-19-M1消息是Enrollee发送给Registrar的,Version是版本信息.
N1:Enrollee生成的nonce信息,用于后面ConfigData的加密译码,每一个对象都会生成一个新的Nonce,同时它也看作一个sessionID,每一次对话都用N1和N2进行确认.
Decryption:它表示Enrollee设备的描述信息,这些信息一般都是可读的,而且很有用,但是在EAP的加密交互阶段一般用不上,也就是在M1-M8WSC-EAP消息中,这些信息主要是描述信息,包括设备信息(UUID,manufacturer,modelnumber,MACaddress等)和设备性能(supportedalgorithms,I/Ochannels,RegistrationProtocolrole等).
PKE:Enrollee生成的DH公钥,具体的计算方法请参考标准文档.
WPS学习文档-20-AuthenticationTypeFlags和EncryptionTypeFlags:表示Enrollee支持的身份验证算法以及加密算法类型ConnectionTypeFlags:代表设备支持的802.
11网络类型,值0x01代表ESS,值0x02代表IBSS其余的一些字段的信息在前面或者标准文档中有详细说明,请参考.
下面是抓到的M1包:4.
2.
10.
2M2EnrolleeRegistrar:M3=Version||N2||E-Hash1||E-Hash2||HMACAuthKey(M2||M3*)WPS学习文档-24-E-Hash1:E-Hash1=HMACAuthKey(E-S1||PSK1||PKE||PKR)它由devicepassword的前半部分(比如PIN方式是前4位,如PIN=12345670,PSK1=first128bitsofHMACAuthKey(1234))和Enrollee生成的128位随机数(E-S1)作为输入,AuthKey作为参数key,结合PKE和PKR运用HMAC-SHA-256算法计算出的鉴定码.
E-Hash2:E-Hash2=HMACAuthKey(E-S2||PSK2||PKE||PKR)由devicepassword的后半部分(比如PIN方式是后4位,如PIN=12345670,PSK2=first128bitsofHMACAuthKey(5670))和Enrollee生成的128位随机数(E-S2)作为输入,AuthKey作为参数key,结合PKE和PKR运用HMAC-SHA-256算法计算出的鉴定码.
HMACAuthKey(M2||M3*):使用M2||M3消息和AuthKey生成的鉴定码,用于鉴定消息是否正确传输.
下面是抓包:WPS学习文档-25-4.
2.
10.
5M4EnrolleeRegistrar:M5=Version||N2||ENCKeyWrapKey(E-S1)||HMACAuthKey(M4||M5*)ENCKeyWrapKey(E-S1):当Registrar收到E-S1后,根据等式E-Hash1=HMACAuthKey(E-S1||PSK1||PKE||PKR)Registrar就可以根据AuthKey,E-S1,PSK1,PKE,PKR计算出一个新的E-Hash与E-Hash1进行比较,如果相等,就可以确认devicepassword的前半部分是正确的;如果不相同,就会发出fail信息,并停止继续交互.
其实M4和M5就是用来给Enrollee和Registrar相互确认devicepassword的前半部分(PSK1=first128bitsofHMACAuthKey(1234))是正确的.
WPS学习文档-28-下图是M5的抓包:4.
2.
10.
7M6EnrolleeRegistrar:M7=Version||N2||ENCKeyWrapKey(E-S2[||ConfigData])||HMACAuthKey(M6||M7*)ENCKeyWrapKey(E-S2[||ConfigData]):同理,对应等式E-Hash2=HMACAuthKey(E-S2||PSK2||PKE||PKR)但是这里有些不同的是条件项[||ConfigData]的加入,如果当前的Enrollee是一个AP,就会在M7中携带这个attribute,但是我们一般用的都是standalone模式,不会出现这种情况.
其实M6和M7就是用来给Enrollee和Registrar相互确认devicepassword的后半部分(PSK1=first128bitsofHMACAuthKey(5670))是正确的.
WPS学习文档-31-下面是抓包:WPS学习文档-32-4.
2.
10.
9M8Enrollee<-Registrar:M8=Version||N1||[ENCKeyWrapKey(ConfigData)]||HMACAuthKey(M7||M8*)N1:可以看作sessionID,避免发错对象[ENCKeyWrapKey(ConfigData)]:用KeyWrapKey加密的配置信息,ConfigData就是我们最终需要获取的内容.
安全配置信息保存在EncryptedSettings中,它由KeyWrapKey加密.
WSC规范规定,当Enrollee为STA时(对Registrar来说,AP也是Enrollee),EncryptedSettings将包含若干属性,其中最重要的就是Credential属性集合,该属性集的内容如上图(这里讨论的Enrollee是STA):WPS学习文档-33-M8抓包:当STA收到M8并解密其中的Credential属性集合后,将得到AP的安全设置信息.
很显然,如果不使用WSC,用户需要手动设置这些信息.
使用了WSC后,这些信息将在M8中由AP发送给STA.
STA获取到这些信息以后,一般会保存起来并修改到wpa_supplicant.
conf文件中,后面STA就可以用这个配置文件正常的连接AP了.
接下来,STA就可以利用这些信息加入AP对应的目标无线网络了.
STA处理完M8消息后,将回复WSC_DONE消息给AP,表示自己已经成功处理M8消息.
WPS学习文档-34-4.
2.
10.
10WSC_ACKMessageWSC_ACK消息是由EnrolleeorRegistrar发送的,当成功处理了一个消息,但是没有对应的消息回复时就会发送这个信息,比如收到M2D消息,就会回复WSC_ACK.
4.
2.
10.
11WSC_NACKMessage这个消息是由加入者或认证者发送的,当认证过程或消息处理过程出现了错误,就会向对方发送WSC_NACK消息4.
2.
10.
12WSC_DoneMessage这个消息是由Enrollee发送的,当它成功接收并处理了M8消息后会向Registrar发送这个消息,这时表明Enrollee成功获取到了改WLAN的网络接入凭证(Credential).
WPS学习文档-35-AP发送EAP-FAIL以及Deauthentication给STA.
STA收到该帧后将取消和AP的关联.
STA将重新扫描周围的无线网络.
由于STA以及获取了AP的配置信息,所以它可以利用这些信息加入AP所在的无线网络.
5.
参考文档《Wi-FiSimpleConfigurationTechnicalSpecification.
pdf》《Diffie-Hellman密钥交换算法》《消息摘要算法-HMAC算法》

bgpto:独立服务器夏季促销,日本机器6.5折、新加坡7.5折,20M带宽,低至$93/月

bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...

新版本Apache HTTP Server 2.4.51发布更新(有安全漏洞建议升级)

今天中午的时候看到群里网友在讨论新版本的Apache HTTP Server 2.4.51发布且建议更新升级,如果有服务器在使用较早版本的话可能需要升级安全,这次的版本中涉及到安全漏洞的问题。Apache HTTP 中2.4.50的修复补丁CVE-2021-41773 修复不完整,导致新的漏洞CVE-2021-42013。攻击者可以使用由类似别名的指令配置将URL映射到目录外的文件的遍历攻击。这里...

PacificRack 下架旧款方案 续费涨价 谨慎自动续费

前几天看到网友反馈到PacificRack商家关于处理问题的工单速度慢,于是也有后台提交个工单问问,没有得到答复导致工单自动停止,不清楚商家最近在调整什么。而且看到有网友反馈到,PacificRack 商家的之前年付低价套餐全部下架,而且如果到期续费的话账单中的产品价格会涨价不少。所以,如果我们有需要续费产品的话,谨慎选择。1、特价产品下架我们看到他们的所有原来发布的特价方案均已下架。如果我们已有...

如何破解路由器密码为你推荐
桌面chrome中國信託商業銀行supplementedroutebasedcssdominavimasios7更新iphone重庆网通重庆联通网上营业厅手机版win7telnetWin7系统中的telnet命令如何应用?用itunes备份如何用iTunes备份iPhone数据icloudiphone自己用icloud把iPhone抹掉了.激活却不是自己的id怎么破
国内最好的虚拟主机 lnmp cve-2014-6271 mediafire下载 iisphpmysql 日本空间 谁的qq空间最好看 老左来了 东莞数据中心 亚马逊香港官网 qq云端 vip购优惠 中国网通测速 银盘服务是什么 空间租赁 云服务是什么意思 密钥索引 512内存 腾讯云平台 空间排行榜 更多