基于主密钥协商生成绑定设备的子密钥的方法和系统技术方案

技术编号:21006748 阅读:29 留言:0更新日期:2019-04-30 22:12
本发明专利技术公开了一种基于主密钥协商生成绑定设备的子密钥的方法和系统,所述方法包括:安装于第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,Ks是根据账户的名称与用户输入的主密钥生成的;应用服务器接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给应用客户端;应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1。本发明专利技术能够在实现让用户只需要记住一个作为主密钥的口令,也没有安全密钥需要用户携带额外设备的基础上,可以为后期的子密钥的管理提供便捷性,以及提供更高的安全性。

【技术实现步骤摘要】
基于主密钥协商生成绑定设备的子密钥的方法和系统
本专利技术涉及信息安全传输
,特别是指一种基于主密钥协商生成绑定设备的子密钥的方法和系统。
技术介绍
随着互联网的飞速发展,每个普通的用户都开始拥有越来越多的在线账号、越来越多的计算机设备(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的表达式的计算结果后,将加密的信息向所述应用服务器发送本文档来自技高网
...

【技术保护点】
1.一种基于主密钥协商生成绑定设备的子密钥的方法,其特征在于,包括:安装于第一设备中的应用客户端向应用服务器发送携带第一设备的标识D1以及账户的子密钥Ks的设备注册请求;其中,所述Ks是根据所述账户的名称与使用第一设备的用户输入的主密钥生成的;所述应用服务器接收所述设备注册请求后生成随机数N1,根据N1、D1以及Ks,生成绑定第一设备的子密钥Ka1,并将N1发送给所述应用客户端;所述应用客户端根据接收的随机数N1以及D1和Ks,生成所述子密钥Ka1。

【技术特征摘要】
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所述的系统,其特征在...

【专利技术属性】
技术研发人员:石瑞生石豫扬
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1