本发明涉及现代密码技术,特别涉及抵御计时攻击的身份鉴别方法。
背景技术:
1、身份鉴别技术是应用系统或平台对用户身份的合法性进行甄别的方式,允许通过甄别的合法用户进入,阻挡非法用户进入,是维护系统或平台安全的一道技术防线。目前常用的身份鉴别技术包括设置用户名及登录口令或采用ukey证书验签,但ukey证书需要向第三方机构申请,增加了额外的第三方成本。
2、计时攻击是一种通过不断地伪造用户的身份鉴别数据进行身份鉴别试探,并根据每次试探返回的时间差异,猜测出正确的身份鉴别数据的攻击方式,为一种常见的黑客攻击手段。计时攻击的攻击环节为应用系统或平台的用户身份鉴别环节。
3、口令鉴别为单因子鉴别,强度较弱,在使用用户名及登录口令进行身份鉴别时,容易被计时攻击破解,因为在通过对比口令的杂凑数据进行鉴别攻击时,对比函数遇到第一个不一致的数据就直接返回,通过不断的试探和返回可以达到最终破解的目的。
技术实现思路
1、为了解决用户登录时身份验证被计时攻击破解的问题,本申请提供一种可抵御计时攻击的身份鉴别方法以及系统。
2、一种可抵御计时攻击的身份鉴别方法,包括身份生成方法:
3、生成第一私钥分量,第二私钥分量以及公钥,获取用户设置的pin码;
4、对所述pin 码进行密钥派生运算,得到第一派生密钥,使用所述第一派生密钥加密所述第一私钥分量,得到第一密文;
5、对所述pin码进行杂凑运算,得到杂凑值,对所述杂凑值进行密钥派生运算,得到第二派生密钥,使用所述第二派生密钥加密所述第二私钥分量,得到第二密文。
6、进一步地,还包括身份验证方法:
7、获取请求登录pin码,生成认证参数;
8、对所述请求登录pin码进行密钥派生运算,得到第一登录派生密钥;
9、使用所述第一登录派生密钥对所述第一密文进行解密,得到第一解密私钥,使用第一解密私钥对所述认证参数进行协同签名,得到第一签名结果;
10、对所述请求登录pin码进行杂凑运算,得到登录杂凑值,对所述登录杂凑值进行密钥派生运算,得到第二登录派生密钥;
11、使用所述第二登录派生密钥对所述第二密文进行解密,得到第二解密私钥,使用第二解密私钥对所述认证参数进行协同签名,得到第二签名结果;
12、根据所述第一签名结果和所述第二签名结果得到最终签名结果,根据所述公钥验证所述最终签名结果是否正确。
13、用户端对pin 码进行密钥派生,服务端对pin码的杂凑值进行密钥派生,使得两方派生出的密钥不相同,具有较高的安全性和验证准确性。
14、进一步地,生成认证参数,具体包括:生成第一随机数和第二随机数,根据所述第一随机数和所述第二随机数计算认证参数。服务端和用户端各自生成随机数,能有效防止重放攻击。
15、进一步地,所述密钥派生运算包括循环迭代计算。
16、进一步地,生成第一私钥分量,第二私钥分量以及公钥,具体为使用门限sm2密码算法,在用户端和服务端分别生成第一私钥分量与第二私钥分量,并计算公钥。
17、sm2算法生成的私钥可以在用户端和服务端两方中分别独立生成,并计算出对应的完整公钥,签名时,两方分别使用自己的私钥分量进行签名,得到签名的中间结果,最终通过中间结果合并得到完整的签名。在这过程中,无论是密钥生成还是协同签名过程,都不会出现完整的sm2私钥,也不需要交换私钥分量,因此具有较高的安全性。
18、进一步地,其特征在于,所述密钥派生运算包括伪随机函数,所述伪随机函数包括hmac-sm3、hmac-sha1、hmac-sha256或hmac-sha512。
19、进一步地,所述杂凑运算包括md5、sha1、sha2或sm3。
20、进一步地,所述密钥派生运算最终得到对称密钥。利用对称密钥对私钥分量进行加解密,无论对称密钥是否正确,其解密运算的耗时均相同,使的整个身份鉴别过程的总耗时相同,从而来抵御计时攻击。
21、本发明还公开了一种,用于实现上述可抵御计时攻击的身份鉴别方法,包括身份生成系统,所述身份生成系统包括用户端和服务端;
22、所述用户端包括:
23、生成单元,用于生成第一私钥分量;
24、运算单元,用于获取用户设置的pin码,对所述pin 码进行密钥派生运算,得到第一派生密钥,使用所述第一派生密钥加密所述第一私钥分量,得到第一密文;并对所述pin码进行杂凑运算,得到杂凑值,将所述杂凑值传输至所述服务端;
25、存储单元,用于存储所述第一密文;
26、所述服务端包括:
27、生成单元,用于生成第二私钥分量以及公钥;
28、运算单元,用于对所述杂凑值进行密钥派生运算,得到第二派生密钥,使用所述第二派生密钥加密所述第二私钥分量,得到第二密文;
29、存储单元,用于存储所述第二密文以及公钥。
30、还包括身份验证系统,所述身份验证系统包括用户端和服务端;
31、所述用户端包括:
32、生成单元,用于生成第一随机数以及认证参数;
33、运算单元,用于获取请求登录pin码,对所述请求登录pin码进行密钥派生运算,得到第一登录派生密钥;并对所述请求登录pin码进行杂凑运算,得到登录杂凑值,将所述登录杂凑值传输至所述服务端;
34、签名单元,用于使用所述第一登录派生密钥对所述第一密文进行解密,得到第一解密私钥,使用第一解密私钥对所述认证参数进行协同签名,得到第一签名结果;
35、所述服务端包括:
36、生成单元,用于生成第二随机数,并将所述第二随机数返回至所述用户端;
37、运算单元,用于对所述登录杂凑值进行密钥派生运算,得到第二登录派生密钥;
38、签名单元,用于使用所述第二登录派生密钥对所述第二密文进行解密,得到第二解密私钥,使用第二解密私钥对所述认证参数进行协同签名,得到第二签名结果;
39、验证单元,用于根据所述第一签名结果和所述第二签名结果得到最终签名结果,根据所述公钥验证所述最终签名结果是否正确。
40、本发明的有益效果为:
41、本发明利用派生密钥加密用户端和服务端的私钥分量,达到无论用户登录时输入的口令是否正确,身份鉴别执行的流程相同、耗时相同的目的,从而抵御计时攻击。并且本方法不改变用户的使用习惯,仍旧使用口令注册和登录,也无需向第三方ca申请ukey证书,增加额外成本,就可以实现抵御计时攻击的目的,具有较为广泛的使用场景和推广使用的前景。
1.一种可抵御计时攻击的身份鉴别方法,其特征在于,包括身份生成方法:
2.根据权利要求1所述的可抵御计时攻击的身份鉴别方法,其特征在于,还包括身份验证方法:
3.根据权利要求2所述的可抵御计时攻击的身份鉴别方法,其特征在于,生成认证参数,具体包括:生成第一随机数和第二随机数,根据所述第一随机数和所述第二随机数计算认证参数。
4.根据权利要求1所述的可抵御计时攻击的身份鉴别方法,其特征在于,所述密钥派生运算包括循环迭代计算。
5.根据权利要求1所述的可抵御计时攻击的身份鉴别方法,其特征在于,生成第一私钥分量,第二私钥分量以及公钥,具体为使用门限sm2密码算法,在用户端和服务端分别生成第一私钥分量与第二私钥分量,并计算公钥。
6.根据权利要求1或2任一项所述的可抵御计时攻击的身份鉴别方法,其特征在于,所述密钥派生运算包括伪随机函数,所述伪随机函数包括hmac-sm3、hmac-sha1、hmac-sha256或hmac-sha512。
7.根据权利要求1或2任一项所述的可抵御计时攻击的身份鉴别方法,其特征在于,所述杂凑运算包括md5、sha1、sha2或sm3。
8.根据权利要求1或2任一项所述的可抵御计时攻击的身份鉴别方法,其特征在于,所述密钥派生运算最终得到对称密钥。
9.一种可抵御计时攻击的身份鉴别系统,其特征在于,包括身份生成系统,所述身份生成系统包括用户端和服务端;
10.如权利要求9所述的可抵御计时攻击的身份鉴别系统,其特征在于,还包括身份验证系统,所述身份验证系统包括用户端和服务端;