一种用于建立安全连接的方法、设备及系统与流程

文档序号:16168770发布日期:2018-12-07 21:47阅读:144来源:国知局
一种用于建立安全连接的方法、设备及系统与流程

本发明涉及移动通信技术领域,尤其涉及一种用于建立安全连接的方法、设备及系统。



背景技术:

WiFi保护设置(WPS,Wi-Fi Protected Setup)是由无线保真(WiFi,Wireless Fidelity)联盟组织实施的认证项目,主要致力于简化无线局域网(WLAN,Wireless Local Area Network)安装及安全性能的配置工作。在传统方式下,用户新建一个无线网络时,必须在接入点手动设置安全密钥,然后在客户端验证密钥以阻止攻击者盗用WiFi资源。这整个过程需要用户具备WiFi设备的背景知识和修改必要配置的能力。WPS能帮助用户安全配置网络名(如:服务集标识(SSID,Service Set Identifier))、配置强大的Wifi保护接入(WPA,Wifi Protected Access)数据编码及认证功能,用户只需输入个人信息码(PIN,Person Identifier Number)即能安全地连入WLAN。这大大简化了无线安全设置的操作。但是,在WPS认证过程中,PIN码成为网络设备间获得接入的唯一要求,也就是说,如果攻击者获得了PIN码,就可以接入无线网络盗用WiFi资源了。

现有技术中,WPS的配置过程主要可以包括如下步骤:

步骤1:路由器和终端采用明文相互交换各自的DH(Diffie-Hellman)公钥;

步骤2:路由器使用自身的DH私钥以及终端的DH公钥生成共享密钥DHKey,终端使用自身的DH私钥以及路由器的DH公钥生成共享密钥DHKey;

步骤3:路由器根据自身生成的DHKey生成该DHKey的衍生密钥,并使用该衍生密钥结合自身生成的第一随机数和PIN码的前一半码值,采用哈希算法确定哈希值;

步骤4:路由器将步骤3中确定的哈希值,以及使用步骤3中生成的衍生密钥加密的第一随机数发送给终端;

步骤5:终端根据自身生成的DHKey生成该DHKey的衍生密钥,解密出第一随机数,并使用该衍生密钥结合第一随机数和PIN码的前一半码值,采用哈希算法确定哈希值,当确定的哈希值与步骤4中接收到的路由器确定的哈希值相同时,继续执行后续步骤;

步骤6:终端使用自身的DHKey的衍生密钥,结合第二随机数和PIN码的前一半码制,采用路由器采用的相同的哈希算法确定哈希值;

步骤7:终端将步骤5中确定的哈希值,以及使用自身的DHKey的衍生密钥加密的第二随机数发送给路由器;

步骤8:路由器使用自身的DHKey的衍生密钥,解密出第二随机数,并使用该衍生密钥结合自身生成的第二随机数和PIN码的前一半码值,采用哈希算法确定哈希值,当确定的哈希值与步骤7中接收到的终端确定的哈希值相同时,继续执行后续步骤;

步骤9:路由器采用与步骤3类似的方法对PIN码的后一半码值进行处理,得到PIN码后一半码值的哈希值,并发送给终端;

步骤10:终端采用与步骤5类似的方法对PIN码的后一半的哈希值进行验证,当路由器通过验证时,确定与路由器建立了安全连接;

步骤11:终端采用与步骤6类似的方法对PIN码的后一半码值进行处理,得到PIN码后一半码值的哈希值,并发送给路由器;

步骤12:路由器采用与步骤8类似的方法对PIN码的后一半的哈希值进行验证,当终端通过验证时,确定与终端建立了安全连接。

在上述WPS的配置过程中,攻击者可以假冒已知PIN码的终端,使用自身生成的DH公钥和DH私钥,通过步骤1与路由器互换各自的DH公钥,通过步骤2生成与路由器之间的DHKey,通过步骤4接收路由器发送的基于PIN码的前一半码值和第一随机数生成的哈希值,以及使用路由器的DHKey的衍生密钥加密的第一随机数。

那么,攻击者可以利用自身生成的与路由器相同的DHkey,利用所述DHkey所衍生出的衍生密钥解密出第一随机数,由于攻击者并不知晓PIN码,因此,不会验证接收的步骤4中路由器发送的哈希值是否正确,而是利用解密出的第一随机数,采用离线穷举的方式确定出PIN码的前一半码值,由于PIN码的前一半包含四位,可以依次针对每个四位数执行如下操作:使用自身生成的衍生密钥,结合第一随机数和该四位数,采用哈希算法确定哈希值,当确定的哈希值与接收到的路由器发送的哈希值相同时,确定该四位数即为PIN码的前一半码值,由于PIN码较短,攻击者只需要试104次就可以离线计算出PIN码的前一半码值。

进一步地,由于在路由器和攻击者进行第一次WPS配置过程中,攻击者并不知晓PIN码的前一半码值(是后续通过离线穷举得到的),因此,在步骤6中,攻击者无法得到基于PIN码的前一半码值确定的哈希值,那么在步骤8中,路由器能够验证出攻击者存在安全隐患而不会进行后续的数据通信。

为了获取PIN码的后一半码值,需要进行第二次WPS配置,由于通过第一次WPS配置,攻击者获得了PIN码的前一半码值,那么,攻击者可以通过类似的方式获取PIN码的后一半码值。也就是说,在第二次WPS配置过程中,攻击者通过步骤9接收路由器发送的基于PIN码的后一半码值和第一随机数生成的哈希值,可以采用与获得PIN码的前一半码值时类似的方式,即离线穷举的方式获得PIN码的后一半码值,那么通过第一次WPS配置以及第二次WPS配置,攻击者能够获得整个PIN码。攻击者可以使用该PIN码盗用WiFi资源,可见现有技术中的WPS配置机制存在漏洞,并不安全。



技术实现要素:

本发明实施例提供了一种用于建立安全连接的方法、设备及系统,用以解决现有技术中设备间的网络连接安全性差的问题。

第一方面,提供一种用于建立安全连接的方法,包括:

第一设备通过带外方式安全获得第二设备的第一公钥预算值;其中,所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值;

第一设备使用获得的第一公钥预算值加密所述第一设备的非对称加密公钥;

第一设备将加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,所述第二密钥交换公钥用于所述第二设备使用所述第二密钥交换公钥以及所述第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与所述第一设备建立安全连接;

第一设备接收所述第二设备发送的加密的第二设备的第一密钥交换公钥,其中,所述加密的第一密钥交换公钥为所述第二设备使用第二设备的第一公钥预算值解密接收到的加密后的第一设备的非对称加密公钥,并使用解密后的第一设备的非对称加密公钥对第一密钥交换公钥进行加密得到的;

第一设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密;

第一设备使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;

第一设备在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用所述第一设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第一方面,在第一种可能的实现方式中,所述第一设备在生成所述共享密钥之后,生成第一验证信息,其中,所述第一验证信息为所述第一设备使用生成的共享密钥将第一指定信息加密得到的第一加密值,或者,使用生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,或者,使用所述非对称加密私钥加密的第一指定信息生成的签名,所述第一指定信息为所述第一设备和所述第二设备预先约定的信息;将所述第一验证信息发送给所述第二设备,其中,所述第一验证信息用于所述第二设备根据接收到的所述第一验证信息验证所述第一设备是否可信。

结合第一方面,或者结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,第一设备接收所述第二设备发送的第二验证信息,其中,所述第二验证信息为所述第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,所述第二指定信息为所述第一设备和所述第二设备预先约定的信息;所述第一设备在生成所述共享密钥之后,还包括:当所述第二验证信息为所述第二加密值时,使用所述第一设备生成的共享密钥解密所述第二加密值;根据解密后得到的第二指定信息是否正确,确定生成的共享密钥是否可用;当所述第二验证信息为所述第二哈希值时,使用所述第一设备生成的共享密钥结合所述第二指定信息进行哈希运算;根据所述第一设备得到的哈希值与所述第二哈希值是否匹配,确定生成的共享密钥是否可用。

结合第一方面,或者结合第一方面的第一种可能的实现方式,或者结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在所述第一设备利用所述共享密钥与所述第二设备建立安全连接之后,还包括:第一设备通过带外方式安全获得第三设备的公钥预算值;将获得的第三设备的公钥预算值加密并发送给第二设备,其中,所述第三设备的公钥预算值用于所述第二设备基于所述第三设备的公钥预算值与所述第三设备建立安全连接。

结合第一方面,或者结合第一方面的第一种可能的实现方式,或者结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,在所述第一设备利用所述共享密钥与所述第二设备建立安全连接之后,还包括:第一设备通过带外方式安全获得第四设备的第三公钥预算值;使用获得的第三公钥预算值加密所述第一设备的非对称加密公钥;第一设备将加密后的非对称加密公钥发送给第四设备;接收所述第四设备发送的加密的第四设备的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第四设备使用第四设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;第一设备使用与所述非对称加密公钥对应的私钥,对加密的第三密钥交换公钥解密;使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;第一设备在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用所述第一设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第四设备建立安全连接;在所述第一设备与所述第二设备建立安全连接之后,以及所述第一设备与所述第四设备建立安全连接之后,还包括:所述第一设备基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使所述第二设备和所述第四设备之间建立安全连接的连接信息;将确定的所述连接信息分别发送给所述第二设备和所述第四设备。

结合第一方面,或者结合第一方面的第一种可能的实现方式,或者结合第一方面的第二种可能的实现方式,在第五种可能的实现方式中,第一设备的第二密钥交换公钥信息为明文的第一设备的第二密钥交换公钥,或者使用所述第二设备的第一公钥预算值加密的第二密钥交换公钥。

第二方面,提供一种用于建立安全连接的方法,包括:

第一设备接收第二设备发送的加密的第二设备的非对称加密公钥,其中,所述加密的第二设备的非对称加密公钥为所述第二设备使用通过带外方式安全获得的第一设备的第一公钥预算值加密的;所述第一公钥预算值为使用预设算法,基于第一设备的第一密钥交换公钥进行运算得到的值;

第一设备使用第一设备的第一公钥预算值对接收到的加密后的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第一设备的第一密钥交换公钥;

第一设备将加密后的第一密钥交换公钥发送给所述第二设备,用于所述第二设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与所述第一设备建立安全连接的共享密钥;

第一设备获得第二设备的第二密钥交换公钥;

第一设备使用所述第一设备的密钥交换私钥以及获得的第二密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第二方面,在第一种可能的实现方式中,第一设备接收所述第二设备发送的第三验证信息,其中,所述第三验证信息为所述第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,为所述第二设备使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,为所述第二设备使用所述非对称加密私钥加密的第三指定信息生成的签名,所述第三指定信息为所述第一设备和所述第二设备预先约定的信息;所述第一设备在生成所述共享密钥之后,还包括:当所述第三验证信息为所述第三加密值时,所述第一设备使用所述第一设备生成的共享密钥解密所述第三加密值;根据解密后得到的第三指定信息是否正确,确定生成的共享密钥是否可用;当所述第三验证信息为所述第三哈希值时,所述第一设备使用所述第一设备生成的共享密钥对所述第三指定信息进行哈希运算;根据所述第一设备得到的哈希值与所述第三哈希值是否匹配,确定生成的共享密钥是否可用;当所述第三验证信息为所述加密的签名时,所述第一设备使用所述非对称加密公钥对所述加密的签名解密;根据解密后得到的第三指定信息是否正确,确定所述第二设备是否可信。

结合第二方面,或者结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一设备在生成所述共享密钥之后,使用生成的共享密钥生成第四验证信息,其中,所述第四验证信息为所述第一设备使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,所述第四指定信息为所述第一设备和所述第二设备预先约定的信息;将所述第四验证信息发送给所述第二设备,其中,所述第四验证信息用于所述第二设备根据接收到的所述第四验证信息验证所述第一设备是否可信。

结合第二方面,或者结合第二方面的第一种可能的实现方式,或者结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,第一设备获得第二设备的第二密钥交换公钥,具体包括:接收所述第二设备发送的第二密钥交换公钥信息,其中,所第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用所述第一设备的公钥预算值加密的第二密钥交换公钥;当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用所述第一设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

结合第二方面,或者结合第二方面的第一种可能的实现方式,或者结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,在利用所述共享密钥与所述第二设备建立安全连接之后,还包括:第一设备接收所述第二设备发送的加密后的第三设备的第三公钥预算值;将接收的加密后的第三公钥预算值解密,使用解密后的第三公钥预算值加密所述第一设备的非对称加密公钥;第一设备将加密后的非对称加密公钥发送给所述第三设备;接收所述第三设备发送的加密的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第三设备使用第三设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;第一设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第三密钥交换公钥解密;使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;第一设备在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用所述第一设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第三设备建立安全连接。

第三方面,提供一种用于建立安全连接的设备,包括:

获得模块,用于通过带外方式安全获得第二设备的第一公钥预算值;其中,所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值;

加密模块,用于使用所述获得模块获得的第一公钥预算值加密本设备的非对称加密公钥;

发送模块,用于将所述加密模块加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,所述第二密钥交换公钥用于所述第二设备使用所述第二密钥交换公钥以及所述第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与所述第一设备建立安全连接;

接收模块,用于接收所述第二设备发送的加密的第二设备的第一密钥交换公钥,其中,所述加密的第一密钥交换公钥为所述第二设备使用第二设备的第一公钥预算值解密接收到的加密后的本设备的非对称加密公钥,并使用解密后的本设备的非对称加密公钥对第一密钥交换公钥进行加密得到的;

解密模块,用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收模块接收的加密的第一密钥交换公钥解密;

运算模块,用于使用预设算法,基于所述解密模块解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;

生成模块,用于在第一公钥预算值与所述运算模块得到的第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第三方面,在第一种可能的实现方式中,所述生成模块,还用于在生成所述共享密钥之后,生成第一验证信息,其中,所述第一验证信息为所述生成模块使用生成的共享密钥将第一指定信息加密得到的第一加密值,或者,所述生成模块使用生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,或者,所述生成模块使用所述非对称加密私钥加密的第一指定信息生成的签名,所述第一指定信息为本设备和所述第二设备预先约定的信息;所述发送模块,还用于将所述生成模块生成的所述第一验证信息发送给所述第二设备,其中,所述第一验证信息用于所述第二设备根据接收到的所述第一验证信息验证本设备是否可信。

结合第三方面,或者结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块,还用于接收所述第二设备发送的第二验证信息,其中,所述第二验证信息为所述第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,所述第二指定信息为本设备和所述第二设备预先约定的信息;所述解密模块,还用于在生成所述共享密钥之后,当所述接收模块接收的所述第二验证信息为所述第二加密值时,使用所述生成模块生成的共享密钥解密所述第二加密值;以及当所述第二验证信息为所述第二哈希值时,使用所述生成模块生成的共享密钥结合所述第二指定信息进行哈希运算;所述生成模块,还用于根据所述解密模块解密所述第二加密值后得到的第二指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述解密模块对所述第二指定信息进行哈希运算得到的哈希值与所述第二哈希值是否匹配,确定生成的共享密钥是否可用。

结合第三方面,或者结合第三方面的第一种可能的实现方式,或者结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述获得模块,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第三设备的公钥预算值;所述发送模块,还用于将所述获得模块获得的第三设备的公钥预算值加密并发送给第二设备,其中,所述第三设备的公钥预算值用于所述第二设备基于所述第三设备的公钥预算值与所述第三设备建立安全连接。

结合第三方面,或者结合第三方面的第一种可能的实现方式,或者结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,所述获得模块,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第四设备的第三公钥预算值;所述加密模块,还用于使用所述获得模块获得的第三公钥预算值加密本设备的非对称加密公钥;所述发送模块,还用于将所述加密模块加密后的非对称加密公钥发送给第四设备;所述接收模块,还用于接收所述第四设备发送的加密的第四设备的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第四设备使用第四设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;所述解密模块,还用于使用与所述非对称加密公钥对应的私钥,对所述接收模块接收的加密的第三密钥交换公钥解密;所述运算模块,还用于使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;所述生成模块,还用于在第三公钥预算值与所述运算模块得到的第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第四设备建立安全连接;以及在本设备与所述第二设备建立安全连接之后,且本设备与所述第四设备建立安全连接之后,基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使所述第二设备和所述第四设备之间建立安全连接的连接信息;所述发送模块,还用于将所述生成模块确定的所述连接信息分别发送给所述第二设备和所述第四设备。

结合第三方面,或者结合第三方面的第一种可能的实现方式,或者结合第三方面的第二种可能的实现方式,在第五种可能的实现方式中,所述发送模块发送的第一设备的第二密钥交换公钥信息为明文的第一设备的第二密钥交换公钥,或者使用所述第二设备的第一公钥预算值加密的第二密钥交换公钥。

第四方面,提供一种用于建立安全连接的设备,包括:

接收模块,用于接收第二设备发送的加密的第二设备的非对称加密公钥,其中,所述加密的第二设备的非对称加密公钥为所述第二设备使用通过带外方式安全获得的本设备的第一公钥预算值加密的;所述第一公钥预算值为使用预设算法,基于本设备的第一密钥交换公钥进行运算得到的值;

解密模块,用于使用本设备的第一公钥预算值对所述接收模块接收到的加密后的非对称加密公钥解密;

加密模块,用于使用所述解密模块解密后的非对称加密公钥加密本设备的第一密钥交换公钥;

发送模块,用于将所述加密模块加密后的第一密钥交换公钥发送给所述第二设备,用于所述第二设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与本设备建立安全连接的共享密钥;

获得模块,用于获得第二设备的第二密钥交换公钥;

生成模块,用于使用本设备的密钥交换私钥以及所述获得模块获得的第二密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第四方面,在第一种可能的实现方式中,所述接收模块,还用于接收所述第二设备发送的第三验证信息,其中,所述第三验证信息为所述第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,为所述第二设备使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,为所述第二设备使用所述非对称加密私钥加密的第三指定信息生成的签名,所述第三指定信息为本设备和所述第二设备预先约定的信息;所述解密模块,还用于所述生成模块在生成所述共享密钥之后,当所述第三验证信息为所述第三加密值时,使用所述生成模块生成的共享密钥解密所述第三加密值;以及当所述第三验证信息为所述第三哈希值时,使用所述生成模块生成的共享密钥对所述第三指定信息进行哈希运算;以及当所述第三验证信息为所述加密的签名时,使用所述非对称加密公钥对所述加密的签名解密;所述生成模块,还用于根据所述解密模块解密所述第三加密值后得到的第三指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述解密模块对所述第三指定信息进行哈希运算得到的哈希值与所述第三哈希值是否匹配,确定生成的共享密钥是否可用;以及根据所述解密模块对所述加密的签名解密后得到的第三指定信息是否正确,确定所述第二设备是否可信。

结合第四方面,或者结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述生成模块,还用于在生成所述共享密钥之后,使用生成的共享密钥生成第四验证信息,其中,所述第四验证信息为所述生成模块使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,所述生成模块使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,所述第四指定信息为本设备和所述第二设备预先约定的信息;所述发送模块,还用于将所述生成模块生成的所述第四验证信息发送给所述第二设备,其中,所述第四验证信息用于所述第二设备根据接收到的所述第四验证信息验证本设备是否可信。

结合第四方面,或者结合第四方面的第一种可能的实现方式,或者结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述获得模块,具体用于接收所述第二设备发送的第二密钥交换公钥信息,其中,所第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用本设备的公钥预算值加密的第二密钥交换公钥;当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用本设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

结合第四方面,或者结合第四方面的第一种可能的实现方式,或者结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,还包括:运算模块;所述接收模块,还用于在所述生成模块利用所述共享密钥与所述第二设备建立安全连接之后,接收所述第二设备发送的加密后的第三设备的第三公钥预算值;所述解密模块,还用于将所述接收模块接收的加密后的第三公钥预算值解密;所述加密模块,还用于使用所述解密模块解密后的第三公钥预算值加密本设备的非对称加密公钥;所述发送模块,还用于将加密后的非对称加密公钥发送给所述第三设备;所述接收模块还用于在所述发送模块将加密后的非对称加密公钥发送给所述第三设备之后,接收所述第三设备发送的加密的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第三设备使用第三设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;所述解密模块还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收模块接收的加密的第三密钥交换公钥解密;所述运算模块,用于使用预设算法,基于所述解密模块解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;所述生成模块,还用于在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第三设备建立安全连接。

第五方面,提供一种用于建立安全连接的系统,包括:第三方面或第三方面任一种可能的实现方式提供的设备,以及第四方面或第四方面任一种可能的实现方式提供的设备。

第六方面,提供一种用于建立安全连接的设备,包括:

处理器,用于通过带外方式安全获得第二设备的第一公钥预算值;其中,所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值;并使用获得的第一公钥预算值加密本设备的非对称加密公钥;

发送器,用于将所述处理器加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,所述第二密钥交换公钥用于所述第二设备使用所述第二密钥交换公钥以及所述第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与所述第一设备建立安全连接;

接收器,用于接收所述第二设备发送的加密的第二设备的第一密钥交换公钥,其中,所述加密的第一密钥交换公钥为所述第二设备使用第二设备的第一公钥预算值解密接收到的加密后的本设备的非对称加密公钥,并使用解密后的本设备的非对称加密公钥对第一密钥交换公钥进行加密得到的;

处理器,还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收器接收的加密的第一密钥交换公钥解密;并使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第六方面,在第一种可能的实现方式中,所述处理器,还用于在生成所述共享密钥之后,生成第一验证信息,其中,所述第一验证信息为所述处理器使用生成的共享密钥将第一指定信息加密得到的第一加密值,或者,所述处理器使用生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,或者,所述处理器使用所述非对称加密私钥加密的第一指定信息生成的签名,所述第一指定信息为本设备和所述第二设备预先约定的信息;所述发送器,还用于将所述处理器生成的所述第一验证信息发送给所述第二设备,其中,所述第一验证信息用于所述第二设备根据接收到的所述第一验证信息验证本设备是否可信。

结合第六方面,或者结合第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收器,还用于接收所述第二设备发送的第二验证信息,其中,所述第二验证信息为所述第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,所述第二指定信息为本设备和所述第二设备预先约定的信息;所述处理器,还用于在生成所述共享密钥之后,当所述接收器接收的所述第二验证信息为所述第二加密值时,使用所述处理器生成的共享密钥解密所述第二加密值;以及当所述第二验证信息为所述第二哈希值时,使用所述处理器生成的共享密钥结合所述第二指定信息进行哈希运算;根据解密所述第二加密值后得到的第二指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述处理器对所述第二指定信息进行哈希运算得到的哈希值与所述第二哈希值是否匹配,确定生成的共享密钥是否可用。

结合第六方面,或者结合第六方面的第一种可能的实现方式,或者结合第六方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第三设备的公钥预算值;所述发送器,还用于将所述处理器获得的第三设备的公钥预算值加密并发送给第二设备,其中,所述第三设备的公钥预算值用于所述第二设备基于所述第三设备的公钥预算值与所述第三设备建立安全连接。

结合第六方面,或者结合第六方面的第一种可能的实现方式,或者结合第六方面的第二种可能的实现方式,在第四种可能的实现方式中,所述处理器,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第四设备的第三公钥预算值;并使用获得的第三公钥预算值加密本设备的非对称加密公钥;所述发送器,还用于将所述处理器加密后的非对称加密公钥发送给第四设备;所述接收器,还用于接收所述第四设备发送的加密的第四设备的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第四设备使用第四设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;所述处理器,还用于使用与所述非对称加密公钥对应的私钥,对所述接收器接收的加密的第三密钥交换公钥解密;并使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第四设备建立安全连接;以及在本设备与所述第二设备建立安全连接之后,且本设备与所述第四设备建立安全连接之后,基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使所述第二设备和所述第四设备之间建立安全连接的连接信息;所述发送器,还用于将所述处理器确定的所述连接信息分别发送给所述第二设备和所述第四设备。

结合第六方面,或者结合第六方面的第一种可能的实现方式,或者结合第六方面的第二种可能的实现方式,在第五种可能的实现方式中,所述发送器发送的第一设备的第二密钥交换公钥信息为明文的第一设备的第二密钥交换公钥,或者使用所述第二设备的第一公钥预算值加密的第二密钥交换公钥。

第七方面,提供一种用于建立安全连接的设备,包括:

接收器,用于接收第二设备发送的加密的第二设备的非对称加密公钥,其中,所述加密的第二设备的非对称加密公钥为所述第二设备使用通过带外方式安全获得的本设备的第一公钥预算值加密的;所述第一公钥预算值为使用预设算法,基于本设备的第一密钥交换公钥进行运算得到的值;

处理器,用于使用本设备的第一公钥预算值对所述接收器接收到的加密后的非对称加密公钥解密;并使用解密后的非对称加密公钥加密本设备的第一密钥交换公钥;

发送器,用于将所述处理器加密后的第一密钥交换公钥发送给所述第二设备,用于所述第二设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与本设备建立安全连接的共享密钥;

所述处理器,还用于获得第二设备的第二密钥交换公钥;并使用本设备的密钥交换私钥以及获得的第二密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

结合第七方面,在第一种可能的实现方式中,所述接收器,还用于接收所述第二设备发送的第三验证信息,其中,所述第三验证信息为所述第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,为所述第二设备使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,为所述第二设备使用所述非对称加密私钥加密的第三指定信息生成的签名,所述第三指定信息为本设备和所述第二设备预先约定的信息;所述处理器,还用于在生成所述共享密钥之后,当所述第三验证信息为所述第三加密值时,使用生成的共享密钥解密所述第三加密值;以及当所述第三验证信息为所述第三哈希值时,使用生成的共享密钥对所述第三指定信息进行哈希运算;以及当所述第三验证信息为所述加密的签名时,使用所述非对称加密公钥对所述加密的签名解密;并根据解密所述第三加密值后得到的第三指定信息是否正确,确定生成的共享密钥是否可用;以及根据对所述第三指定信息进行哈希运算得到的哈希值与所述第三哈希值是否匹配,确定生成的共享密钥是否可用;以及根据对所述加密的签名解密后得到的第三指定信息是否正确,确定所述第二设备是否可信。

结合第七方面,或者结合第七方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器,还用于在生成所述共享密钥之后,使用生成的共享密钥生成第四验证信息,其中,所述第四验证信息为使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,所述第四指定信息为本设备和所述第二设备预先约定的信息;所述发送器,还用于将所述处理器生成的所述第四验证信息发送给所述第二设备,其中,所述第四验证信息用于所述第二设备根据接收到的所述第四验证信息验证本设备是否可信。

结合第七方面,或者结合第七方面的第一种可能的实现方式,或者结合第七方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器,具体用于接收所述第二设备发送的第二密钥交换公钥信息,其中,所第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用本设备的公钥预算值加密的第二密钥交换公钥;当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用本设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

结合第七方面,或者结合第七方面的第一种可能的实现方式,或者结合第七方面的第二种可能的实现方式,在第四种可能的实现方式中,所述接收器,还用于在所述处理器利用所述共享密钥与所述第二设备建立安全连接之后,接收所述第二设备发送的加密后的第三设备的第三公钥预算值;所述处理器,还用于将所述接收器接收的加密后的第三公钥预算值解密;并使用解密后的第三公钥预算值加密本设备的非对称加密公钥;所述发送器,还用于将加密后的非对称加密公钥发送给所述第三设备;所述接收器,还用于在所述发送器将加密后的非对称加密公钥发送给所述第三设备之后,接收所述第三设备发送的加密的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第三设备使用第三设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;所述处理器,还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收器接收的加密的第三密钥交换公钥解密;并使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第三设备建立安全连接。

第八方面,提供一种用于建立安全连接的系统,包括:第六方面或者第六方面的任一种可能的实现方式提供的设备,以及第七方面或则第七方面的任一种可能的实现方式提供的设备。

本发明实施例的有益效果包括:

本发明实施例提供的一种用于建立安全连接的方法、设备及系统,与现有技术不同,现有技术中,第一设备和第二设备采用明文交换各自的DH公钥,使得攻击者可以冒充已知PIN码的第一设备获得第二设备的DH公钥,并与攻击者自身生成的DH私钥生成共享密钥,并基于通过该共享密钥生成的衍生密钥,通过与第二设备的第一次WPS配置过程,获得PIN码的前一半值,再通过与第二设备的第二次WPS配置过程,获得PIN码的后一半值,从而得到整个PIN码,盗用WiFi资源;

针对本发明实施例提供的用于建立安全连接的方法之一,与现有技术相比,第一设备和第二设备不会采用明文的方式交换各自的DH公钥(可以对应本发明实施例中的密钥交换公钥),也不会基于共享密钥交换加密的PIN码,而是第一设备通过带外方式安全获得第二设备的第一公钥预算值,此处第一公钥预算值与现有技术中所使用的PIN码不同,PIN码可以是预设的任意值,而第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值。对于攻击者来说,攻击者无法正当地通过带外方式安全获得第二设备的第一公钥预算值,而即使攻击者冒充已知第一公钥预算值的第一设备,也无法通过现有技术中的两次WPS配置过程获得第一公钥预算值,因为在本发明实施例提供的用于建立安全连接的方法中,第一设备需要使用获得的第一公钥预算值加密第一设备的非对称加密公钥,并将加密后的非对称加密公钥发送给第二设备,第二设备使用自身的第一公钥预算值解密加密的非对称加密公钥,并使用该非对称加密公钥对第二设备的第一密钥交换公钥加密,并将加密后的第一密钥交换公钥发送给第一设备;假设攻击者冒充第一设备,假设一个第一公钥预算值,并用其加密攻击者自身的非对称加密公钥,发送给第二设备,第二设备使用正确的第一公钥预算值解密后,无法得到正确的非对称加密公钥,那么第二设备使用错误的非对称加密公钥对第一密钥交换公钥进行加密,并发送给攻击者,攻击者使用自身的非对称加密私钥也无法得到第一密钥交换公钥,也就无法与第二设备建立安全连接,并且,即使攻击者如现有技术中发起多次WPS过程也无法与第二设备建立安全连接,也就无法盗用WiFi资源,提高了设备间网络连接的安全性;

另外,第一设备向第二设备发送第一设备的第二密钥交换公钥信息,当该第二密钥交换公钥为明文时,与现有技术中第一设备和第二设备通过明文交换各自的DH公钥不同,本申请实施例提供的用于建立安全连接的方法之一,仅第一设备一方可以通过明文向第二设备传输第一设备的第二密钥交换公钥,即使攻击者截获了第一设备的明文的第二密钥交换公钥,并冒充第一设备将截获的第二密钥交换公钥发送给第二设备,使得第二设备使用该第二密钥交换公钥和自身的密钥交换私钥生成了共享密钥,攻击者还是无法获得第二设备的第一公钥预算值,并且无法生成与第二设备生成的共享密钥相对应的共享密钥,因此,在后续与第二设备进行基于共享密钥进行的四次握手中,由于无法通过四次握手中对共享密钥的验证,而使得攻击者与第二设备四次握手失败,无法继续后续的数据传输。可选的,当第二密钥交换公钥信息为使用第一公钥预算值加密的第二密钥交换公钥时,攻击者无法对第二密钥交换公钥信息解密,也就无法得到明文的第二密钥交换公钥,进一步提高了安全性。

针对本发明实施例提供的用于建立安全连接的方法之二,第一设备和第二设备不会采用明文的方式交换各自的DH公钥,也不会基于共享密钥交换加密的PIN码,而是第二设备通过带外方式安全获得第一设备的第一公钥预算值,此处第一公钥预算值与PIN码不同,PIN码可以是第一公钥预算值也可以是预设的任意值,而第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值。对于攻击者来说,攻击者无法正当地通过带外方式安全获得第一设备的第一公钥预算值,而即使攻击者冒充已知第一公钥预算值的第二设备,也无法通过现有技术中的两次WPS配置过程获得第一公钥预算值,因为在本发明实施例提供的用于建立安全连接的方法中,第二设备需要使用获得的第一公钥预算值加密第二设备的非对称加密公钥,并将加密后的非对称加密公钥发送给第一设备,第一设备使用自身的第一公钥预算值解密加密的非对称加密公钥,并使用该非对称加密公钥对第一设备的第一密钥交换公钥加密,并将加密后的第一密钥交换公钥发送给第二设备;假设攻击者冒充第二设备,假设一个第一公钥预算值,并用其加密攻击者自身的非对称加密公钥,发送给第一设备,第一设备使用正确的第一公钥预算值解密后,无法得到正确的非对称加密公钥,那么第一设备使用错误的非对称加密公钥对第一密钥交换公钥进行加密,并发送给攻击者,攻击者使用自身的非对称加密私钥也无法得到第一密钥交换公钥,也就无法与第一设备建立安全连接,并且,即使攻击者如现有技术中发起多次WPS过程也无法与第一设备建立安全连接,也就无法盗用WiFi资源,提高了设备间网络连接的安全性;

另外,第一设备获得第二设备的第二密钥交换公钥,当该第二密钥交换公钥为明文时,与现有技术中第一设备和第二设备通过明文交换各自的DH公钥不同,本申请实施例提供的用于建立安全连接的方法之二,仅第二设备一方可以通过明文向第一设备传输第二设备的第二密钥交换公钥,即使攻击者截获了第二设备的明文的第二密钥交换公钥,并冒充第二设备将截获的第二密钥交换公钥发送给第一设备,使得第一设备使用该第二密钥交换公钥和自身的密钥交换私钥生成了共享密钥,攻击者还是无法获得第一设备的第一公钥预算值,并且无法生成与第一设备生成的共享密钥相对应的共享密钥,因此,在后续与第一设备进行基于共享密钥进行的四次握手中,由于无法通过四次握手中对共享密钥的验证,而使得攻击者与第一设备四次握手失败,无法继续后续的数据传输。可选的,当第二密钥交换公钥信息为使用第一公钥预算值加密的第二密钥交换公钥时,攻击者无法对第二密钥交换公钥信息解密,也就无法得到明文的第二密钥交换公钥,进一步提高了安全性。

附图说明

图1为本发明实施例提供的一种用于建立安全连接的方法的流程图;

图2为本发明实施例提供的一种用于建立安全连接的方法的流程图;

图3为本发明实施例1提供的一种用于建立安全连接的方法的流程图;

图4为本发明实施例2提供的一种用于建立安全连接的方法的流程图;

图5为本发明实施例3提供的一种用于建立安全连接的方法的流程图;

图6为本发明实施例4提供的一种WLAN用户接入方法的流程图;

图7为本发明实施例5提供的一种用于建立安全连接的方法的流程图;

图8为本发明实施例6提供的一种用于建立安全连接的方法的流程图;

图9为本发明实施例提供的一种用于建立安全连接的设备之一的结构示意图;

图10为本发明实施例提供的一种用于建立安全连接的设备之二的结构示意图;

图11为本发明实施例提供的一种用于建立安全连接的设备之三的结构示意图;

图12为本发明实施例提供的一种用于建立安全连接的设备之四的结构示意图。

具体实施方式

本发明实施例提供了一种用于建立安全连接的方法、设备及系统,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明实施例提供一种用于建立安全连接的方法,可以应用于作为注册方设备或者被注册方设备,其中,当第一设备为注册方设备时,第二设备为被注册方设备,反之亦然。如图1所示,包括:

S101、第一设备通过带外方式安全获得第二设备的第一公钥预算值。

本发明中所述公钥预算值可以为使用预设算法,基于设备的密钥交换公钥进行运算得到的值。所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值。

S102、第一设备使用获得的第一公钥预算值加密第一设备的非对称加密公钥。

S103、第一设备将加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,第二密钥交换公钥用于第二设备使用第二密钥交换公钥以及第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与第一设备建立安全连接。

S104、第一设备接收第二设备发送的加密的第二设备的第一密钥交换公钥,

其中,加密的第一密钥交换公钥为第二设备使用第二设备的第一公钥预算值解密接收到的加密后的第一设备的非对称加密公钥,并使用解密后的第一设备的非对称加密公钥对第一密钥交换公钥进行加密得到的。

S105、第一设备使用与非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密。

S106、第一设备使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值。

S107、第一设备在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用第一设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用该共享密钥与所述第二设备建立安全连接。

与上述图1所示方法相应的,本发明实施例还提供一种用于建立安全连接的方法,应用于与上述图1所示方法应用于的设备相对应的设备,其中,当图1所示方法应用于的设备为注册方设备时,本实施例应用于的设备为被注册方设备,反之亦然。如图2所示,包括:

S201、第一设备接收第二设备发送的加密后的第二设备的非对称加密公钥,

其中,加密的第二设备的非对称加密公钥为第二设备使用通过带外方式安全获得的第一设备的第一公钥预算值加密的;第一公钥预算值为使用预设算法,基于第一设备的第一密钥交换公钥进行运算得到的值。

S202、第一设备使用第一设备的第一公钥预算值对接收到的加密后的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第一设备的第一密钥交换公钥。

S203、第一设备将加密后的第一密钥交换公钥发送给第二设备,用于第二设备使用与上述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与第一设备建立安全连接的共享密钥。

S204、第一设备获得第二设备的第二密钥交换公钥。

S205、第一设备使用第一设备的密钥交换私钥以及获得的第二密钥交换公钥生成共享密钥,并利用该共享密钥与第二设备建立安全连接。

进一步地,本发明实施例提供的建立安全连接的方法,可以应用在WPS配置过程中,也就是说当图1所示的方法应用于作为注册方设备时,图2所示的方法应用于作为被注册方设备,当图1所示的方法应用于作为被注册方设备时,图2所示的方法应用于作为注册方设备。

下面结合附图,用具体实施例对本发明提供的方法及相关设备进行详细描述。

实施例1:

本发明实施例1中提供一种用于建立安全连接的方法,应用于作为注册方设备或者被注册方设备,如图3所示,具体包括如下步骤:

S301、第一设备通过带外方式安全获得第二设备的第一公钥预算值,

进一步地,本步骤中,第一设备从第二设备获得第一公钥预算值,可以通过带外的方式从第二设备获取,带外的方式可以为除了WiFi方式之外的方式,例如,人工输入的方式、近距离无线通讯(NFC,Near Field Communication)方式、通用串行总线(USB,Universal Serial BUS)方式、扫描二维码、低功率WiFi(即WiFi的发射功率使得WiFi的传输距离在安全的距离内,小于1米)等安全媒介,以及从除了第一设备和第二设备之外的第三方设备获取的方式,即第一设备可以从第三设备中获取该第二设备的第一公钥预算值,第三设备中存储有该第二设备的第一公钥预算值,那么第一设备可通过带外方式从第三设备中获取该第二设备的第一公钥预算值;比如第三设备含有第二设备的多维码图像,那么第一设备可以扫描第三设备显示屏显示的该多维码图像,即可获取第二设备的第一公钥预算值。

进一步地,第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的,也就是说,第一公钥预算值可以使用预设算法,对第二设备的第一密钥交换公钥进行运算得到,也可以使用预设算法,对第二设备的第一密钥交换公钥以及指定信息进行运算得到。其中,指定信息可以为预先约定的信息,例如,指定报文的部分或者全部内容、指定报文部分或全部内容的哈希运算值等。预设算法可以为哈希算法,截断算法等,也就是说,第一公钥预算值可以为第一密钥交换公钥的哈希值,或者为第一密钥交换公钥的截断值,或者为第一密钥交换公钥结合指定信息的哈希值,或者为第一密钥交换公钥结合指定信息的截断值等。第二设备也可以通过提供标签的方式,使标签中包含该第一公钥预算值。

进一步地,第一设备获得的第二设备的信息除了第二设备的第一公钥预算值,还可以包括第二设备的媒体接入控制(MAC,Medium Access Control)地址、第二设备的种类(例如,接入点(AP,Access Point)、传感器(sensor)或普通设备等)、第二设备的角色(例如,点对点(P2P,Point to Point)连接过程中的组长(GO,Group Owner)设备/客户端(client)、或WPS连接过程中的注册器(registrar)/登记者(enrollee)等)、第二设备还可以提供动态标签,动态标签中可以包括第二设备的用于加快设备间发现过程的信道号、用于保持消息新鲜性或生成某信息的随机值等,第一设备具体需要从第二设备获取的信息种类,可以根据实际需要进行设置。

S302、第一设备使用获得的第一公钥预算值加密第一设备的非对称加密公钥。

进一步地,本步骤中,第一设备使用第一公钥预算值加密第一设备的非对称加密公钥,为对称加密过程,也就是说,加密时使用的密码和解密时使用的密码相同,因为第二设备知道该第一公钥预算值,因此,第二设备能够使用第一公钥预算值将加密的非对称加密公钥解密,得到解密后的非对称加密公钥。

进一步地,第一设备的非对称加密公钥可以为动态生成的,也可以为固定不变的。

S303、第一设备将加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,第二密钥交换公钥用于第二设备使用第二密钥交换公钥以及第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与第一设备建立安全连接。

进一步地,本步骤中,可以将第一设备的第二密钥交换公钥信息发送给第二设备,并且非对称加密公钥和第二密钥交换公钥信息可以在同一个数据包中发送给第二设备,也可以通过不同的数据包先后发送给第二设备。第二密钥交换公钥信息为通过明文传输的第二密钥交换公钥,或者加密之后发送给第二设备的第二密钥交换公钥。该第二密钥交换公钥用于第二设备使用该第二密钥交换公钥以及第二设备的密钥交换私钥生成共享密钥。

进一步地,第一设备将第二密钥交换公钥信息、加密后的非对称加密公钥发送给第二设备之前或者之后,可以向第二设备发送对应的密钥交换算法和非对称加密算法,或者在发送第二密钥交换公钥和/或加密后的非对称加密公钥的数据包中可以携带对应的密钥交换算法,例如:(DH,Diffie-Hellman)密钥交换算法和非对称加密算法,例如(RSA,Ron Rivest、Adi Shamirh)非对称加密算法。

S304、第一设备接收第二设备发送的加密的第二设备的第一密钥交换公钥,

其中,加密的第一密钥交换公钥为第二设备使用第二设备的第一公钥预算值解密接收到的加密后的第一设备的非对称加密公钥,并使用解密后的第一设备的非对称加密公钥对第一密钥交换公钥进行加密得到的。

S305、第一设备使用与非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密。

进一步地,本实施例中,为了保障WiFi连接的安全性,非对称加密公钥不能够明文传输,而需要加密传输,假设非对称加密公钥使用明文传输,那么攻击者可以生成自身的非对称加密公钥和非对称加密私钥,并且假冒第一设备将生成的非对称加密公钥发送给第二设备,第二设备使用该非对称加密公钥加密第一密钥交换公钥并发送给攻击者,攻击者可以使用自身生成的非对称加密私钥解密,就能够得到该第一密钥交换公钥,那么就可能通过离线方式计算出第一公钥预算值。这样使用第一公钥预算值将非对称加密公钥加密传输,当攻击者假冒第二设备时,由于攻击者不知道第一公钥预算值,因此当接收到第一设备使用第一公钥预算值加密的非对称加密公钥时,无法解密该非对称加密公钥,后续步骤中,如果假冒第二设备使用错误的非对称加密公钥加密错误的第一密钥交换公钥,第一设备会验证出接收到的第一密钥交换公钥是错误的,那么也就无法继续后续的交互。

进一步地,本实施例中,第二密钥交换公钥信息为明文的第二密钥交换公钥,或者为使用上述第一公钥预算值加密的第二密钥交换公钥,即第一设备的第二密钥交换公钥可以以明文的形式进行传输,也可以加密传输,因为即使攻击者假冒第二设备获取了第一设备的第二密钥交换公钥,并生成了与第一设备的共享密钥,在后续与第一设备进行四次握手时,也会对该共享密钥进行验证,使得攻击者无法继续后续的数据交互。

进一步地,当第二密钥交换公钥信息为使用第一公钥预算值加密的第二密钥交换公钥时,在将第二密钥交换公钥信息发送给第二设备之前,还包括:使用上述第一公钥预算值加密第二密钥交换公钥,得到第二密钥交换公钥信息。

进一步地,本实施例中,为了保障WiFi连接的安全性,采用非对称加密的方式对第一密钥交换公钥加密,假设采用对称加密的方式对第一密钥交换公钥加密,攻击者可以截获第一设备发送给第二设备的使用第一公钥预算值加密的非对称加密公钥,以及第二设备发送给第一设备的使用非对称加密公钥加密的第一密钥交换公钥,那么,攻击者可以通过离线的方式,穷举第一公钥预算值,例如:使用穷举第一公钥预算值解密加密的非对称加密公钥,得到假设的非对称加密公钥,使用该假设的非对称加密公钥对加密的第一密钥交换公钥解密,得到假设的第一密钥交换公钥,再通过该假设的第一密钥交换公钥计算假设的第一公钥预算值,当得到的假设的第一公钥预算值与为加密的非对称加密公钥解密时穷举的第一公钥预算值相同时,则确定出正确的第一公钥预算值。而采用非对称加密的方式对第一密钥交换公钥加密,由于非对称加密私钥只有第一设备知晓,因此攻击者无法采用离线穷举的方法得到第一公钥预算值,也就是说,攻击者无法在离线的状态下,通过穷举第一公钥预算值的方式确定出正确的第一公钥预算值,保证了WiFi连接的安全性。

进一步地,假如攻击者尝试通过在线穷举的方式获取第一公钥预算值,也就是说,穷举所有可能的第一公钥预算值,向第二设备发起连接,假设第一公钥预算值包含8位数字,攻击者需要发起上百万、上千万次甚至最多1亿次连接才能穷举出第一公钥预算值,而第一设备或者第二设备的保护措施不允许攻击者发起这么多次连接。

S306、第一设备使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值。

进一步地,本步骤中,第一设备可以在根据获得的第一公钥预算值,确定解密后的第一密钥交换公钥是否正确之前,通过带外方式获取到预设算法,也就是说,在根据获得的第一公钥预算值,确定解密后的第一密钥交换公钥是否正确之前,可以在获得第一公钥预算值之前,或者在获得第一公钥预算值之后,或者在获得第一公钥预算值的同一个数据包中,获得预设算法。那么就可以使用该预设算法,基于解密后的第一密钥交换公钥进行运算,来证实步骤S305中确定的解密后的第一密钥交换公钥是否正确,进一步可以证实第二设备是否值得信任。

进一步地,若第一公钥预算值为使用预设算法,对第二设备的第一密钥交换公钥以及指定信息进行运算得到,第一设备也可以在根据获得的第一公钥预算值,确定解密后的第一密钥交换公钥是否正确之前,通过带外等方式获取到该指定信息。

S307、第一设备在第一公钥预算值与S306中得到的第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用第一设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用该共享密钥与第二设备建立安全连接。

进一步地,第一设备在第一公钥预算值与S306中得到的第二公钥预算值不一致时,确定解密后的第一密钥交换公钥不正确,那么第二设备不值得信任,第一设备与第二设备之间无法建立安全连接。

进一步地,第一设备为了向第二设备证明自己拥有正确的密钥交换私钥以及非对称加密私钥,并能够生成共享密钥,本实施例中还可以包括步骤S308~S309:

S308、第一设备生成第一验证信息,

其中,第一验证信息为第一设备使用S307中生成的共享密钥将第一指定信息加密得到的第一加密值,或者,使用S307中生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,即哈希运算消息认证码(HMAC,Hash-based Message Authentication Code),或者,使用非对称加密私钥加密第一指定信息生成的签名,第一指定信息为所述第一设备和所述第二设备预先约定的信息。

本步骤中,第一指定信息为第一设备和第二设备预先约定的、共知的信息,例如:公钥预算值、消息内容(即第一设备和第二设备交互的某消息的全部或者部分内容)、消息内容的哈希运算值、某些明文等。

S309、将S308中得到的第一验证信息发送给第二设备,

其中,第一验证信息用于第二设备根据接收到的第一验证信息验证第一设备是否可信。

具体地,当第一验证信息为第一加密值时,第二设备使用第二设备生成的共享密钥解密第一加密值,根据解密后得到的第一指定信息是否正确,确定生成的共享密钥是否可用;

当第一验证信息为第一哈希值时,第二设备使用第二设备生成的共享密钥结合第一指定信息进行哈希运算,根据第二设备得到的哈希值与第一哈希值是否匹配,确定生成的共享密钥是否可用;

当第一验证信息为签名时,第二设备使用非对称加密公钥对签名解密,根据解密后得到的第一指定信息是否正确,确定第一设备是否可信。

进一步地,在密钥交换加密的过程中,如果双方均能够获得对方的正确的密钥交换公钥以及自身的密钥交换私钥,那么使用对方的密钥交换公钥和自身的密钥交换私钥以及对应的密钥交换算法能够得到相同的共享密钥,当第一验证信息为第一加密值时,当第一设备使用自身生成的共享密钥将第一指定信息加密,那么第二设备应该能够使用自身生成的共享密钥将该第一指定信息解密。因此,本步骤中,当得到的解密得到第一指定信息为第一设备和第二设备预先约定的正确的信息时,确定生成的共享密钥可用,当得到的第一指定信息与第一设备和第二设备预先约定的信息不同时,认为第一设备和第二设备之间的连接存在安全隐患,确定生成的共享密钥不可用;

同理,当第一验证信息为第一哈希值时,当第二设备使用自身生成的共享密钥采用与第一设备同样的哈希算法,结合第一指定信息进行哈希运算,得到的哈希值与第一哈希值应该是匹配的,因此,本步骤中,当得到的哈希值与接收到的第一哈希值匹配时,确定生成的共享密钥可用,否则,认为第一设备和第二设备之间的连接存在安全隐患,确定生成的共享密钥不可用;

当第一验证信息为签名时,第二设备可以使用非对称加密公钥对签名进行解密,得到哈希值,并确定该哈希值是否为第一指定信息的哈希值,若是,则确定第一设备可信,否则,确定第一设备不可信。

进一步地,本步骤中将S308中得到的第一验证信息发送给第二设备,可以将第一验证信息的生成方式也发送给第二设备,具体实施时,可以在发送第一验证信息之前或者之后发送,也可以在发送第一验证信息的同一个数据包中携带该生成方式。

进一步地,第二设备为了向第一设备证明自己拥有正确的密钥交换私钥,并能够生成共享密钥,本实施例中还可以包括步骤S310~S314:

S310、第一设备接收第二设备发送的加密后的第二验证信息,

其中,第二验证信息为第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,第二指定信息为第一设备和第二设备预先约定的信息。

本步骤中,第二指定信息为第一设备和第二设备预先约定的、共知的信息,例如:公钥预算值、消息内容(即第一设备和第二设备交互的某消息的全部或者部分内容)、消息内容的哈希运算值、某些明文等。第二指定信息可以与第一指定信息相同,也可以不同。

进一步地,本步骤的执行与上述步骤S304~S309的执行没有严格的先后顺序。

S311、当第二验证信息为第二加密值时,使用第一设备生成的共享密钥解密第二加密值。

S312、根据S311中解密后得到的第二指定信息是否正确,确定生成的共享密钥是否可用。

本步骤中,当得到的第二指定信息正确时,确定生成的共享密钥可用,当得到的第二指定信息不正确时,认为第一设备与第二设备之间的连接存在安全隐患,确定生成的共享密钥不可用。

S313、当第二验证信息为第二哈希值时,使用第一设备生成的共享密钥结合第二指定信息进行哈希运算。

S314、根据S313中第一设备得到的哈希值与第二哈希值是否匹配,确定生成的共享密钥是否可用。

根据实际情况,可以选择执行S311~S312,或S313~S314。

本步骤中,当第一设备得到的哈希值与第二哈希值匹配时,确定生成的共享密钥可用,当第一设备得到的哈希值与第二哈希值不匹配时,认为第一设备与第二设备之间的连接存在安全隐患,确定生成的共享密钥不可用。

进一步地,步骤S310~S314的执行与步骤S308~S309的执行没有严格的先后顺序。

在本发明的一个实施例中,可以包括S310~S314和/或S308~S309。

实施例2:

本发明实施例2中提供一种用于建立安全连接的方法,应用于与实施例1应用于的设备相对应的设备,即如果实施例1应用于作为注册方设备,那么实施例2可以应用于作为被注册方设备,如果实施例1应用于作为被注册方设备,那么实施例2可以应用于注册方设备,如图4所示,具体包括如下步骤:

S401、第一设备接收第二设备发送的加密后的第二设备的非对称加密公钥。

S402、第一设备使用第一设备的公钥预算值对接收到的加密后的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第一设备的第一密钥交换公钥,

其中,第一设备的公钥预算值为采用预设算法,基于所述第一设备的第一密钥交换公钥进行运算得到的。

S403、第一设备将加密后的第一密钥交换公钥发送给第二设备,用于第二设备生成用以与第一设备建立安全连接的共享密钥。

S404、第一设备获得第二设备的第二密钥交换公钥。

本步骤可以具体实施为:

步骤1:第一设备接收第二设备发送的第二密钥交换公钥信息,

其中,第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用第一设备的公钥预算值加密的第二密钥交换公钥;

步骤2:当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用第一设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

进一步地,第二密钥交换公钥可以在第二设备发送非对称加密公钥之前,或者之后,或者在发送非对称加密公钥的同一个数据包中发送第二密钥交换公钥。

进一步地,第二密钥交换公钥信息可以为明文的第二密钥交换公钥,或者可以为使用公钥预算值加密的第二密钥交换公钥;当第二密钥交换公钥信息为使用公钥预算值加密的第二密钥交换公钥时,在第一设备生成共享密钥之前,还包括:使用第一设备的公钥预算值将加密的第二密钥交换公钥解密。

S405、第一设备使用第一设备的密钥交换私钥以及获得的第二密钥交换公钥生成共享密钥,并利用该共享密钥与第二设备建立安全连接。

进一步地,步骤S404~S405的执行与步骤S401~S403的执行没有严格的先后顺序。

进一步地,第二设备为了向第一设备证明自己拥有正确的密钥交换私钥,并能够生成共享密钥,本实施例中,还可以包括步骤S406~S412:

S406、第一设备接收第二设备发送的第三验证信息,

其中,第三验证信息为第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,使用非对称加密私钥加密第三指定信息生成的签名,第三指定信息为第一设备和第二设备预先约定的信息。

本步骤中,第三指定信息为第一设备和第二设备预先约定的、共知的信息,例如:公钥预算值、消息内容(即第一设备和第二设备交互的某消息的全部或者部分内容)、某些明文等。

进一步地,本步骤的执行与步骤S404~S405没有严格的先后顺序。

S407、当第三验证信息为第三加密值时,第一设备使用第一设备生成的共享密钥解密第三加密值。

S408、根据S407中解密后得到的第三指定信息是否正确,确定生成的共享密钥是否可用。

进一步地,本步骤中,当得到的第三指定信息正确时,确定生成的共享密钥可用,当得到的第三指定信息不正确时,确定生成的共享密钥不可用。

S409、当第三验证信息为第三哈希值时,第一设备使用第一设备生成的共享密钥对第三指定信息进行哈希运算得到哈希值。

S410、根据S409中第一设备得到的哈希值与第三哈希值是否匹配,确定生成的共享密钥是否可用。

进一步地,本步骤中,当第一设备得到的哈希值与第三哈希值匹配时,确定生成的共享密钥可用,当第一设备得到的哈希值与第三哈希值不匹配时,确定生成的共享密钥不可用。

S411、当第三验证信息为签名时,第一设备使用非对称加密公钥对签名解密。

S412、根据S411中解密后得到的第三指定信息是否正确,确定第二设备是否可信。

进一步地,本步骤中,当解密后得到的第三指定信息正确时,确定第二设备可信,当解密后得到的第三指定信息不正确时,确定第二设备不可信。

进一步地,第一设备为了向第二设备证明自己拥有正确的密钥交换私钥,并能够生成共享密钥,本实施例中,在第一设备生成共享密钥之后,还可以包括步骤S413~S414:

S413、第一设备使用步骤S405中生成的共享密钥生成第四验证信息,

其中,第四验证信息为第一设备使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,第四指定信息为第一设备和所述第二设备预先约定的信息。

S414、将S413中得到的第四验证信息发送给第二设备,

其中,第四验证信息用于第二设备根据接收到的第四验证信息验证第一设备是否可信。

具体地,当第四验证信息为第四加密值时,第二设备使用第二设备生成的共享密钥解密第四加密值,根据解密后得到的第四指定信息是否正确,确定生成的共享密钥是否可用;

当第四验证信息为第四哈希值时,第二设备使用第二设备生成的共享密钥对第四指定信息进行哈希运算,根据第二设备得到的哈希值与第四哈希值是否匹配,确定生成的共享密钥是否可用。

进一步地,第四指定信息为第一设备和第二设备预先约定的、共知的信息,例如:公钥预算值、消息内容(即第一设备和第二设备交互的某消息的全部或者部分内容)、某些明文等。第四指定信息可以与第三指定信息相同,也可以不同。

实施例3:

本发明实施例3中提供一种用于建立安全连接的方法,应用于注册方设备以及被注册方设备,其中,当第一设备为注册方设备时,第二设备为被注册方设备,反之亦然。如图5所示,具体包括如下步骤:

S501、第一设备通过带外方式安全获得第二设备的第一公钥预算值,使用获得的第一公钥预算值加密第一设备的非对称加密公钥。

S502、将第一设备的第二密钥交换公钥信息、以及加密后的第一设备的非对称加密公钥发送给第二设备,

其中,第二密钥交换公钥用于第二设备使用第二设备的密钥交换私钥以及根据第二密钥交换公钥信息得到的第二密钥交换公钥生成共享密钥,第二密钥交换公钥信息为明文的第二密钥交换公钥信息,或者为使用第一公钥预算值加密的第二密钥交换公钥。

S503、第二设备接收到第二密钥交换公钥信息以及加密后的第一设备的非对称加密公钥之后,使用第一公钥预算值将加密的第一设备的非对称加密公钥进行解密,并使用解密后的第一设备的非对称加密公钥加密第二设备的第一密钥交换公钥;使用第二设备的密钥交换私钥以及根据第二密钥交换公钥信息得到的第二密钥交换公钥生成共享密钥,并使用该共享密钥加密第一指定信息。

S504、第二设备将加密的第一密钥交换公钥,以及加密的第一指定信息发送给第一设备。

S505、第一设备接收到第二设备发送的加密的第一密钥交换公钥,以及加密的第一指定信息之后,使用与非对称加密公钥对应的私钥将加密的第一密钥交换公钥解密,并在确定解密的第一密钥交换公钥正确之后,使用第一设备的密钥交换私钥与解密的第一密钥交换公钥生成共享密钥,使用生成的共享密钥解密加密的第一指定信息,在确定解密后的第一指定信息正确之后,确定生成的共享密钥可用;第一设备使用生成的共享密钥加密第二指定信息。

S506、第一设备将加密的第二指定信息发送给第二设备。

进一步地,第二指定信息与第一指定信息可以相同,也可以不同。

S507、第二设备接收到加密的第二指定信息之后,使用自身生成的共享密钥将加密的第二指定信息解密,在确定解密的第二指定信息正确之后,确定自身生成的共享密钥可用。

实施例4:

本发明实施例4中提供一种基于本发明实施例提供的用于建立安全连接的方法的WLAN用户接入方法。

WLAN用户接入的整体流程主要可以包括:设备发现过程、配置过程、以及四次握手过程。设备发现过程可以为主动发现过程(例如:用户主动连接接入点),或者被动发现过程,例如:在被动发现过程中,如果第一设备和第二设备中某一方设备为接入点AP,可以在广播消息(例如信标beacon消息)中携带WiFi简单配置消息元素(WSC IE,WiFi simple configuration information elements)以用于发现过程。

在配置过程中,可以通过可扩展认证协议(EAP,Extensible Authentication Protocol)封装实现,EAP是一种普遍使用的支持多种认证方法的认证框架协议,可以通过EAP请求消息、EAP回复消息对本发明实施例中提供的建立安全连接方法中两个设备之间发送的消息内容进行封装来完成配置过程,使双方设备获得信任状(例如双方分别生成的共享密钥)。

下面以主动发现过程为例,本发明实施例提供的WLAN用户接入方法如图6所示,具体包括如下步骤:

步骤S601~步骤S607为第一设备和第二设备的设备发现过程:

S601、第一设备通过带外方式安全获取第二设备的第一公钥预算值。

S602、第一设备向第二设备发送探测请求消息(probe request),并携带WSC IE。

本步骤中,探测消息中可以携带在后续的配置过程中将要采取的配置方式。

S603、第二设备向第一设备回复探测回复消息(probe response),并携带WSC IE。

本步骤中,当S602中的探测消息中携带有在后续的配置过程中将要采取的配置方式时,探测回复消息中可以携带对该配置方式的确认。

S604、第一设备向第二设备发送认证请求。

S605、第二设备向第一设备回复认证回复。

S606、第一设备向第二设备发送关联请求。

S607、第二设备向第一设备回复关联回复。

步骤S608~S614为第一设备和第二设备的配置过程:

S608、第一设备向第二设备发送基于局域网的扩展认证协议(EAPOL,Extensible Authentication Protocol over LANs)开始消息。

S609、第二设备向第一设备发送携带有请求第一设备ID(Identification)的EAP请求消息。

S610、第一设备向第二设备发送携带有第一设备ID的EAP回复消息。

S611、第二设备向第一设备发送表征WPS配置开始的EAP请求消息。

S612、第一设备向第二设备发送携带有第一设备的第二密钥交换公钥信息以及使用获取的第二设备的第一公钥预算值加密的第一设备的非对称加密公钥的EAP回复消息。

S613、第二设备向第一设备发送携带有使用第一设备的非对称加密公钥加密的第二设备的第一密钥交换公钥的EAP请求消息,本步骤可以参考S503中的相关部分。

S614、第一设备接收到第二设备发送的加密的第一密钥交换公钥,使用与非对称加密公钥对应的非对称加密私钥将加密的第一密钥交换公钥解密,并在确定解密的第一密钥交换公钥正确之后,使用第一设备的密钥交换私钥与解密的第一密钥交换公钥生成共享密钥,向第二设备发送携带有第一设备使用生成的共享密钥加密的HMAC信息或者签名信息等。

S615、第二设备使用自身生成的共享密钥将加密的HMAC信息解密,或者对前面信息进行验证之后,确定自身生成的共享密钥可用,向第一设备发送EAP失败消息。

S616、第二设备向第一设备发送EAP解除认证消息。

进一步地,执行到步骤S616,第一设备和第二设备之间已经完成了配置过程,生成了双方的共享密钥,在第一设备和第二设备均生成正确的共享密钥(例如DHKey)之后,双方设备可以确定基于共享密钥建立安全的网络连接。

进一步地,本实施例中,不是真正的EAP过程,而是利用EAP封装格式完成WPS认证消息的交互,因此,在步骤S615中,当第二设备确定自身生成的共享密钥可用之后,向第一设备发送的EAP失败消息,在本实施例中实质表征WPS认证成功,而如果第二设备确定认证失败时,不会向第一设备发送该EAP认证失败消息。同理,步骤S616中,EAP解除认证消息同样表征WPS认证成功。

进一步地,共享密钥可以作为后续四次握手的成对主密钥(PMK,Pair Master Key),也可以生成共享密钥的衍生信息,即通过共享密钥设备之间进行网络配置获得新的连接信息,并作为后续四次握手的PMK。例如:利用共享密钥加密一个新的连接密钥发给对方,或,使用共享密钥的映射值作为连接密钥(如,共享密钥的哈希值、共享密钥结合指定信息的哈希值等),或,共享密钥的一部分作为连接密钥。进一步地,生成共享密钥的衍生信息的过程需要根据设备类型来进行,比如:设备的种类(AP,sensor或普通设备等)、设备的角色(注册器Registrar/加入者enrollee,或组长Group owner/客户端client等)等设备信息,第一设备和第二设备可以根据设备的种类信息,设备的角色信息判断是否产生连接密钥发送给对方,或等待接收对方发送的连接密钥。

进一步地,四次握手的角色可以包括:认证者(Authenticator)以及请求者(Supplicant),通常情况下,AP设备可以作为Authenticator,待接入设备可以作为supplicant。对WPS规范来说,注册器Registrar可以作为authenticator,加入者enrollee可以作为supplicant,对P2P设备来说,组长GO设备可以作为authent-icator,客户端client可以作为supplicant。因此,在进行四次握手之前,第一设备和第二设备需要获取到对方的角色信息,例如:可以在S601中,第一设备通过带外方式获取第二设备的公钥预算值时,获取到第二设备的角色为AP时,可以判断自身需要等待对方(第二设备)发送的连接密钥。

假设第一设备的角色为请求者,第二设备的角色为认证者,将配置过程中生成的共享密钥作为PMK。步骤S617~S623为第一设备和第二设备获得信任状(例如:共享密钥或者共享密钥的衍生信息)之后四次握手的过程:

S617、第二设备向第一设备发送第一消息M1,M1中携带有第二设备产生的ANnonce。

S618、第一设备接收到M1之后,基于自身产生的SNnonce和ANnonce,利用共享密钥生成成对瞬时密钥(PTK,Pair Transient Key)。

S619、第一设备向第二设备发送第二消息M2,M2中携带有SNnonce,以及M2消息的哈希值(如:消息完整性编码(MIC,Message Integrality Code)值)。

S620、第二设备接收到M2之后,基于SNnonce和ANnonce,利用共享密钥生成PTK,重新生成M2的MIC,验证自身生成的MIC与M2中携带的MIC值是否匹配。

S621、第二设备向第一设备发送第三消息M3,M3中携带有ANnonce,以及根据需要利用PTK加密组会话密钥信息,以及M3的MIC值。

S622、第一设备接收到M3之后,重新生成M3的MIC,验证自身生成的MIC与M3中携带的MIC值是否匹配,根据需要解密M3中由PTK加密的组会话信息。

S623、第一设备向第二设备发送第四消息M4,M4中携带有确认消息,以及M4消息的MIC。

实施例5:

本发明实施例5中提供一种用于建立安全连接的方法,本发明实施例5提供的建立安全连接的方法可以用于如下场景:第二设备和第三设备之间未建立信任关系,并且均无法通过直接的方式获得对方的公钥预算值,需要借助于信任的第一设备(例如:配置器)来协助第二设备和第三设备完成配置,例如:第二设备和第三设备均不具有用来输入对方信息的人机接口,那么,可以通过第一设备获得第二设备的公钥预算值以及第三设备的公钥预算值,第一设备与第二设备采用本发明任一实施例提供的建立安全连接的方法完成配置,使得双方相互信任,第一设备再向第二设备发送第三设备的公钥预算值,第二设备与第三设备采用本发明任一实施例提供的建立安全连接的方法完成配置。如图7所述,具体包括如下步骤:

S701、第一设备通过带外方式安全获得第二设备的第一公钥预算值,使用获得的第一公钥预算值加密第一设备的非对称加密公钥,

其中,第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的。

S702、第一设备将第一设备的第二密钥交换公钥信息、以及加密后的第一设备的非对称加密公钥发送给第二设备。

S703、第二设备使用第二设备的第一公钥预算值对接收到的加密后的第一设备的非对称加密公钥解密,并使用解密后的第一设备的非对称加密公钥加密第二设备的第一密钥交换公钥;第二设备使用第二设备的密钥交换私钥以及根据第二密钥交换公钥信息得到的第二密钥交换公钥生成共享密钥。

S704、第一设备接收第二设备发送的加密的第二设备的第一密钥交换公钥,并使用与第一设备的非对称加密公钥对应的非对称加密私钥,对加密的第二设备的第一密钥交换公钥解密。

S705、第一设备使用预设算法,基于解密得到的第二设备的第一密钥交换公钥进行运算,得到第二公钥预算值;第一设备在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用第一设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用共享密钥与第二设备建立安全连接。

S706、第一设备通过带外方式安全获得第三设备的第三公钥预算值。

本步骤中,第一设备可以通过带外的方式获得第三设备的第三公钥预算值。并且获取第三设备的第三公钥预算值的步骤与步骤S701~S705的执行没有严格的先后顺序。

S707、第一设备将S706中获得的第三设备的第三公钥预算值加密并发送给第二设备,

其中,第三设备的公钥预算值为使用预设算法,基于第三设备的第三密钥交换公钥进行运算得到的,第三设备的公钥预算值用于第二设备基于第三设备的公钥预算值与第三设备建立安全连接。

本步骤中,由于通过上述步骤第一设备与第二设备之间建立了安全连接,第一设备和第二设备之间能够相互信任,因此,第一设备发送给第二设备的第三设备的第三公钥预算值,对于第二设备来说是可信的,第二设备可以基于该第三公钥预算值,与第三设备建立安全连接。

S708、第二设备接收到第一设备发送的加密的第三设备的第三公钥预算值之后,将接收的加密的第三公钥预算值解密,使用解密后的第三公钥预算值加密第二设备的非对称加密公钥。

S709、第二设备将第二设备的的第一密钥交换公钥信息、以及加密后的第二设备的非对称加密公钥发送给第三设备。

S710、第三设备使用第三设备的第三公钥预算值对接收到的加密后的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第三设备的第三密钥交换公钥;使用第三设备的密钥交换私钥以及根据第一密钥交换公钥信息得到的第一密钥交换公钥生成共享密钥。

S711、第二设备接收第三设备发送的加密的第三密钥交换公钥,并使用与第二设备的非对称加密公钥对应的私钥,对加密的第三密钥交换公钥解密。

S712、第二设备使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;第二设备在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用第二设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用共享密钥与第三设备建立安全连接。

进一步地,本实施例中,第一设备和第二设备之间的配置过程,以及第三设备和第二设备之间的配置过程均可以采用本发明提供的实施例1至实施例3的任一实施例,或者将实施例1至实施例3的任意实施例的任意特征组合之后的建立安全连接的方法进行配置。

实施例6:

本发明实施例6中提供一种用于建立安全连接的方法,本发明实施例6提供的建立安全连接方法可以用于如下场景:第二设备和第四设备之间未建立信任关系,并均无法通过直接的方式获得对方的公钥预算值,需要借助于信任的第一设备(例如:配置器)来协助第二设备和第四设备完成配置,例如:第二设备和第四设备均不具有用来输入对方信息的人机接口,那么,可以通过第一设备获得第二设备的公钥预算值,第一设备与第二设备采用本发明任一实施例提供的建立安全连接的方法完成配置生成共享密钥,第一设备获得第四设备的公钥预算值,第一设备与第四设备采用本发明任一实施例提供的建立安全连接的方法完成配置生成共享密钥,第一设备根据分别与第二设备和第四设备生成的共享密钥确定第二设备与第四设备之间的共享密钥,使第二设备与第四设备建立安全连接。如图8所述,具体包括如下步骤:

S801、第一设备通过带外方式安全获得第二设备的第一公钥预算值,使用获得的第一公钥预算值加密第一设备的非对称加密公钥,

其中,第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的。

S802、第一设备将第一设备的第二密钥交换公钥信息、以及加密后的非对称加密公钥发送给第二设备。

S803、第二设备使用第二设备的第一公钥预算值对接收到的加密后的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第二设备的第一密钥交换公钥;第二设备使用第二设备的密钥交换私钥以及根据第二密钥交换公钥信息得到的第二密钥交换公钥生成共享密钥。

S804、第一设备接收第二设备发送的加密的第一密钥交换公钥,并使用与第一设备的非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密。

S805、第一设备使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;第一设备在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用第一设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用共享密钥与第二设备建立安全连接。

S806、第一设备通过带外方式安全获得第四设备的第三公钥预算值,使用获得的第三公钥预算值加密第一设备的非对称加密公钥,

其中,第四设备的第三公钥预算值为使用预设算法,基于第四设备的第三密钥交换公钥进行运算得到的。

进一步地,第一设备通过带外方式获得第四设备的第三公钥预算值,并且获得第四设备第三公钥预算值的步骤与步骤S801~S805的执行没有严格的先后顺序。

S807、第一设备将第一设备的第二密钥交换公钥信息、以及加密后的第一设备的非对称加密公钥发送给第四设备。

S808、第四设备使用第四设备的第三公钥预算值对接收到的加密后的第一设备的非对称加密公钥解密,并使用解密后的非对称加密公钥加密第四设备的第三密钥交换公钥;第四设备使用第四设备的密钥交换私钥以及根据第二密钥交换公钥信息得到的第二密钥交换公钥生成共享密钥。

本步骤中,当第二密钥交换公钥信息为明文的第二密钥交换公钥时,第四设备使用该第二密钥交换公钥与第四设备的密钥交换私钥生成共享密钥,当第二密钥交换公钥信息为加密的第二密钥交换公钥时,第四设备先使用第四设备的第三公钥预算值解密,得到第二密钥交换公钥,再与第四设备的密钥交换私钥生成共享密钥。

S809、第一设备接收第四设备发送的加密的第三密钥交换公钥,并使用与第一设备的非对称加密公钥对应的私钥,对加密的第三密钥交换公钥解密。

S810、第一设备使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;第一设备在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用第一设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用该共享密钥与第四设备建立安全连接。

S811、在第一设备与第二设备建立安全连接之后,以及第一设备与第四设备建立安全连接之后,第一设备基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使第二设备和第四设备之间建立安全连接的连接信息。

本步骤中,连接信息可以为第一设备与第二设备之间,或者第一设备与第四设备之间生成的共享密钥,也可以为生成的共享密钥的衍生信息,例如,利用共享密钥加密的新的连接密钥,或,使用共享密钥的映射值作为连接密钥(如,共享密钥的哈希值或共享密钥结合指定信息的哈希值等),或,共享密钥的一部分作为连接密钥。

S812、第一设备将确定的连接信息分别发送给第二设备和第四设备。

进一步地,本实施例中,第一设备和第二设备之间的配置过程,以及第一设备和第四设备之间的配置过程均可以采用本发明提供的实施例1~实施例3的任一实施例,或者将实施例1~实施例3的任意实施例的任意特征组合之后的建立安全连接的方法进行配置。进一步地,第一设备和第二设备之间的配置过程还可以直接利用获得的连接密钥执行4步握手过程,或,利用连接密钥执行WPS过程。

基于同一发明构思,本发明实施例还提供了一种用于建立安全连接的设备及系统,由于这些设备和系统所解决问题的原理与前述一种用于建立安全连接的方法相似,因此该设备和系统的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供的一种用于建立安全连接的设备之一1000,如图9所示,包括:

获得模块901,用于通过带外方式安全获得第二设备的第一公钥预算值;其中,所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值;

加密模块902,用于使用所述获得模块901获得的第一公钥预算值加密本设备的非对称加密公钥;

发送模块903,用于将所述加密模块902加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,所述第二密钥交换公钥用于所述第二设备使用所述第二密钥交换公钥以及所述第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与所述第一设备建立安全连接;

接收模块904,用于接收所述第二设备发送的加密的第二设备的第一密钥交换公钥,其中,所述加密的第一密钥交换公钥为所述第二设备使用第二设备的第一公钥预算值解密接收到的加密后的本设备的非对称加密公钥,并使用解密后的本设备的非对称加密公钥对第一密钥交换公钥进行加密得到的;

解密模块905,用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收模块904接收的加密的第一密钥交换公钥解密;

运算模块906,用于使用预设算法,基于所述解密模块905解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;

生成模块907,用于在第一公钥预算值与所述运算模块906得到的第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

进一步地,所述生成模块907,还用于在生成所述共享密钥之后,生成第一验证信息,其中,所述第一验证信息为所述生成模块907使用生成的共享密钥将第一指定信息加密得到的第一加密值,或者,所述生成模块907使用生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,或者,所述生成模块907使用所述非对称加密私钥加密的第一指定信息生成的签名,所述第一指定信息为本设备和所述第二设备预先约定的信息;

所述发送模块903,还用于将所述生成模块907生成的所述第一验证信息发送给所述第二设备,其中,所述第一验证信息用于所述第二设备根据接收到的所述第一验证信息验证本设备是否可信。

进一步地,所述接收模块904,还用于接收所述第二设备发送的第二验证信息,其中,所述第二验证信息为所述第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,所述第二指定信息为本设备和所述第二设备预先约定的信息;

所述解密模块905,还用于在生成所述共享密钥之后,当所述接收模块904接收的所述第二验证信息为所述第二加密值时,使用所述生成模块907生成的共享密钥解密所述第二加密值;以及当所述第二验证信息为所述第二哈希值时,使用所述生成模块907生成的共享密钥结合所述第二指定信息进行哈希运算;

所述生成模块907,还用于根据所述解密模块905解密所述第二加密值后得到的第二指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述解密模块905对所述第二指定信息进行哈希运算得到的哈希值与所述第二哈希值是否匹配,确定生成的共享密钥是否可用。

进一步地,所述获得模块901,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第三设备的公钥预算值;

所述发送模块903,还用于将所述获得模块901获得的第三设备的公钥预算值加密并发送给第二设备,其中,所述第三设备的公钥预算值用于所述第二设备基于所述第三设备的公钥预算值与所述第三设备建立安全连接。

进一步地,所述获得模块901,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第四设备的第三公钥预算值;

所述加密模块902,还用于使用所述获得模块901获得的第三公钥预算值加密本设备的非对称加密公钥;

所述发送模块903,还用于将所述加密模块902加密后的非对称加密公钥发送给第四设备;

所述接收模块904,还用于接收所述第四设备发送的加密的第四设备的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第四设备使用第四设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;

所述解密模块905,还用于使用与所述非对称加密公钥对应的私钥,对所述接收模块904接收的加密的第三密钥交换公钥解密;

所述运算模块906,还用于使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;

所述生成模块907,还用于在第三公钥预算值与所述运算模块906得到的第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第四设备建立安全连接;以及在本设备与所述第二设备建立安全连接之后,且本设备与所述第四设备建立安全连接之后,基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使所述第二设备和所述第四设备之间建立安全连接的连接信息;

所述发送模块903,还用于将所述生成模块907确定的所述连接信息分别发送给所述第二设备和所述第四设备;

进一步地,所述发送模块903发送的第一设备的第二密钥交换公钥信息为明文的第一设备的第二密钥交换公钥,或者使用所述第二设备的第一公钥预算值加密的第二密钥交换公钥。

本发明实施例提供了一种用于建立安全连接的设备之二2000,如图10所示,包括:

接收模块1001,用于接收第二设备发送的加密的第二设备的非对称加密公钥,其中,所述加密的第二设备的非对称加密公钥为所述第二设备使用通过带外方式安全获得的本设备的第一公钥预算值加密的;所述第一公钥预算值为使用预设算法,基于本设备的第一密钥交换公钥进行运算得到的值;

解密模块1002,用于使用本设备的第一公钥预算值对所述接收模块1001接收到的加密后的非对称加密公钥解密;

加密模块1003,用于使用所述解密模块1002解密后的非对称加密公钥加密本设备的第一密钥交换公钥;

发送模块1004,用于将所述加密模块1003加密后的第一密钥交换公钥发送给所述第二设备,用于所述第二设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与本设备建立安全连接的共享密钥;

获得模块1005,用于获得第二设备的第二密钥交换公钥;

生成模块1006,用于使用本设备的密钥交换私钥以及所述获得模块1005获得的第二密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

进一步地,所述接收模块1001,还用于接收所述第二设备发送的第三验证信息,其中,所述第三验证信息为所述第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,为所述第二设备使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,为所述第二设备使用所述非对称加密私钥加密的第三指定信息生成的签名,所述第三指定信息为本设备和所述第二设备预先约定的信息;

所述解密模块1002,还用于所述生成模块1006在生成所述共享密钥之后,当所述第三验证信息为所述第三加密值时,使用所述生成模块1006生成的共享密钥解密所述第三加密值;以及当所述第三验证信息为所述第三哈希值时,使用所述生成模块1006生成的共享密钥对所述第三指定信息进行哈希运算;以及当所述第三验证信息为所述加密的签名时,使用所述非对称加密公钥对所述加密的签名解密;

所述生成模块1006,还用于根据所述解密模块1002解密所述第三加密值后得到的第三指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述解密模块1002对所述第三指定信息进行哈希运算得到的哈希值与所述第三哈希值是否匹配,确定生成的共享密钥是否可用;以及根据所述解密模块1002对所述加密的签名解密后得到的第三指定信息是否正确,确定所述第二设备是否可信。

进一步地,所述生成模块1006,还用于在生成所述共享密钥之后,使用生成的共享密钥生成第四验证信息,其中,所述第四验证信息为所述生成模块1006使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,所述生成模块1006使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,所述第四指定信息为本设备和所述第二设备预先约定的信息;

所述发送模块1004,还用于将所述生成模块1006生成的所述第四验证信息发送给所述第二设备,其中,所述第四验证信息用于所述第二设备根据接收到的所述第四验证信息验证本设备是否可信。

进一步地,所述获得模块1005,具体用于接收所述第二设备发送的第二密钥交换公钥信息,其中,所第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用本设备的公钥预算值加密的第二密钥交换公钥;当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用本设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

进一步地,所述设备还包括:运算模块1007;

所述接收模块1001,还用于在所述生成模块1006利用所述共享密钥与所述第二设备建立安全连接之后,接收所述第二设备发送的加密后的第三设备的第三公钥预算值;

所述解密模块1002,还用于将所述接收模块1001接收的加密后的第三公钥预算值解密;

所述加密模块1003,还用于使用所述解密模块1002解密后的第三公钥预算值加密本设备的非对称加密公钥;

所述发送模块1004,还用于将加密后的非对称加密公钥发送给所述第三设备;

所述接收模块1001,还用于在所述发送模块1004将加密后的非对称加密公钥发送给所述第三设备之后,接收所述第三设备发送的加密的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第三设备使用第三设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;

所述解密模块1002,还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收模块1001接收的加密的第三密钥交换公钥解密;

所述运算模块1007,用于使用预设算法,基于所述解密模块1002解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;

所述生成模块1006,还用于在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第三设备建立安全连接。

本发明实施例提供了一种用于建立安全连接的系统,包括:上述的设备之一,以及上述的设备之二。

基于同一发明构思,本发明实施例还提供了一种用于建立安全连接的设备及系统,由于这些设备和系统所解决问题的原理与前述一种用于建立安全连接的方法相似,因此该设备和系统的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供了一种用于建立安全连接的设备之三3000,如图11所示,包括处理器1101(可以为一个或多个,本发明各实施例中以一个为例)、发送器1102、接收器1103、存储器1104以及总线系统1105,其中:

处理器1101控制用于建立安全连接的设备之三3000的操作,处理器1101还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1101可能是一种集成电路芯片,具有信号的处理能力。处理器1101还可以是通用处理器、数字信号处理器(DSP,Digital Signal Processing)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器1104可以包括只读存储器和随机存取存储器,并向处理器1101提供指令和数据。存储器1104的一部分还可以包括非易失性随机存取存储器(NVRAM)。

用于建立安全连接的设备之三3000的各个组件通过总线系统1105耦合在一起,其中总线系统1105除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。该总线系统可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。在本发明的其它一些实施例中,处理器1101、存储器1104以及接收器1103、发送器1102也可以通过通信线路直接连接。但是为了清楚说明起见,在图中将各种总线都标为总线系统1105。

存储器1104存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

在本发明实施例中,处理器1101通过调用存储器1104存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:

处理器1101,用于通过带外方式安全获得第二设备的第一公钥预算值;其中,所述第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值;并使用获得的第一公钥预算值加密本设备的非对称加密公钥;

发送器1102,用于将所述处理器1101加密后的非对称加密公钥以及第一设备的第二密钥交换公钥信息发送给第二设备,其中,所述第二密钥交换公钥信息包含所述第一设备的第二密钥交换公钥,所述第二密钥交换公钥用于所述第二设备使用所述第二密钥交换公钥以及所述第二设备的密钥交换私钥生成共享密钥,并利用生成的共享密钥与所述第一设备建立安全连接;

接收器1103,用于接收所述第二设备发送的加密的第二设备的第一密钥交换公钥,其中,所述加密的第一密钥交换公钥为所述第二设备使用第二设备的第一公钥预算值解密接收到的加密后的本设备的非对称加密公钥,并使用解密后的本设备的非对称加密公钥对第一密钥交换公钥进行加密得到的;

处理器1101,还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收器1103接收的加密的第一密钥交换公钥解密;并使用预设算法,基于解密得到的第一密钥交换公钥进行运算,得到第二公钥预算值;在第一公钥预算值与第二公钥预算值一致时,确定解密后的第一密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第一密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

进一步地,所述处理器1101,还用于在生成所述共享密钥之后,生成第一验证信息,其中,所述第一验证信息为所述处理器1101使用生成的共享密钥将第一指定信息加密得到的第一加密值,或者,所述处理器1101使用生成的共享密钥结合第一指定信息进行哈希运算得到的第一哈希值,或者,所述处理器1101使用所述非对称加密私钥加密的第一指定信息生成的签名,所述第一指定信息为本设备和所述第二设备预先约定的信息;

所述发送器1102,还用于将所述处理器1101生成的所述第一验证信息发送给所述第二设备,其中,所述第一验证信息用于所述第二设备根据接收到的所述第一验证信息验证本设备是否可信。

进一步地,所述接收器1103,还用于接收所述第二设备发送的第二验证信息,其中,所述第二验证信息为所述第二设备生成共享密钥之后,使用生成的共享密钥对第二指定信息加密后得到的第二加密值,或者,使用生成的共享密钥结合第二指定信息进行哈希运算得到的第二哈希值,所述第二指定信息为本设备和所述第二设备预先约定的信息;

所述处理器1101,还用于在生成所述共享密钥之后,当所述接收器1103接收的所述第二验证信息为所述第二加密值时,使用所述处理器1101生成的共享密钥解密所述第二加密值;以及当所述第二验证信息为所述第二哈希值时,使用所述处理器1101生成的共享密钥结合所述第二指定信息进行哈希运算;根据解密所述第二加密值后得到的第二指定信息是否正确,确定生成的共享密钥是否可用;以及根据所述处理器1101对所述第二指定信息进行哈希运算得到的哈希值与所述第二哈希值是否匹配,确定生成的共享密钥是否可用。

进一步地,所述处理器1101,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,获得第三设备的公钥预算值;

所述发送器1102,还用于将所述处理器1101通过带外方式安全获得的第三设备的公钥预算值加密并发送给第二设备,其中,所述第三设备的公钥预算值用于所述第二设备基于所述第三设备的公钥预算值与所述第三设备建立安全连接。

进一步地,所述处理器1101,还用于在本设备利用所述共享密钥与所述第二设备建立安全连接之后,通过带外方式安全获得第四设备的第三公钥预算值;并使用获得的第三公钥预算值加密本设备的非对称加密公钥;

所述发送器1102,还用于将所述处理器1101加密后的非对称加密公钥发送给第四设备;

所述接收器1103,还用于接收所述第四设备发送的加密的第四设备的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第四设备使用第四设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;

所述处理器1101,还用于使用与所述非对称加密公钥对应的私钥,对所述接收器1103接收的加密的第三密钥交换公钥解密;并使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第四设备建立安全连接;以及在本设备与所述第二设备建立安全连接之后,且本设备与所述第四设备建立安全连接之后,基于与第二设备生成的共享密钥,以及与第四设备生成的共享密钥,确定用于使所述第二设备和所述第四设备之间建立安全连接的连接信息;

所述发送器1102,还用于将所述处理器1101确定的所述连接信息分别发送给所述第二设备和所述第四设备;

进一步地,所述发送器1102发送的第一设备的第二密钥交换公钥信息为明文的第一设备的第二密钥交换公钥,或者使用所述第二设备的第一公钥预算值加密的第二密钥交换公钥。

本发明实施例提供了一种用于建立安全连接的设备之四4000,如图12所示,包括接收器1201、处理器1202(可以为一个或多个,本发明各实施例中以一个为例)、发送器1203、存储器1204、以及总线系统1205,其中:

处理器1202控制用于建立安全连接的设备之四4000的操作,处理器1202还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1202可能是一种集成电路芯片,具有信号的处理能力。处理器1202还可以是通用处理器、数字信号处理器(DSP,Digital Signal Processing)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器1204可以包括只读存储器和随机存取存储器,并向处理器1202提供指令和数据。存储器1204的一部分还可以包括非易失性随机存取存储器(NVRAM)。

用于建立安全连接的设备之四4000的各个组件通过总线系统1205耦合在一起,其中总线系统1205除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。该总线系统可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。在本发明的其它一些实施例中,接收器1201、处理器1202、发送器1203、以及存储器1204也可以通过通信线路直接连接。但是为了清楚说明起见,在图中将各种总线都标为总线系统1205。

存储器1204存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

在本发明实施例中,处理器1202通过调用存储器1204存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:

接收器1201,用于接收第二设备发送的加密的第二设备的非对称加密公钥,其中,所述加密的第二设备的非对称加密公钥为所述第二设备使用通过带外方式安全获得的本设备的第一公钥预算值加密的;所述第一公钥预算值为使用预设算法,基于本设备的第一密钥交换公钥进行运算得到的值;

处理器1202,用于使用本设备的第一公钥预算值对所述接收器1201接收到的加密后的非对称加密公钥解密;并使用解密后的非对称加密公钥加密本设备的第一密钥交换公钥;

发送器1203,用于将所述处理器1202加密后的第一密钥交换公钥发送给所述第二设备,用于所述第二设备使用与所述非对称加密公钥对应的非对称加密私钥,对加密的第一密钥交换公钥解密,并使用解密后的第一密钥交换公钥以及第二设备的密钥交换私钥生成用以与本设备建立安全连接的共享密钥;

所述处理器1202,还用于获得第二设备的第二密钥交换公钥;并使用本设备的密钥交换私钥以及获得的第二密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第二设备建立安全连接。

进一步地,所述接收器1201,还用于接收所述第二设备发送的第三验证信息,其中,所述第三验证信息为所述第二设备使用生成的共享密钥将第三指定信息加密得到的第三加密值,或者,为所述第二设备使用生成的共享密钥对第三指定信息进行哈希运算得到的第三哈希值,或者,为所述第二设备使用所述非对称加密私钥加密的第三指定信息生成的签名,所述第三指定信息为本设备和所述第二设备预先约定的信息;

所述处理器1202,还用于在生成所述共享密钥之后,当所述第三验证信息为所述第三加密值时,使用生成的共享密钥解密所述第三加密值;以及当所述第三验证信息为所述第三哈希值时,使用生成的共享密钥对所述第三指定信息进行哈希运算;以及当所述第三验证信息为所述加密的签名时,使用所述非对称加密公钥对所述加密的签名解密;并根据解密所述第三加密值后得到的第三指定信息是否正确,确定生成的共享密钥是否可用;以及根据对所述第三指定信息进行哈希运算得到的哈希值与所述第三哈希值是否匹配,确定生成的共享密钥是否可用;以及根据对所述加密的签名解密后得到的第三指定信息是否正确,确定所述第二设备是否可信。

进一步地,所述处理器1202,还用于在生成所述共享密钥之后,使用生成的共享密钥生成第四验证信息,其中,所述第四验证信息为使用生成的共享密钥将第四指定信息加密得到的第四加密值,或者,使用生成的共享密钥对第四指定信息进行哈希运算得到的第四哈希值,所述第四指定信息为本设备和所述第二设备预先约定的信息;

所述发送器1203,还用于将所述处理器1202生成的所述第四验证信息发送给所述第二设备,其中,所述第四验证信息用于所述第二设备根据接收到的所述第四验证信息验证本设备是否可信。

进一步地,所述处理器1202,具体用于接收所述第二设备发送的第二密钥交换公钥信息,其中,所第二密钥交换公钥信息为明文的第二密钥交换公钥,或者使用本设备的公钥预算值加密的第二密钥交换公钥;当接收到的第二密钥交换公钥信息为加密的第二密钥交换公钥时,使用本设备的公钥预算值将加密的第二密钥交换公钥解密,获得解密后的第二密钥交换公钥。

进一步地,所述接收器1201,还用于在所述处理器1202利用所述共享密钥与所述第二设备建立安全连接之后,接收所述第二设备发送的加密后的第三设备的第三公钥预算值;

所述处理器1202,还用于将所述接收器1201接收的加密后的第三公钥预算值解密;并使用解密后的第三公钥预算值加密本设备的非对称加密公钥;

所述发送器1203,还用于将加密后的非对称加密公钥发送给所述第三设备;

所述接收器1201,还用于在所述发送器1203将加密后的非对称加密公钥发送给所述第三设备之后,接收所述第三设备发送的加密的第三密钥交换公钥,其中,所述加密的第三密钥交换公钥为所述第三设备使用第三设备的第三公钥预算值解密接收到的加密后的非对称加密公钥,并使用解密后的非对称加密公钥对第三密钥交换公钥进行加密得到的;

所述处理器1202,还用于使用与所述非对称加密公钥对应的非对称加密私钥,对所述接收器1201接收的加密的第三密钥交换公钥解密;并使用预设算法,基于解密得到的第三密钥交换公钥进行运算,得到第四公钥预算值;在第三公钥预算值与第四公钥预算值一致时,确定解密后的第三密钥交换公钥正确,使用本设备的密钥交换私钥以及解密后的第三密钥交换公钥生成共享密钥,并利用所述共享密钥与所述第三设备建立安全连接。

本发明实施例提供了一种用于建立安全连接的系统,包括:上述的设备之三,以及上述的设备之四。上述的设备之三与上述的设备之四的具体功能实现请参阅以上各个实施例的详细描述,在此不再赘述。

上述各单元的功能可对应于图1至图8所示流程中的相应处理步骤,在此不再赘述。

另外,本发明个实施例之间,相同或者类似的部分可以相互参考。

本发明实施例提供的一种用于建立安全连接的方法、设备及系统,与现有技术不同,现有技术中,第一设备和第二设备采用明文交换各自的DH公钥,使得攻击者可以冒充已知PIN码的第一设备获得第二设备的DH公钥,并与攻击者自身生成的DH私钥生成共享密钥,并基于通过该共享密钥生成的衍生密钥,通过与第二设备的第一次WPS配置过程,获得PIN码的前一半值,再通过与第二设备的第二次WPS配置过程,获得PIN码的后一半值,从而得到整个PIN码,盗用WiFi资源;

针对本发明实施例提供的用于建立安全连接的方法之一,第一设备和第二设备不会采用明文的方式交换各自的DH公钥,也不会基于共享密钥交换加密的PIN码,而是第一设备通过带外方式安全获得第二设备的第一公钥预算值,此处第一公钥预算值与PIN码不同,第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值,而PIN码可以是第一公钥预算值也可以是预设的任意值。对于攻击者来说,攻击者无法正当地通过带外方式安全获得第二设备的第一公钥预算值,而即使攻击者冒充已知第一公钥预算值的第一设备,也无法通过现有技术中的两次WPS配置过程获得第一公钥预算值,因为在本发明实施例提供的用于建立安全连接的方法中,第一设备需要使用获得的第一公钥预算值加密第一设备的非对称加密公钥,并将加密后的非对称加密公钥发送给第二设备,第二设备使用自身的第一公钥预算值解密加密的非对称加密公钥,并使用该非对称加密公钥对第二设备的第一密钥交换公钥加密,并将加密后的第一密钥交换公钥发送给第一设备;假设攻击者冒充第一设备,假设一个第一公钥预算值,并用其加密攻击者自身的非对称加密公钥,发送给第二设备,第二设备使用正确的第一公钥预算值解密后,无法得到正确的非对称加密公钥,那么第二设备使用错误的非对称加密公钥对第一密钥交换公钥进行加密,并发送给攻击者,攻击者使用自身的非对称加密私钥也无法得到第一密钥交换公钥,也就无法与第二设备建立安全连接,并且,即使攻击者如现有技术中发起多次WPS过程也无法与第二设备建立安全连接,也就无法盗用WiFi资源,提高了设备间网络连接的安全性;

针对本发明实施例提供的用于建立安全连接的方法之二,第一设备和第二设备不会采用明文的方式交换各自的DH公钥,也不会基于共享密钥交换加密的PIN码,而是第二设备通过带外方式安全获得第一设备的第一公钥预算值,此处第一公钥预算值与PIN码不同,第一公钥预算值为使用预设算法,基于第二设备的第一密钥交换公钥进行运算得到的值,而PIN码可以是第一公钥预算值也可以是预设的任意值。对于攻击者来说,攻击者无法正当地通过带外方式安全获得第一设备的第一公钥预算值,而即使攻击者冒充已知第一公钥预算值的第二设备,也无法通过现有技术中的两次WPS配置过程获得第一公钥预算值,因为在本发明实施例提供的用于建立安全连接的方法中,第二设备需要使用获得的第一公钥预算值加密第二设备的非对称加密公钥,并将加密后的非对称加密公钥发送给第一设备,第一设备使用自身的第一公钥预算值解密加密的非对称加密公钥,并使用该非对称加密公钥对第一设备的第一密钥交换公钥加密,并将加密后的第一密钥交换公钥发送给第二设备;假设攻击者冒充第二设备,假设一个第一公钥预算值,并用其加密攻击者自身的非对称加密公钥,发送给第一设备,第一设备使用正确的第一公钥预算值解密后,无法得到正确的非对称加密公钥,那么第一设备使用错误的非对称加密公钥对第一密钥交换公钥进行加密,并发送给攻击者,攻击者使用自身的非对称加密私钥也无法得到第一密钥交换公钥,也就无法与第一设备建立安全连接,并且,即使攻击者如现有技术中发起多次WPS过程也无法与第一设备建立安全连接,也就无法盗用WiFi资源,提高了设备间网络连接的安全性。

需要说明的是,本发明各实施例中所涉及的“第一密钥交换公钥”、“第二密钥交换公钥”……,可以为DH公钥,他们各自所采用的密钥交换算法可以为DH密钥交换算法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1