CN109698746A - 基于主密钥协商生成绑定设备的子密钥的方法和系统 - Google Patents
基于主密钥协商生成绑定设备的子密钥的方法和系统 Download PDFInfo
- Publication number
- CN109698746A CN109698746A CN201910054936.5A CN201910054936A CN109698746A CN 109698746 A CN109698746 A CN 109698746A CN 201910054936 A CN201910054936 A CN 201910054936A CN 109698746 A CN109698746 A CN 109698746A
- Authority
- CN
- China
- Prior art keywords
- key
- sub
- equipment
- account
- applications client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于主密钥协商生成绑定设备的子密钥的方法和系统,所述方法包括:安装于第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,Ks是根据账户的名称与用户输入的主密钥生成的;应用服务器接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给应用客户端;应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1。本发明能够在实现让用户只需要记住一个作为主密钥的口令,也没有安全密钥需要用户携带额外设备的基础上,可以为后期的子密钥的管理提供便捷性,以及提供更高的安全性。
Description
技术领域
本发明涉及信息安全传输技术领域,特别是指一种基于主密钥协商生成绑定设备的子密钥的方法和系统。
背景技术
随着互联网的飞速发展,每个普通的用户都开始拥有越来越多的在线账号、越来越多的计算机设备(PC、智能手机、Pad、物联网设备等)。在当前多服务多设备的应用场景下,口令的管理对于用户来说是一个沉重的负担。由此带来的口令重用攻击、口令重置攻击、钓鱼攻击等给在线账号的安全带来了日益严重的威胁。
安全密钥作为更安全的认证模式被推出,首先被银行以及一些大型的互联网服务(谷歌、Dropbox、Twitter等)所采用。基于FIDO能够管理多个在线账号的安全密钥,能够为用户提供更安全、更便捷的身份认证,有效抵御口令重用攻击、口令重置攻击、钓鱼攻击等账号劫持的攻击模式。
现有技术中一种以用户输入的口令作为主密钥,而为多个设备的多个账户分别生成子密钥的方法为,用户使用的设备从应用服务器接收随机数,基于随机数及用户输入的主密钥,生成对应于应用标识及用户标识的专用共享密钥,发送给应用服务器。该专用共享密钥与所述设备绑定,也可称为该设备的子密钥。应用该专用共享密钥,用户在该设备上可以通过设备上的安装的应用客户端与应用服务器进行信息的加密传输。
由于对应于应用标识及用户标识,且与设备绑定的设备子密钥是基于一个主密钥和一个随机数生成的,因此,对于不同的应用,不同的设备,由于产生的随机数不同,在可以生成不同的子密钥;从而让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令,也没有安全密钥需要用户携带额外设备。
但是,在实际应用中,本发明的发明人发现,基于上述现有技术方案生成子密钥后,对生成的子密钥进行管理不具便捷性,比如,无法定期自动更新子密钥。
此外,基于上述现有技术方案生成子密钥后,对生成的子密钥的管理还存在一些安全漏洞,比如,在新设备注册生成子密钥时需要恢复其它设备的子密钥,才能够进行身份认证:新设备需向应用服务器发送携带应用标识及用户标识的密钥恢复请求;而应用服务器将对应于应用标识及用户标识的随机数发送给新设备;新设备根据用户输入的主密钥和接收的随机数可以恢复出上一设备的子密钥;新设备将恢复出的上一设备的子密钥发送给应用服务器后方能完成身份认证,继而重新与应用服务器协商生成绑定本设备的子密钥。而这个漏洞会给攻击者带来潜在的机会。
因此,有必要提供一种基于主密钥生成设备子密钥的协商方法和系统,能够在实现让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令,也没有安全密钥需要用户携带额外设备的基础上,可以为后期的子密钥的管理提供便捷性,比如,可以自动更新子密钥;以及提供更高的安全性,比如,在新设备注册生成子密钥时不需要涉及其它设备的子密钥,以保证任何设备的子密钥不会在其它设备上出现,避免安全漏洞。
发明内容
本发明提出了一种基于主密钥协商生成绑定设备的子密钥的方法和系统,能够在实现让用户只需要记住一个作为主密钥的口令,也没有安全密钥需要用户携带额外设备的基础上,可以为后期的子密钥的管理提供便捷性,以及提供更高的安全性。
基于上述目的,本发明提供一种基于主密钥协商生成绑定设备的子密钥的方法,包括:
安装于第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的;
所述应用服务器接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;
所述应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1。
较佳地,所述Ks具体根据如下方法生成:
所述应用客户端向第一设备中的密钥管理服务KMS装置发送携带所述账户的名称的账户子密钥请求;
所述KMS装置接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
进一步,在所述应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1后,还包括:所述应用客户端使用Ka1进行身份认证:
所述应用客户端以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;
所述应用服务器以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
进一步,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述方法还包括:自动更新绑定第一设备的子密钥:
所述应用客户端向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;
所述应用服务器在接收到所述子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端;
所述应用客户端使用Ka1解密接收到的所述加密信息,得到N2和Ka2;
所述应用客户端使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;
所述应用服务器以本地产生的Ka2对接收到的所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
进一步,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述方法还包括:协商生成绑定第二设备的子密钥:
第二设备上的所述应用客户端向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;
所述应用服务器接收所述新设备注册请求后生成随机数N3,并根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3后,将N3发送给所述应用客户端;
第二设备上的所述应用客户端将所述账户的名称、N3、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;
第二设备上的KMS装置在接收到所述设备子密钥请求后根据所述用户输入的主密钥,以及所述账户的名称、N3、D2,生成绑定第二设备的子密钥Ka3后,发送给所述应用客户端。
本发明还提供一种基于主密钥协商生成绑定设备的子密钥的系统,包括:
安装于第一设备中的应用客户端,用于发送携带第一设备的标识D1、账户的子密钥Ks的设备注册请求;并根据返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的;
应用服务器,用于在接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1后将N1返回给所述应用客户端。
进一步,所述系统还包括:安装于第一设备中的密钥管理服务KMS装置;以及
所述应用客户端还用于向所述KMS装置发送携带所述账户的名称的账户子密钥请求;
所述KMS装置用于接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
较佳地,所述应用客户端还用于以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;以及
所述应用服务器还用于以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及
所述应用客户端还用于向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;以及
所述应用服务器还用于在接收到所述子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端;以及
所述应用客户端还用于使用Ka1解密接收到的所述加密信息,得到N2和Ka2;并使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;以及
所述应用服务器还用于以本地产生的Ka2对接收到的所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及
所述应用客户端还用于向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;以及
所述应用服务器还用于接收所述新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定所述第二设备的子密钥Ka3,并将N3发送给所述应用客户端;以及
所述应用客户端还用于将所述账户的名称、N3、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;以及
所述KMS装置还用于接收到所述设备子密钥请求后根据用户输入的主密钥,以及所述账户的名称、N3、D2,生成绑定第二设备的子密钥Ka3后,发送给所述应用客户端。
本发明还提供一种应用客户端,包括:包括信息收发模块,以及还包括:
设备注册模块,用于通过所述信息收发模块向应用服务器发送携带第一设备的标识D1、账户的子密钥Ks的设备注册请求;并根据所述应用服务器返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的。
进一步,所述设备注册模块还用于向密钥管理服务KMS装置发送携带所述账户的名称的账户子密钥请求;并接收所述KMS装置返回的所述账户的子密钥;其中,所述账户的子密钥具体是所述KMS装置接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成的。
进一步,所述设备注册模块还用于以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;并接收所述应用服务器返回的认证成功消息。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用客户端还包括:
子密钥更新模块,用于通过所述信息收发模块向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;并使用Ka1解密从所述应用服务器接收到的加密信息,得到N2和Ka2;并使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;
其中,所述加密信息是所述应用服务器在接收到所述子密钥更新请求后,根据生成的新的随机数N2、所述账户的子密钥Ks,以及D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后得到的。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用客户端还包括:
新设备注册模块,用于通过所述信息收发模块向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;之后将所述应用服务器返回的随机数N3,以及所述账户的名称、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;并接收所述KMS装置根据所述用户输入的主密钥,以及所述账户的名称、N3、D2生成的绑定第二设备的子密钥Ka3。
本发明还提供一种应用服务器,括信息收发模块,以及还包括:
设备注册模块,用于通过所述信息收发模块接收到应用客户端发送的设备注册请求后生成随机数N1,根据N1以及所述设备注册请求中携带的第一设备的标识D1、账户的子密钥Ks,生成绑定第一设备的子密钥Ka1,并将N1返回给所述应用客户端。
较佳地,所述设备注册模块还用于在接收到所述应用客户端以Ka1加密的N1或N1的表达式的计算结果后,以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用服务器还包括:
子密钥更新模块,用于通过所述信息收发模块在接收到所述应用客户端发送的、携带所述账户的名称、第一设备的标识D1的子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端。
较佳地,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用服务器还包括:
新设备注册模块,用于通过所述信息收发模块接收到所述应用客户端发送的、携带第二设备的标识D2以及所述账户的名称的新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3,并将N3发送给所述应用客户端。
本发明还提供一种密钥管理服务装置,包括:
账户子密钥生成模块,用于接收到应用客户端发送的携带账户的名称的账户子密钥请求后,根据所述账户的名称与用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
进一步,所述密钥管理服务装置还包括:
设备子密钥生成模块,用于接收到所述应用客户端发送的、携带所述账户的名称、随机数N3、以及第二设备的标识D2的设备子密钥请求后,根据用户输入的主密钥,以及所述账户的名称、N3、D2生成绑定第二设备的子密钥Ka3发送给所述应用客户端。
本发明的技术方案中,第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的信息与所述用户输入的主密钥生成的;所述应用服务器根据接收的设备注册请求生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;所述应用客户端根据接收的随机数N1以及D1和Ks从而可以生成与应用服务器共享的、绑定第一设备的子密钥Ka1。
由于本发明的技术方案中,与第一设备绑定的子密钥Ka1是根据账户的子密钥Ks和一个随机数N1生成的,而账户的子密钥Ks是根据账户的名称与所述用户输入的主密钥生成的;因此,基于同一主密钥,对于不同的应用客户端而产生的不同的账户名称,可以为不同的账户生成不同的子密钥;对于不同的设备,由于产生的随机数不同,从而基于同一主密钥生成账户的子密钥后进而再生成与设备绑定的子密钥也是不同的;从而让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令。由于本发明的技术方案的第一设备可以是智能终端、移动终端等,不需要使用专门的设备,因此也没有安全密钥需要用户携带额外设备。
本发明的技术方案中,由于应用服务器保存了账户的子密钥Ks,因此,应用服务器可以在重新生成随机数后,利用账户的子密钥Ks以及新生成的随机数来更新与第一设备绑定的子密钥;此过程,不需用户进行任何操作和干预,从而实现设备的子密钥的自动更新。
本发明的技术方案中,由于应用服务器保存了账户的子密钥,因此,在新的设备,比如第二设备注册需要生成子密钥时,应用服务器可以利用账户的子密钥来完成第二设备的身份认证,而无需涉及(恢复)其它设备(比如第一设备)的子密钥,从而保证任何设备的子密钥不会在其它设备上出现,避免安全漏洞,提高安全性。
附图说明
图1为本发明实施例提供的一种基于主密钥协商生成绑定设备的子密钥的系统的架构图;
图2为本发明实施例提供的一种基于主密钥协商生成绑定设备的子密钥方法流程图;
图3为本发明实施例提供的应用客户端与应用服务器交互实现自动更新绑定的设备的子密钥的方法流程图;
图4为本发明实施例提供的应用客户端与应用服务器交互协商生成绑定第二设备的子密钥的方法流程图;
图5为本发明实施例提供的应用客户端和应用服务器的内部结构框图;
图6为本发明实施例提供的KMS装置的内部结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明的技术方案中,第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的信息与所述用户输入的主密钥生成的;所述应用服务器根据接收的设备注册请求生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;所述应用客户端根据接收的随机数N1以及D1和Ks从而可以生成与应用服务器共享的、绑定第一设备的子密钥Ka1。
由于本发明的技术方案中,与第一设备绑定的子密钥Ka1是根据账户的子密钥Ks和一个随机数N1生成的,而账户的子密钥Ks是根据账户的名称与所述用户输入的主密钥生成的;因此,基于同一主密钥,对于不同的应用客户端而产生的不同的账户名称,可以为不同的账户生成不同的子密钥;对于不同的设备,由于产生的随机数不同,从而基于同一主密钥生成账户的子密钥后进而再生成与设备绑定的子密钥也是不同的;从而让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令。由于本发明的技术方案的第一设备可以是智能终端、移动终端等,不需要使用专门的设备,因此也没有安全密钥需要用户携带额外设备。
本发明的技术方案中,由于应用服务器保存了账户的子密钥Ks,因此,应用服务器可以在重新生成随机数后,利用账户的子密钥Ks以及新生成的随机数来更新与第一设备绑定的子密钥;此过程,不需用户进行任何操作和干预,从而实现设备的子密钥的自动更新。
本发明的技术方案中,由于应用服务器保存了账户的子密钥,因此,在新的设备,比如第二设备注册需要生成子密钥时,应用服务器可以利用账户的子密钥来完成第二设备的身份认证,而无需涉及(恢复)其它设备(比如第一设备)的子密钥,从而保证任何设备的子密钥不会在其它设备上出现,避免安全漏洞,提高安全性。
下面结合附图详细说明本发明实施例的技术方案。
在用户使用的第一设备上安装有应用客户端;其中,第一设备可以是移动终端,比如手机、平板电脑等,也可以是台式计算机等智能设备。
应用客户端与应用服务器进行通信,可以从应用服务器获取相应的服务。比如,应用客户端可以是微信客户端,其可以从微信平台获得相应的社交服务;此外,应用客户端可以是淘宝客户端,其可以从淘宝平台获得网购的服务。
在应用客户端从应用服务器获取相应的服务之前,通常有一个注册和密钥协商过程;通过双方协商的共享密钥来进行身份认证保证通信的安全。
基于此,本发明实施例提供的一种基于主密钥协商生成绑定设备的子密钥的系统,架构如图1所示,包括:应用服务器101,以及应用客户端102。
其中,安装于第一设备中的应用客户端102用于向应用服务器101发送携带第一设备的标识D1、以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的名称与所述用户输入的主密钥生成的;进一步,在所述设备注册请求中还携带了用户名U;以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A。
应用服务器101用于在接收到所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1返回给所述应用客户端102。
应用客户端102根据应用服务器101返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1。
上述的账户的子密钥Ks可以是应用客户端102生成的;更优地,Ks可以是由一个专用于管理密钥的密钥管理服务(KMS,Key Manage Service)装置生成的。
由此,相应地,在第一设备上还可以安装一个用于密钥管理的密钥管理服务(KMS,Key Manage Service)装置;因此,本发明实施例提供的一种基于主密钥协商生成绑定设备的子密钥的系统中还可以包括:KMS装置103。
相应地,应用客户端102还可用于向所述KMS装置103发送携带所述账户的名称的账户子密钥请求;
KMS装置103用于接收到所述账户子密钥请求后,根据所述账户的名称与使用第一设备的用户输入的主密钥生成所述账户的子密钥后,将所述账户的子密钥返回给所述应用客户端102。
基于上述的系统,本发明实施例提供的一种基于主密钥协商生成绑定设备的子密钥的具体方法,流程如图2所示,包括如下步骤:
步骤S201:应用客户端102向KMS装置103发送携带账户的名称的账户子密钥请求。
具体地,用户第一次登录到应用服务器101之后,第一设备上的应用客户端102从KMS装置103请求Ks:应用客户端102向KMS装置103发送携带所述账户的名称的账户子密钥请求。其中,所述账户的名称具体包括:所述用户从应用客户端102登录应用服务器101所使用的用户名U和所述应用客户端102的标识A。
步骤S202:KMS装置103接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成账户的子密钥Ks,并将Ks返回给应用客户端102。
本步骤中,KMS装置103接收到所述账户子密钥请求后,提示用户输入主密钥Km;之后,KMS装置103根据Km以及账户的名称U@A,生成U@A账户的子密钥Ks。KMS装置103进而可以将生成的子密钥Ks对应账户的名称U@A进行存储。
具体地,KMS装置103可以根据表达式Ks=F(Km,U@A),生成Ks。其中,F为密钥生成算法;算法F需要采用不可逆算法,并具有足够强度,防止暴力破解。算法F的最直接的实现方法是采用安全哈希函数f(x),例如,SHA-256算法。随着计算机速度的提高,函数f(x)执行速度会越来越快。例如,在高性能计算机上百万次SHA-256运算不到1秒钟就能够完成,也就是说攻击者的暴力破解能力会越来越强。考虑到很多用户的主密钥有可能长度不够,对于这种低熵值(low-entropy)的主密钥面临着暴力破解的威胁。所以,直接采用现有的安全哈希函数来生成App的密钥可能并不安全。
因此针对这种威胁,本发明技术方案中采用了改进的密钥生成方法:F(x)=fk(x),这里f(x)是一个安全哈希函数,fk(x)表示对f执行k次计算,例如,f3(x)代表f(f(f(x)))。在这种改进的设计中,可以通过调整参数k值的大小来增加F对f的迭代次数,从而能够保证每次F运算都需要比较长的时间(例如,10秒钟甚至更长时间)。
步骤S203:应用客户端102向应用服务器101发送携带第一设备的标识D1、以及所述账户的子密钥Ks的设备注册(Register Device)请求。
步骤S204:应用服务器101接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给应用客户端102。
本步骤中,应用服务器101将Ks对应账户的名称U@A进行存储,并根据所述设备注册请求生成一个随机数N1;之后,根据N1、D1以及Ks,计算出一个与第一设备关联的子密钥Ka1=F(Ks,N1||D1)。该绑定第一设备的子密钥Ka1可以用于将来的身份认证或传输数据的加密。之后,应用服务器101将生成的子密钥Ka1对应第一设备的标识D1和账户的名称U@A进行存储,并将随机数N1发送给应用客户端102。其中,N1||D1表示将N1和D1串接为一个字符串。
步骤S205:应用客户端102根据接收的随机数N1以及D1和Ks,生成与应用服务器101共享的、绑定第一设备的子密钥Ka1。
本步骤中,第一设备上的应用客户端102接收到应用服务器101返回的随机数N1后,可以根据随机数N1以及D1和Ks,直接计算出绑定第一设备的子密钥Ka1=F(Ks,N1||D1)。之后,应用客户端102删除Ks;从而,在应用客户端102上仅存储绑定第一设备的子密钥Ka1,但不存储账户的子密钥Ks,以提高子密钥Ks的管理安全性。
步骤S206:应用客户端102以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向应用服务器101发送;
具体地,应用客户端102以Ka1加密N1或N1的表达式(比如,N1+1)的计算结果后,将加密的信息向应用服务器101发送。
步骤S207:应用服务器101以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
具体地,应用服务器101以本地产生的Ka1对应用客户端102发送的所述加密的信息进行解密,得到正确的N1或N1的表达式(比如,N1+1)的计算结果后,确认身份认证通过,向所述应用客户端102返回认证成功消息。
由于,与第一设备绑定的子密钥Ka1是根据账户的子密钥Ks和一个随机数N1生成的,而账户的子密钥Ks是根据账户的名称与所述用户输入的主密钥生成的;因此,基于同一主密钥,对于不同的应用客户端而产生的不同的账户名称,可以为不同的账户的生成不同的子密钥;对于不同的设备,由于产生的随机数不同,从而基于同一主密钥生成账户的子密钥后进而再生成与设备绑定的子密钥也是不同的;从而让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令。由于本发明的技术方案的第一设备可以是智能终端、移动终端等,不需要使用专门的设备,因此也没有安全密钥需要用户携带额外设备。
本发明的技术方案中,由于应用服务器保存了账户的子密钥Ks,因此,应用服务器可以在重新生成随机数后,利用账户的子密钥Ks以及新生成的随机数来更新与第一设备绑定的子密钥;此过程,不需用户进行任何操作和干预,从而实现设备的子密钥的自动更新。具体地,本发明实施例的提供的一种基于主密钥协商生成绑定设备的子密钥的系统中,应用客户端102与应用服务器101交互,实现自动更新绑定的设备的子密钥的流程如图3所示,包括如下步骤:
步骤S301:应用客户端102向应用服务器101发送携带所述账户的名称U@A以及第一设备的标识D1的子密钥更新请求。
步骤S302:应用服务器101在接收到所述子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端102。
具体地,应用服务器101在接收到所述子密钥更新请求后生成新的随机数N2,并根据所述账户的名称U@A查找到对应的所述账户的子密钥Ks;进而根据查找到的Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2。本步骤中,应用服务器101根据Ks,以及N2、D1生成Ka2的方法可与上述生成Ka1的方法一致,此处不再赘述。
由此步骤可以看出,由于应用服务器101保存了账户U@A的子密钥Ks,因此,应用服务器101可以重新生成随机数后,利用账户的子密钥Ks以及新生成的随机数来更新与设备绑定的子密钥;此过程,不需用户进行任何操作和干预,从而实现设备的子密钥的自动更新。
步骤S303:应用客户端102使用Ka1解密从应用服务器101接收到的所述加密信息,得到N2和Ka2。
本步骤中,应用客户端102接收到应用服务器101发送的所述加密信息后,用旧的子密钥Ka1进行解密,得到N2和Ka2,从而得到更新的绑定第一设备的子密钥Ka2;而N2可以用于后续步骤的身份认证。
步骤S304:应用客户端102使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器101发送。
具体地,应用客户端102以Ka2加密N2或N2表达式(比如,N2+1)的计算结果后,将加密的信息向应用服务器101发送。
步骤S305:应用服务器101以本地产生的Ka2对接收到的所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端102返回认证成功消息。
具体地,应用服务器101接收到应用客户端102发送的加密的信息后,以本地产生的Ka2对接收到的所述加密的信息进行解密;得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端102返回认证成功消息。
当用户需要使用新的设备,比如第二设备,安装所述应用客户端登录所述应用服务器时,本发明实施例的提供的一种基于主密钥协商生成绑定设备的子密钥的系统中,安装于第二设备中的应用客户端102与应用服务器101交互,协商生成绑定新设备(第二设备)的子密钥的具体流程如图4所示,包括如下步骤:
步骤S401:第二设备上的应用客户端102向应用服务器101发送携带所述第二设备的标识D2、所述账户的名称U@A的新设备注册(Register New Device)请求。
步骤S402:应用服务器101接收所述新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3,并将N3发送给所述应用客户端。
具体地,应用服务器101接收所述新设备注册请求后生成随机数N3,并根据新设备注册请求中携带的所述账户的名称U@A查找到对应的所述账户U@A的子密钥Ks;进而根据D2、N3以及所述账户的子密钥Ks,生成绑定所述第二设备的子密钥Ka3;之后,应用服务器101将N3发送给所述应用客户端102。
从此步骤可以看出,由于应用服务器101保存了U@A账户的子密钥,因此,在第二设备注册需要生成子密钥时,应用服务器可以利用U@A账户的子密钥来完成第二设备的身份认证,为第二设备生成绑定的子密钥Ka3,而无需涉及(恢复)其它设备(比如第一设备)的子密钥,从而保证任何设备的子密钥不会在其它设备上出现,避免安全漏洞,提高安全性。
步骤S403:第二设备上的应用客户端102将所述账户的名称、N3和D2携带在设备子密钥请求中发送给所述第二设备上的KMS装置103。
具体地,由于此时应用客户端102上并不存有U@A账户的子密钥Ks,因此,无法直接根据D2、N3以及所述账户的子密钥Ks计算第二设备的子密钥;因此,应用客户端102将所述账户的名称U@A、N3、D2携带在设备子密钥请求中发送给所述第二设备上的KMS装置103。
步骤S404:所述KMS装置103根据用户输入的主密钥,以及所述账户的名称、N3、D2生成绑定所述第二设备的子密钥Ka3后,发送给所述应用客户端102。
具体地,KMS装置103接收到应用客户端102发送的设备子密钥请求后,提示用户输入主密钥;KMS装置103根据主密钥和所述账户的名称U@A能够计算出所述账户的子密钥Ks,进而根据Ks、随机数N3、设备标识D2计算出绑定所述第二设备的子密钥Ka3。KMS装置103将生成的绑定所述第二设备的子密钥Ka3发送给所述应用客户端102。
步骤S405:应用客户端102在获得Ka3后,以Ka3加密N3或N3的表达式(比如,N3+1)的计算结果后,将加密的信息向应用服务器101发送。
步骤S406:应用服务器101以本地产生的Ka3对接收到的所述加密的信息进行解密,得到正确的N3或N3的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
上述基于主密钥协商生成绑定设备的子密钥的系统中,应用客户端102、应用服务器101以及KMS装置的内部结构框图,如图5所示。
其中,应用客户端102包括:信息收发模块500和设备注册模块501。
其中,设备注册模块501用于通过信息收发模块500向应用服务器101发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;并根据所述应用服务器返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的。进一步,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;
进一步,设备注册模块501还用于向安装于同一设备中的密钥管理服务KMS装置103发送携带所述账户的名称的账户子密钥请求;并接收所述KMS装置103返回的所述账户的子密钥;其中,所述账户的子密钥具体是所述KMS装置103接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成的。
进一步,设备注册模块501还用于以Ka1加密N1或N1的表达式的计算结果后,将加密的信息通过信息收发模块500向所述应用服务器101发送;并通过信息收发模块500接收所述应用服务器101返回的认证成功消息。
进一步,应用客户端102中还可包括:子密钥更新模块502。
子密钥更新模块502用于通过信息收发模块500向所述应用服务器101发送携带所述账户的名称以及第一设备的标识D1的子密钥更新请求;并使用Ka1解密从所述应用服务器101接收到的加密信息,得到N2和Ka2;并使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息通过信息收发模块500向所述应用服务器101发送;其中,所述加密信息是所述应用服务器101在接收到所述子密钥更新请求后,根据生成的新的随机数N2、所述账户的子密钥Ks,以及D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后得到的。
进一步,应用客户端102中还可包括:新设备注册模块503。
新设备注册模块503用于通过信息收发模块500向所述应用服务器101发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;之后将所述应用服务器101返回的随机数N3,以及所述账户的名称、D2携带在设备子密钥请求中发送给所述第二设备上的KMS装置103;并接收所述KMS装置103根据用户输入的主密钥,以及所述账户的名称、N3、D2生成的绑定所述第二设备的子密钥Ka3。
相应地,应用服务器101中包括:信息收发模块510和设备注册模块511。
应用服务器101中的设备注册模块511用于通过信息收发模块510接收到应用客户端102发送的设备注册请求后生成随机数N1,根据N1以及所述设备注册请求中携带的第一设备的标识D1、账户的子密钥Ks,生成绑定第一设备的子密钥Ka1,并将N1返回给所述应用客户端102。
进一步,应用服务器101中的设备注册模块511还用于在接收到所述应用客户端102以Ka1加密的N1或N1的表达式的计算结果后,以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端102返回认证成功消息。
进一步,应用服务器101中还可包括:子密钥更新模块512。
子密钥更新模块512用于在通过信息收发模块510接收到所述应用客户端102发送的、携带所述账户的名称以及第一设备的标识D1的子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端102;并在通过信息收发模块510接收到所述应用客户端102返回的加密的信息后,以本地产生的Ka2对所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端102返回认证成功消息;其中,所述加密的信息是所述应用客户端102使用Ka1解密从所述应用服务器接收到的加密信息得到N2和Ka2后,再使用Ka2加密N2或N2的表达式的计算结果后发送的。
进一步,应用服务器101中还可包括:新设备注册模513。
新设备注册模块513用于通过信息收发模块510接收到所述应用客户端102发送的、携带第二设备的标识D2、所述账户的名称的新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3,并将N3发送给所述应用客户端102。
如图6所示,上述KMS装置103中具体可以包括:账户子密钥生成模块521。
其中,账户子密钥生成模块521用于接收到应用客户端102发送的携带账户的名称的账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端102。
进一步,KMS装置103中还可以包括:设备子密钥生成模块522。
设备子密钥生成模块522用于接收到所述应用客户端102发送的、携带账户的名称、随机数N3、以及第二设备的标识D2的设备子密钥请求后,根据用户输入的主密钥,以及所述账户的名称、N3、D2生成绑定所述第二设备的子密钥Ka3发送给所述应用客户端102。
本发明实施例提供的应用客户端、应用服务器和KMS装置中各模块功能的具体实现方法,可参考上述图2~4所示流程中相应步骤里的具体方法描述,此处不再赘述。
本发明的技术方案中,第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的信息与所述用户输入的主密钥生成的;所述应用服务器根据接收的设备注册请求生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;所述应用客户端根据接收的随机数N1以及D1和Ks从而可以生成与应用服务器共享的、绑定第一设备的子密钥Ka1。
由于本发明的技术方案中,与第一设备绑定的子密钥Ka1是根据账户的子密钥Ks和一个随机数N1生成的,而账户的子密钥Ks是根据账户的名称与所述用户输入的主密钥生成的;因此,基于同一主密钥,对于不同的应用客户端而产生的不同的账户名称,可以为不同的账户生成不同的子密钥;对于不同的设备,由于产生的随机数不同,从而基于同一主密钥生成账户的子密钥后进而再生成与设备绑定的子密钥也是不同的;从而让用户免去记忆很多口令的负担——只需要记住一个作为主密钥的口令。由于本发明的技术方案的第一设备可以是智能终端、移动终端等,不需要使用专门的设备,因此也没有安全密钥需要用户携带额外设备。
本发明的技术方案中,由于应用服务器保存了账户的子密钥Ks,因此,应用服务器可以在重新生成随机数后,利用账户的子密钥Ks以及新生成的随机数来更新与第一设备绑定的子密钥;此过程,不需用户进行任何操作和干预,从而实现设备的子密钥的自动更新。
本发明的技术方案中,由于应用服务器保存了账户的子密钥,因此,在新的设备,比如第二设备注册需要生成子密钥时,应用服务器可以利用账户的子密钥来完成第二设备的身份认证,而无需涉及(恢复)其它设备(比如第一设备)的子密钥,从而保证任何设备的子密钥不会在其它设备上出现,避免安全漏洞,提高安全性。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
1.一种基于主密钥协商生成绑定设备的子密钥的方法,其特征在于,包括:
安装于第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的;
所述应用服务器接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;
所述应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1。
2.根据权利要求1所述的方法,其特征在于,所述Ks具体根据如下方法生成:
所述应用客户端向第一设备中的密钥管理服务KMS装置发送携带所述账户的名称的账户子密钥请求;
所述KMS装置接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
3.根据权利要求2所述的方法,其特征在于,在所述应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1后,还包括:所述应用客户端使用Ka1进行身份认证:
所述应用客户端以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;
所述应用服务器以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
4.根据权利要求2所述的方法,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述方法还包括:自动更新绑定第一设备的子密钥:
所述应用客户端向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;
所述应用服务器在接收到所述子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端;
所述应用客户端使用Ka1解密接收到的所述加密信息,得到N2和Ka2;
所述应用客户端使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;
所述应用服务器以本地产生的Ka2对接收到的所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
5.根据权利要求2所述的方法,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述方法还包括:协商生成绑定第二设备的子密钥:
第二设备上的所述应用客户端向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;
所述应用服务器接收所述新设备注册请求后生成随机数N3,并根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3后,将N3发送给所述应用客户端;
第二设备上的所述应用客户端将所述账户的名称、N3、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;
第二设备上的KMS装置在接收到所述设备子密钥请求后根据所述用户输入的主密钥,以及所述账户的名称、N3、D2,生成绑定第二设备的子密钥Ka3后,发送给所述应用客户端。
6.一种基于主密钥协商生成绑定设备的子密钥的系统,其特征在于,包括:
安装于第一设备中的应用客户端,用于发送携带第一设备的标识D1、账户的子密钥Ks的设备注册请求;并根据返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的;
应用服务器,用于在接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1后将N1返回给所述应用客户端。
7.根据权利要求6所述的系统,其特征在于,还包括:安装于第一设备中的密钥管理服务KMS装置;以及
所述应用客户端还用于向所述KMS装置发送携带所述账户的名称的账户子密钥请求;
所述KMS装置用于接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
8.根据权利要求6所述的系统,其特征在于,
所述应用客户端还用于以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;以及
所述应用服务器还用于以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
9.根据权利要求6所述的系统,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及
所述应用客户端还用于向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;以及
所述应用服务器还用于在接收到所述子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端;以及
所述应用客户端还用于使用Ka1解密接收到的所述加密信息,得到N2和Ka2;并使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;以及
所述应用服务器还用于以本地产生的Ka2对接收到的所述加密的信息进行解密,得到正确的N2或N2的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
10.根据权利要求6所述的系统,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及
所述应用客户端还用于向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;以及
所述应用服务器还用于接收所述新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定所述第二设备的子密钥Ka3,并将N3发送给所述应用客户端;以及
所述应用客户端还用于将所述账户的名称、N3、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;以及
所述KMS装置还用于接收到所述设备子密钥请求后根据用户输入的主密钥,以及所述账户的名称、N3、D2,生成绑定第二设备的子密钥Ka3后,发送给所述应用客户端。
11.一种应用客户端,包括信息收发模块,其特征在于,还包括:
设备注册模块,用于通过所述信息收发模块向应用服务器发送携带第一设备的标识D1、账户的子密钥Ks的设备注册请求;并根据所述应用服务器返回的随机数N1以及D1和Ks,生成绑定第一设备的子密钥Ka1;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的。
12.根据权利要求11所述的应用客户端,其特征在于,
所述设备注册模块还用于向密钥管理服务KMS装置发送携带所述账户的名称的账户子密钥请求;并接收所述KMS装置返回的所述账户的子密钥;其中,所述账户的子密钥具体是所述KMS装置接收到所述账户子密钥请求后,根据所述账户的名称与所述用户输入的主密钥生成的。
13.根据权利要求12所述的应用客户端,其特征在于,
所述设备注册模块还用于以Ka1加密N1或N1的表达式的计算结果后,将加密的信息向所述应用服务器发送;并接收所述应用服务器返回的认证成功消息。
14.根据权利要求12所述的应用客户端,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用客户端还包括:
子密钥更新模块,用于通过所述信息收发模块向所述应用服务器发送携带所述账户的名称、第一设备的标识D1的子密钥更新请求;并使用Ka1解密从所述应用服务器接收到的加密信息,得到N2和Ka2;并使用Ka2加密N2或N2的表达式的计算结果后,将加密的信息向所述应用服务器发送;
其中,所述加密信息是所述应用服务器在接收到所述子密钥更新请求后,根据生成的新的随机数N2、所述账户的子密钥Ks,以及D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后得到的。
15.根据权利要求12所述的应用客户端,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用客户端还包括:
新设备注册模块,用于通过所述信息收发模块向所述应用服务器发送携带第二设备的标识D2以及所述账户的名称的新设备注册请求;之后将所述应用服务器返回的随机数N3,以及所述账户的名称、D2携带在设备子密钥请求中发送给第二设备上的KMS装置;并接收所述KMS装置根据所述用户输入的主密钥,以及所述账户的名称、N3、D2生成的绑定第二设备的子密钥Ka3。
16.一种应用服务器,包括信息收发模块,其特征在于,还包括:
设备注册模块,用于通过所述信息收发模块接收到应用客户端发送的设备注册请求后生成随机数N1,根据N1以及所述设备注册请求中携带的第一设备的标识D1、账户的子密钥Ks,生成绑定第一设备的子密钥Ka1,并将N1返回给所述应用客户端。
17.根据权利要求16所述的应用服务器,其特征在于,
所述设备注册模块还用于在接收到所述应用客户端以Ka1加密的N1或N1的表达式的计算结果后,以本地产生的Ka1对接收到的所述加密的信息进行解密,得到正确的N1或N1的表达式的计算结果后,确认身份认证通过,向所述应用客户端返回认证成功消息。
18.根据权利要求16所述的应用服务器,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用服务器还包括:
子密钥更新模块,用于通过所述信息收发模块在接收到所述应用客户端发送的、携带所述账户的名称、第一设备的标识D1的子密钥更新请求后生成新的随机数N2,根据所述账户的子密钥Ks,以及N2、D1生成新的绑定第一设备的子密钥Ka2,并使用旧的绑定第一设备的子密钥Ka1加密所述N2和Ka2后,将加密信息发送给所述应用客户端。
19.根据权利要求16所述的应用服务器,其特征在于,所述设备注册请求中还携带用户名U,以及所述账户的名称具体包括:所述用户名U和所述应用客户端的标识A;以及所述应用服务器还包括:
新设备注册模块,用于通过所述信息收发模块接收到所述应用客户端发送的、携带第二设备的标识D2以及所述账户的名称的新设备注册请求后生成随机数N3,根据D2、N3以及所述账户的子密钥Ks,生成绑定第二设备的子密钥Ka3,并将N3发送给所述应用客户端。
20.一种密钥管理服务装置,其特征在于,包括:
账户子密钥生成模块,用于接收到应用客户端发送的携带账户的名称的账户子密钥请求后,根据所述账户的名称与用户输入的主密钥生成所述账户的子密钥返回给所述应用客户端。
21.根据权利要求20所述的装置,其特征在于,还包括:
设备子密钥生成模块,用于接收到所述应用客户端发送的、携带所述账户的名称、随机数N3、以及第二设备的标识D2的设备子密钥请求后,根据用户输入的主密钥,以及所述账户的名称、N3、D2生成绑定第二设备的子密钥Ka3发送给所述应用客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910054936.5A CN109698746B (zh) | 2019-01-21 | 2019-01-21 | 基于主密钥协商生成绑定设备的子密钥的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910054936.5A CN109698746B (zh) | 2019-01-21 | 2019-01-21 | 基于主密钥协商生成绑定设备的子密钥的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109698746A true CN109698746A (zh) | 2019-04-30 |
CN109698746B CN109698746B (zh) | 2021-03-23 |
Family
ID=66234282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910054936.5A Active CN109698746B (zh) | 2019-01-21 | 2019-01-21 | 基于主密钥协商生成绑定设备的子密钥的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109698746B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064752A (zh) * | 2019-12-31 | 2020-04-24 | 郑州信大捷安信息技术股份有限公司 | 一种基于公网的预置密钥共享系统及方法 |
CN111212095A (zh) * | 2020-04-20 | 2020-05-29 | 国网电子商务有限公司 | 一种身份信息的认证方法、服务器、客户端及系统 |
CN111245607A (zh) * | 2020-01-07 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种组网方法及系统、配网设备、客户端和服务端 |
CN112929169A (zh) * | 2021-02-07 | 2021-06-08 | 成都薯片科技有限公司 | 秘钥协商方法及系统 |
CN113453230A (zh) * | 2020-03-25 | 2021-09-28 | 中国电信股份有限公司 | 终端管理方法和系统以及安全代理 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101243438A (zh) * | 2005-08-22 | 2008-08-13 | 微软公司 | 分布式单一注册服务 |
US20100169646A1 (en) * | 2008-12-29 | 2010-07-01 | General Instrument Corporation | Secure and efficient domain key distribution for device registration |
US20100325654A1 (en) * | 2009-06-17 | 2010-12-23 | General Instrument Corporation | Communicating a device descriptor between two devices when registering onto a network |
CN101945386A (zh) * | 2010-09-10 | 2011-01-12 | 中兴通讯股份有限公司 | 一种实现安全密钥同步绑定的方法及系统 |
US20110252243A1 (en) * | 2010-04-07 | 2011-10-13 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
CN105007285A (zh) * | 2015-08-19 | 2015-10-28 | 南京万道电子技术有限公司 | 一种基于物理不可克隆函数的密钥保护方法和安全芯片 |
CN105515768A (zh) * | 2016-01-08 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种更新密钥的方法、装置和系统 |
CN106161449A (zh) * | 2016-07-19 | 2016-11-23 | 青松智慧(北京)科技有限公司 | 无密钥认证传输方法及系统 |
CN107094076A (zh) * | 2017-04-14 | 2017-08-25 | 江苏亨通问天量子信息研究院有限公司 | 基于量子真随机数的保密通信方法及通信系统 |
CN107147611A (zh) * | 2016-03-01 | 2017-09-08 | 华为技术有限公司 | 传输层安全tls建链的方法、用户设备、服务器和系统 |
CN107248075A (zh) * | 2017-05-19 | 2017-10-13 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备双向认证和交易的方法及装置 |
EP3293720A1 (en) * | 2016-09-09 | 2018-03-14 | Kabushiki Kaisha Toshiba | Information processing device, server device, information processing system, moving object and information processing method |
-
2019
- 2019-01-21 CN CN201910054936.5A patent/CN109698746B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101243438A (zh) * | 2005-08-22 | 2008-08-13 | 微软公司 | 分布式单一注册服务 |
US20100169646A1 (en) * | 2008-12-29 | 2010-07-01 | General Instrument Corporation | Secure and efficient domain key distribution for device registration |
US20100325654A1 (en) * | 2009-06-17 | 2010-12-23 | General Instrument Corporation | Communicating a device descriptor between two devices when registering onto a network |
US20110252243A1 (en) * | 2010-04-07 | 2011-10-13 | Apple Inc. | System and method for content protection based on a combination of a user pin and a device specific identifier |
CN101945386A (zh) * | 2010-09-10 | 2011-01-12 | 中兴通讯股份有限公司 | 一种实现安全密钥同步绑定的方法及系统 |
CN105007285A (zh) * | 2015-08-19 | 2015-10-28 | 南京万道电子技术有限公司 | 一种基于物理不可克隆函数的密钥保护方法和安全芯片 |
CN105515768A (zh) * | 2016-01-08 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 一种更新密钥的方法、装置和系统 |
CN107147611A (zh) * | 2016-03-01 | 2017-09-08 | 华为技术有限公司 | 传输层安全tls建链的方法、用户设备、服务器和系统 |
CN106161449A (zh) * | 2016-07-19 | 2016-11-23 | 青松智慧(北京)科技有限公司 | 无密钥认证传输方法及系统 |
EP3293720A1 (en) * | 2016-09-09 | 2018-03-14 | Kabushiki Kaisha Toshiba | Information processing device, server device, information processing system, moving object and information processing method |
CN107094076A (zh) * | 2017-04-14 | 2017-08-25 | 江苏亨通问天量子信息研究院有限公司 | 基于量子真随机数的保密通信方法及通信系统 |
CN107248075A (zh) * | 2017-05-19 | 2017-10-13 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备双向认证和交易的方法及装置 |
Non-Patent Citations (2)
Title |
---|
SALAH MACHANI ET AL.: "《FIDO UAF Architectural Overview》", 《FIDO ALLIANCE》 * |
董贵山等: "《基于区块链的身份管理认证研究》", 《计算机科学》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064752A (zh) * | 2019-12-31 | 2020-04-24 | 郑州信大捷安信息技术股份有限公司 | 一种基于公网的预置密钥共享系统及方法 |
CN111064752B (zh) * | 2019-12-31 | 2021-12-17 | 郑州信大捷安信息技术股份有限公司 | 一种基于公网的预置密钥共享系统及方法 |
CN111245607A (zh) * | 2020-01-07 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种组网方法及系统、配网设备、客户端和服务端 |
CN113453230A (zh) * | 2020-03-25 | 2021-09-28 | 中国电信股份有限公司 | 终端管理方法和系统以及安全代理 |
CN113453230B (zh) * | 2020-03-25 | 2023-11-14 | 中国电信股份有限公司 | 终端管理方法和系统以及安全代理 |
CN111212095A (zh) * | 2020-04-20 | 2020-05-29 | 国网电子商务有限公司 | 一种身份信息的认证方法、服务器、客户端及系统 |
CN112929169A (zh) * | 2021-02-07 | 2021-06-08 | 成都薯片科技有限公司 | 秘钥协商方法及系统 |
CN112929169B (zh) * | 2021-02-07 | 2022-10-28 | 成都薯片科技有限公司 | 秘钥协商方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109698746B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
EP2950506B1 (en) | Method and system for establishing a secure communication channel | |
CN112671798B (zh) | 一种车联网中的服务请求方法、装置和系统 | |
CN109698746A (zh) | 基于主密钥协商生成绑定设备的子密钥的方法和系统 | |
CN107659406B (zh) | 一种资源操作方法及装置 | |
CN113691560B (zh) | 数据传送方法、控制数据使用的方法以及密码设备 | |
CN110225050B (zh) | Jwt令牌的管理方法 | |
CN104506534A (zh) | 安全通信密钥协商交互方案 | |
CN104756458A (zh) | 用于保护通信网络中的连接的方法和设备 | |
CN103490881A (zh) | 认证服务系统、用户认证方法、认证信息处理方法及系统 | |
EP2767029A1 (en) | Secure communication | |
CN112669104B (zh) | 租赁设备的数据处理方法 | |
CN110519222B (zh) | 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统 | |
CN109120621B (zh) | 数据处理器 | |
CN116244750A (zh) | 一种涉密信息维护方法、装置、设备及存储介质 | |
KR102053993B1 (ko) | 인증서를 이용한 사용자 인증 방법 | |
CN114338091B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN111698263B (zh) | 一种北斗卫星导航数据的传输方法和系统 | |
CN114285557A (zh) | 通信加密方法、系统和装置 | |
CN109922042B (zh) | 遗失设备的子密钥管理方法和系统 | |
CN105426771A (zh) | 一种实现大数据安全的方法 | |
CN114554485B (zh) | 异步会话密钥协商和应用方法、系统、电子设备及介质 | |
CN116456341B (zh) | 数据保全认证方法、装置、设备及存储介质 | |
CN114143198B (zh) | 固件升级的方法 | |
CN114710359B (zh) | 工业网络动态密钥管理方法及工业网络加密通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |