具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种安全切换配置方法,以实现无线星型设备对设备网络连接D2D主控设备的安全切换配置。
如图1所示,为本发明实施例一种安全切换配置方法的流程图,包括:
步骤S101,获取客户端的配置密码或客户端与在任主控设备之间的工作密钥。具体可以为:
接收在任主控设备发送的客户端的配置密码或客户端与在任主控设备之间的工作密钥;其中,各客户端的配置密码或工作密钥可以一次性获得也可以逐个获得;或者,
接收客户端通过第一通道(例如:通过在任主控设备转发)发送的利用公钥加密的新配置密码,并利用私钥对加密的新配置密码进行解密,获得解密后的新配置密码。
其中,客户端通过第一通道发送利用公钥加密的新配置密码的步骤具体可以为:
客户端接收到在任主控设备发送的切换主机通知后,生成新配置密码。接收候任主控设备通过第二通道(例如:直接单播通道)发送的公钥,利用接收的公钥对生成的新配置密码进行加密,并通过第一通道将公钥加密后的新配置密码发送至候任主控设备。
步骤S102,根据获取的配置密码或工作密钥,与客户端进行WPS协商,生成客户端与候任主控设备之间的工作密钥。
步骤S103,将生成的工作密钥发送至客户端。后续候任主控设备和客户端可以根据生成的工作密钥建立连接。
上述安全切换配置方法,候任主控设备和客户端根据配置密码或工作密钥,进行WPS协商,生成客户端与候任主控设备之间的工作密钥,后续客户端可以与候任主控设备根据生成的工作密钥建立连接,从而实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
如图2所示,为D2D主控设备切换前的网络结构示意图,本发明实施例一中,Client B请求被切换为新的D2D主控设备,成为候任Master B。请继续参见图3,为本发明实施例一候任Master B被切换为新的D2D主控设备的流程图,具体包括:
步骤S301,候任Master B向在任Master A发出切换请求,请求切换D2D主控设备。
步骤S302,在任Master A对候任Master B进行身份验证,验证候任Master B的UUID(Universally Unique Identifier,通用惟一标识符)。
步骤S303,在候任Master B的身份验证通过后,
在任Master A向候任Master B发送消息帧(设为M0),M0中包含的内容有:当前所连客户端的总数、其余各客户端的MAC(Media Access Control,媒体接入控制)、UUID、名称、PIN或者在任Master A与客户端之间的工作密钥。其中,在任Master A与客户端之间的工作密钥可以作为后续协商的PIN码种子。上述M0包含内容如表1所示。
表1
属性 |
R/O |
备注 |
版本 |
R |
0x10=version 1.0,0x11=version 1.1,etc. |
消息类型 |
R |
M0消息取值0x10 |
Client总数 |
R |
|
Client信息 |
R |
|
<other...> |
O |
Multiple attributes are permitted |
其中每条Client信息包含的内容如表2所示,
表2
Master切换状态 |
R |
缺省为0;如果同意Master切换则设为1;收到切换完毕消息设为0; |
Master切换响应时间 |
O |
当Master切换状态为1时出现 |
UUID |
R |
|
MAC Address |
R |
|
Wi-Fi Protected Setup State |
R |
|
Manufacturer |
R |
|
Model Name |
R |
|
Model Number |
R |
|
Serial Number |
R |
|
Primary Device Type |
R |
|
Device Password ID |
R |
|
Device Name |
R |
|
Master切换状态 |
R |
缺省为0;如果同意Master切换则设为1;收到切换完毕消息设为0; |
<other> |
O |
|
其中,在任Master A向候任Master B单播其余Client信息的消息帧里可以增加各客户端对切换的响应情况(是否同意切换等),让候任Master B可以只选择同意切换的Client进行后续协商。
步骤S304,候任Master B向在任Master A发送切换开始消息。
步骤S305,在任Master A向其余客户端组播切换主机通知,该通知中包含候任Master B的MAC地址、UUID和名称。
步骤S306,候任Master B与在任Master A发送给候任Master B的客户端列表中的各客户端分别创建新的设备对设备连接;之后利用客户端列表中数据分别进行WPS配置获取新的信任状,配置完成后通过新的信任状关联连接网络。以下步骤S307至步骤S310以候任Master B与Client C进行WPS配置为例进行说明。
其中,由于有些客户端可能在收到在任Master A组播的切换主机通知后,离开网络,因此候任Master B与第一个客户端创建新的设备对设备连接的时间可以是候任Master B发出切换开始消息一段时间(例如,1ms)后,也可以是候任Master B收到其余任一客户端对在任Master A发送的切换主机通知的响应之后。
步骤S307,候任Master B向Client C发送EAPOL(Extensible AuthenticationProtocol Over Local Area Network,基于局域网的扩展认证协议)-开始,准备进行EAP协商。
步骤S308,Client C用本身持有的PIN(C),候任Master B用在任Master A发送的Client C的PIN(C),两者进行M1-M8八个消息的WPS协商。
WPS协商完毕候任Master B将信任状通过M8消息发送给Client C。
步骤S309,Client C使用新获得的配置数据和信任状,与候任Master B建立关联连接。
步骤S310,Client C获取来自候任Master B的信任状后与在任Master A断开关联(或请求断开关联)。
步骤S311,候任Master B与Cliemt D之间重复步骤S306-步骤S310。候任Master B可以同时与各Client进行上述切换操作,也可以逐个进行。
步骤S312,候任Master B确认与M0列表上所有的客户端都进行了新信任状协商后,向在任Master A发送切换完毕通知。
步骤S313,在任Master A收到候任MasterB的切换完毕通知后,将自己的身份置为Client(客户端),向候任Master B发出Client请求。
步骤S314,候任Master B收到在任Master A的Client请求后,将自己的身份置为Master(主控设备),向在任Master A发送Master响应。
步骤S315,候任Master B向在任Master A及所有客户端广播切换确认消息。
其中,确认切换完毕的时刻可以为:
1)候任Master B按照客户端信息列表遍历了所有与在任Master A当前相连的客户端,与它们都进行了WPS配置后,广播切换完毕通知;
2)候任Master B按照客户端对切换主机通知的响应情况,遍历了所有同意候任Master B成为Master的客户端,与它们都了WPS配置后,广播切换完毕通知。
其中,在另一实现方式中,步骤S303中在任Master A向候任Master B发送其余Client信息的时间还可以是:
1)在任Master A收到候任Master B发送的切换开始消息一段时间(例如,1ms)后;
2)在任Master A收到一个或多个客户端对在任Master A发送的切换主机通知的响应后,这时在任Master A收到客户端的切换响应后,只将同意候任Master B切换作Master的客户端的信息依次发送给候任Master B,候任Master B和各客户端依次进行WPS协商,直至处理完所有客户端的响应或者限时结束。
在任Master A在任时,如果有些客户端已经和候任Master B直接建立了安全关联,则须在上述步骤S305和步骤S306间***候任Master判断与客户端是否已经直接建立了安全关联的步骤:
1)如果候任Master B与客户端已经直接建立了安全关联,则两者间无需再进行WPS协商,转至下一个客户端处理。
2)如果候任Master B与客户端尚未有直接安全关联,则两者间按照上述步骤S306-步骤S310创建新的设备对设备连接。
本发明实施例一中,候任Master B利用在任Master A发送的Client C的PIN(C),Client C利用自身持有的PIN(C)进行M1-M8八个消息的WPS协商,生成新的信任状,从而实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
本发明实施例二与本发明实施例一的不同之处在于,步骤S308~步骤S309,Client C在主机切换时可以使用如下的信任状获取方法:Client C收到切换主机通知后,重新产生新配置密码PIN(C),候任Master将一公钥(SPKB)及其设备信息合成M1’消息帧通过一通道(例如:直接单播通道)传到Client C,Client C以接收的公钥(SPKB)将Client C产生的新配置密码PIN(C)加密后,生成SPKB(PIN),将SPKB(PIN)和设备信息一起合成M2’消息帧通过另一通道(例如:通过在任主控设备转发)传给候任Master。候任Master以其私钥解密获得Client C产生的新配置密码。候任Master与Client C之间用新配置密码进行M1-M8的WPS协商,产生新的信任状。同理,其他客户端同样可以采用上述方法产生新的信任状。
本发明实施例二中,客户端重新产生新配置密码PIN,候任Master将公钥通过一通道传到客户端,客户端利用该公钥将产生的新配置密码加密,加密后的新配置密码通过另一通道传给候任Master。从而可以有效地避开在任Master以外的非法设备攻击,并加强了对在任Master可能对后续网络进行的攻击的防范。
在另一实现方式中,也可以不需要在现有WPS的M1-M8八个消息帧之外另加M1’和M2’消息帧来获取用于信任状协商的新配置密码。候任Master也可以将一公钥(SPKB)及其设备信息携带在M1消息帧里传到客户端,客户端以接收的公钥(SPKB)将客户端产生的新配置密码PIN加密后,生成SPKB(PIN),将SPKB(PIN)和设备信息一起携带在M2消息帧传给候任Master,后续进行M3-M8消息协商便可产生新的信任状。实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
如图4所示,为本发明实施例提供的另一种安全切换配置方法的流程图,包括:
步骤S401,接收在任主控设备发送的候任主控设备的配置密码或在任主控设备与候任主控设备的工作密钥。
步骤S402,根据接收的配置密码或工作密钥,与候任主控设备进行WPS协商,生成候任主控设备与客户端的工作密钥。
步骤S403,将生成的工作密钥发送至候任主控设备。
上述安全切换配置方法,客户端获取候任主控设备的配置密码或在任主控设备与候任主控设备之间的工作密钥,客户端根据获取的配置密码或工作密钥,与候任主控设备进行WPS协商,生成客户端与候任主控设备之间的工作密钥,后续客户端可以与候任主控设备根据生成的工作密钥建立连接,从而实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
如图5所示,为本发明实施例提供的一种安全切换配置***的结构图,包括候任主控设备51和客户端52,
候任主控设备51,用于获取客户端52的配置密码或客户端52与在任主控设备之间的工作密钥,根据获取的配置密码或工作密钥,与客户端52进行WPS协商,生成客户端52与候任主控设备51之间的工作密钥,并将生成的工作密钥发送至客户端52;
客户端52,用于接收候任主控设备51发送的工作密钥。
其中,该安全切换配置***还可以包括:在任主控设备53,用于发送切换主机通知;
客户端52还用于接收到在任主控设备53发送的切换主机通知后,产生新配置密码,接收候任主控设备51通过第二通道发送的公钥,并利用接收的公钥对产生的新配置密码进行加密,并通过第一通道将公钥加密后的新配置密码发送至候任主控设备51。
上述安全切换配置***,候任主控设备51和客户端52根据配置密码或工作密钥,进行WPS协商,生成客户端52与候任主控设备51之间的工作密钥,后续客户端52可以与候任主控设备51根据生成的工作密钥建立连接,从而实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
如图6所示,为本发明实施例提供的一种设备的结构图,包括:
获取模块61,用于获取客户端52的配置密码或客户端52与在任主控设备53之间的工作密钥;
生成模块62,用于根据获取模块61获取的配置密码或工作密钥,与客户端52进行WPS协商,生成客户端52与候任主控设备51之间的工作密钥;
发送模块63,用于将生成模块62生成的工作密钥发送至客户端52。
如图7所示,获取模块61可以包括:
第一接收子模块611,用于接收在任主控设备53发送的客户端52的配置密码或客户端52与在任主控设备53之间的工作密钥。
该获取模块61可以包括:
第二接收子模块612,用于接收客户端52通过第一通道发送的利用公钥加密的新配置密码;
解密子模块613,用于利用私钥对加密的新配置密码进行解密,获得解密后的新配置密码。
上述设备,获取模块61获取客户端52的配置密码或客户端52与在任主控设备53之间的工作密钥,生成模块62根据获取模块61获取的配置密码或工作密钥,与客户端52进行WPS协商,生成客户端52与候任主控设备51之间的工作密钥,发送模块63将生成模块62生成的工作密钥发送至客户端52,从而实现了无线星型设备对设备网络连接D2D主控设备的安全切换配置。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。