本发明实施例涉及数据安全技术领域,具体涉及一种基于国密算法和生物特征的双因子认证方法、装置和系统和存储介质。
背景技术:
身份认证是网络安全中最为重要的一个环节,它是网络应用系统中的第一道防线,也是最重要的一道防线。双因子验证(2fa),有时又被称作两步验证或者双因素验证,是一种安全验证过程。在这一验证过程中,需要用户提供两种不同的认证因素来证明自己的身份,从而起到更好地保护用户证书和用户可访问的资源。双因子验证比基于单因子的验证方式提供了一种更高级别的保证。在单因子验证中,用户只需提供一种认证因子,一般情况下是一个密码或者口令。双因子验证方式不仅需要用户提供一个密码,而且需要一个第二个因子,通常情况下这一因子会是一个安全令牌或者生物识别因子像指纹和面部扫描。因为仅仅知道受害人的密码不足以通过认证检查,双因子认证通过增加攻击者访问用户设备和在线账户的难度的方式达到了为身份验证过程添加额外安全层的目的。
然而,通常用户的账号信息保存在服务器的用户账号数据库中。如果用户的口令和生物特征在数据库中以明文方式存放,所有有权访问用户账户数据库的个人(例如数据库系统管理员)可以容易地得到其他人的口令和生物特征。如果黑客得到了访问用户账号数据库的机会,那么,用户的口令和生物特征将被泄露。
对于口令保护的问题,通常的解决方法是在用户表中不直接存放明文口令,而采用密码学哈希运算对用户口令进行变换,将变换后的口令存放在用户表中,这样用户口令可以得到较好的保护。通常为了避免使用静态的口令哈希,获得更高的安全性,系统会给用户提交的口令哈希和随机的salt再做哈希单向加密,再存放到数据库中。用户身份认证过程如图1所示。
生物特征的信息往往是以明文的形式进行存储的,相关数据库就面临着被黑客攻击或者自身防范不力导致泄露的风险。生物特征数据库的外泄将面临更大的隐患,以往密码被窃取,可通过重新设置实现密码更改,并提高安全防范级别。但人脸等生物特征信息是唯一且终身不变的,因此,一旦泄露就将导致人们个人财产、或者隐私等被公开,造成重大损失,并且无法挽回。
技术实现要素:
为此,本发明实施例提供一种基于国密算法和生物特征的双因子认证方法、装置和系统和存储介质,以至少部分解决现有技术中用户口令数据安全性较差的技术问题。
为了实现上述目的,本发明实施例提供如下技术方案:
一种基于国密算法和生物特征的双因子认证方法,所述方法包括:
采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;
将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;
获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;
将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据;
根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
进一步地,所述采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册,具体包括:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
进一步地,所述获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据,具体包括:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
进一步地,根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息,具体包括:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
本发明还提供一种基于国密算法和生物特征的双因子认证装置,用于实施如上所述的方法,所述装置包括:
注册单元,用于采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;
所述注册单元还用于将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;
认证单元,用于获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;
所述认证单元还用于将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据;
认证结果输出单元,用于根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
进一步地,所述注册单元,具体用于:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
进一步地,所述认证单元,具体用于:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
进一步地,所述认证结果输出单元,具体用于:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
本发明还提供一种双因子认证系统,所述系统包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上所述的方法。
本发明还提供一种计算机存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被一种双因子认证系统执行如上所述的方法。
本发明所提供的基于国密算法和生物特征的双因子认证方法、装置和系统和存储介质,其采用专用国产商用密码算法进行密码计算,保证密码算法安全性,同时利用生物特征和口令字密码进行双因子认证,用户的口令字密码和生物特征均匀随机数用国产商用密码sm3散列函数保护,即使黑客盗取了服务器的数据,也无法恢复用户的口令字密码和生物特征均匀随机数,口令破解方法无法进行口令字密码恢复,同时保证了口令字密码和生物特征的安全。同时使用了一次一变的随机salt,防止静态数据重放攻击。通信在加密的安全信道中进行,而且交换的认证数据利用国产商用密码sm2密码保护,利用多重手段保证用户数据的安全,从而解决了现有技术中用户口令数据安全性较差的技术问题。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为现有技术中用户身份认证过程场景图;
图2为本发明所提供的双因子认证方法一种具体实施方式的流程图;
图3为图2所示双因子认证方法中用户注册过程的场景图;
图4为图2所示双因子认证方法中用户认证过程的场景图;
图5为拖库攻击过程的场景图;
图6为本发明所提供的双因子认证装置一种具体实施方式的结构框图;
图7为本发明所提供的双因子认证系统一种具体实施方式的结构框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在一种具体实施方式中,本发明提供的基于国密算法和生物特征的双因子认证方法,能够实现数据口令和生物特征的双重加密,以提高加密效果,保证用户的口令数据和生物特征数据的安全,尤其对于防范黑客进行“拖库”操作具有较好的效果。如图2所示,所述方法包括:
s1:采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;应当理解的是,该处的预设用户即需要完成注册的目标用户,将其生物特征进行模糊处理后,作为模糊生物特征预存,以便于后续认证过程中的调用和比对。该预设用户的生物特征可具体为指纹、面部扫描特征或瞳孔特征等具有典型生物特异性的特征。
s2:将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;也就是说,利用模糊提取技术将用户生物特征进行处理后,将得到的模糊生物特征与用户口令的散列值一并存储在服务器处;由于生物特征的熵值很大,生物特征和口令共同参与散列运算,保证了口令无法通过字典、穷尽等口令碰撞算法求取,同时也保证了用户口令的安全性。
在实际算法中,如图3所示,用户的注册过程包括以下具体步骤:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
在完成注册后,后续的再次登录过程,则需要对特征信息进行认证。
s3:获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;应当理解的是,该处的当前用户即需要完成认证的目标用户,将其生物特征进行模糊处理后,作为模糊生物特征预存,以便于与预存在数据库中的预设用户的特征进行比对,从而判断认证是否成功。该当前用户的生物特征可具体为指纹、面部扫描特征或瞳孔特征等具有典型生物特异性的特征,该当前用户提取的生物特征应与预存在数据库中的预设用户的生物特征相匹配,即预存的为指纹,则该处提取的生物特征也应该是指纹。
s4:将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据。
s5:根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
在实际算法中,如图4所示,用户的认证过程包括以下具体步骤:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
进一步地,根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息,具体包括:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
上述方法可用于防范黑客对个人数据的盗取,对于黑客常用的“拖库”手段,具有显著的克制效果。“拖库”一词本来是数据库领域的专业术语,通常泛指从数据库中导出数据。黑客如果通过某种非正常途径入侵网站后,就可以窃取其中的数据库,下载所有信息。如果,单纯只泄露某个网站的个人信息可能影响并不算大,但是很多用户的邮箱账号、游戏账号、微博账号和网上购物账号都使用了相同的账号和密码.如果在某家网站服务器中的信息被黑客攻破,用户的个人信息和密码泄露后,就可能导敛自己在其他系统中的个人真实财产和网上虚拟财产面临风险。黑客通过拖库攻击用户口令过程如图5所示。
由上述可知,即使通过hash算法进行保护明文口令,一旦数据库泄露,口令仍然很容易被破解,下面介绍几种攻击方法。
(1)字典攻击和暴力攻击
字典攻击和暴力攻击并没有太大的区别,字典攻击可以认为是暴力攻击的一种,它将常用的字符(暴力攻击是将各种可能的字符)组合起来进行hash运算(攻击者需要了解加密使用的hash算法),然后和数据库中的hash值进行比较,如果相同,表示用户的口令被成功破解。
(2)查找表
基本的做法就是预运算字典中的口令,然后将口令和口令对应的密文存储到一个数据结构中(比如hash表或者memcached),然后可根据口令明文和密文进行查找,查找速度非常快。
(3)彩虹表
彩虹表和查找表很类似,查找表使用的存储较多,运算速度较快;而彩虹表存储较小,运算较慢,相当于用空间换时间。
生物特征的信息往往是以明文的形式进行存储的,相关数据库就面临着被黑客攻击或者自身防范不力导致泄露的风险。生物特征数据库的外泄将面临更大的隐患,以往密码被窃取,可通过重新设置实现密码更改,并提高安全防范级别。但人脸等生物特征信息是唯一且终身不变的,因此,一旦泄露就将导致人们个人财产、或者隐私等被公开,造成重大损失,并且无法挽回。
当前,模糊提取技术被广泛的用于生物特征识别。当输入一个生物特征b时,模糊提取技术可以以一种容错的方式输出一个随机的字符串r。当输入的b'和b相差不大时,模糊提取器输出的随机字符串r不发生改变。服务器只需要存储随机字符r,而无需存储用户生物特征。在输入生物特征b'恢复r的过程中,一般需要输入一个辅助的公开信息p。模糊提取器由以下2个算法组成。然而这种认证方式也可能导致生物特征或对应的r的泄露,难以抵抗中间人攻击或数据重放攻击。
本发明所提供的方法通过密码算法协议设计,结合硬件密码学运算,对数据库中存储的口令哈希进行加密保护,实现即使数据发生泄露,黑客也无法对用户口令进行攻击,获取口令信息,有效地保护了用户口令数据。
在上述具体实施方式中,本发明所提供的基于国密算法和生物特征的双因子认证方法,其采用专用国产商用密码算法进行密码计算,保证密码算法安全性,同时利用生物特征和口令字密码进行双因子认证,用户的口令字密码和生物特征均匀随机数用国产商用密码sm3散列函数保护,即使黑客盗取了服务器的数据,也无法恢复用户的口令字密码和生物特征均匀随机数,口令破解方法无法进行口令字密码恢复,同时保证了口令字密码和生物特征的安全。同时使用了一次一变的随机salt,防止静态数据重放攻击。通信在加密的安全信道中进行,而且交换的认证数据利用国产商用密码sm2密码保护,利用多重手段保证用户数据的安全,从而解决了现有技术中用户口令数据安全性较差的技术问题。
除了上述方法,本发明还提供一种基于国密算法和生物特征的双因子认证装置,用于实施如上所述的方法,如图6所示,所述装置包括:
注册单元100,用于采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;应当理解的是,该处的预设用户即需要完成注册的目标用户,将其生物特征进行模糊处理后,作为模糊生物特征预存,以便于后续认证过程中的调用和比对。该预设用户的生物特征可具体为指纹、面部扫描特征或瞳孔特征等具有典型生物特异性的特征。
所述注册单元还用于将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;也就是说,利用模糊提取技术将用户生物特征进行处理后,将得到的模糊生物特征与用户口令的散列值一并存储在服务器处;由于生物特征的熵值很大,生物特征和口令共同参与散列运算,保证了口令无法通过字典、穷尽等口令碰撞算法求取,同时也保证了用户口令的安全性。
在实际实施过程中,所述注册单元具体用于:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
认证单元200,用于获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;
所述认证单元还用于将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据;
认证结果输出单元300,用于根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
在具体实施过程中,所述认证单元具体用于:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
进一步地,所述认证结果输出单元,具体用于:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
在上述具体实施方式中,本发明所提供的基于国密算法和生物特征的双因子认证装置,其采用专用国产商用密码算法进行密码计算,保证密码算法安全性,同时利用生物特征和口令字密码进行双因子认证,用户的口令字密码和生物特征均匀随机数用国产商用密码sm3散列函数保护,即使黑客盗取了服务器的数据,也无法恢复用户的口令字密码和生物特征均匀随机数,口令破解方法无法进行口令字密码恢复,同时保证了口令字密码和生物特征的安全。同时使用了一次一变的随机salt,防止静态数据重放攻击。通信在加密的安全信道中进行,而且交换的认证数据利用国产商用密码sm2密码保护,利用多重手段保证用户数据的安全,从而解决了现有技术中用户口令数据安全性较差的技术问题。
根据本发明实施例的第三方面,本发明还提供一种双因子认证系统,如图7所示,所述系统包括:处理器301和存储器302;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上所述的方法。
与上述实施例相对应的,本发明实施例还提供了一种计算机存储介质,该计算机存储介质中包含一个或多个程序指令。其中,所述一个或多个程序指令用于被一种双因子认证系统执行如上所述的方法。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecific工ntegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(read-onlymemory,简称rom)、可编程只读存储器(programmablerom,简称prom)、可擦除可编程只读存储器(erasableprom,简称eprom)、电可擦除可编程只读存储器(electricallyeprom,简称eeprom)或闪存。
易失性存储器可以是随机存取存储器(randomaccessmemory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,简称sram)、动态随机存取存储器(dynamicram,简称dram)、同步动态随机存取存储器(synchronousdram,简称sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlinkdram,简称sldram)和直接内存总线随机存取存储器(directrambusram,简称drram)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
1.一种基于国密算法和生物特征的双因子认证方法,其特征在于,所述方法包括:
采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;
将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;
获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;
将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据;
根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
2.根据权利要求1所述的双因子认证方法,其特征在于,所述采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册,具体包括:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
3.根据权利要求1所述的双因子认证方法,其特征在于,所述获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据,具体包括:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
4.根据权利要求3所述的双因子认证方法,其特征在于,根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息,具体包括:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
5.一种基于国密算法和生物特征的双因子认证装置,用于实施如权利要求1-4任一项所述的方法,其特征在于,所述装置包括:
注册单元,用于采集预设用户的生物特征和口令散列值,对所述预设用户的生物特征进行模糊提取,以得到预设用户的模糊生物特征;
所述注册单元还用于将所述预设用户的模糊生物特征与所述预设用户的口令散列值整合,以得到注册数据,将所述注册数据存储于数据库中,以完成用户注册;
认证单元,用于获取当前用户的生物特征和口令散列值,对当前用户的生物特征进行模糊提取,以得到当前用户的模糊生物特征;
所述认证单元还用于将所述当前用户的模糊生物特征与所述当前用户的口令散列值整合,以得到双因子验证数据;
认证结果输出单元,用于根据所述双因子验证数据与所述数据库中的注册数据的比对结果,输出认证结果信息。
6.根据权利要求5所述的双因子认证装置,其特征在于,所述注册单元,具体用于:
通过模糊提取技术,将预设用户的生物特征信息bio输入至gen()算法中,以输出预设用户的生物特征均匀随机字串rb和预设用户的生物特征辅助字串p;
利用密码sm3算法计算au=h(id||p||rb||pwd),其中,au为认证数据,h为sm3算法对应的密码散列函数,id为预设用户的身份信息,pwd为预设用户的口令;
采用服务器的sm2公钥pk加密enc(pk,id,au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥dk解密enc(pk,id||p||au)得到id||p||au;
生成一个随机数salt,进行sm3散列计算h(salt,au),将id、p、salt和h(salt,au)同时存储到数据库中,服务器不存储au;
发送注册成功消息,以完成用户注册。
7.根据权利要求5所述的双因子认证装置,其特征在于,所述认证单元,具体用于:
通过模糊提取技术,输入当前用户的生物特征信息bio’和生物特征辅助字符串p到rep()算法中,得到生物特征均匀随机字串rb;
利用密码sm3算法,计算au=h(id||p||rb||pwd);
采用服务器的sm2公钥pk加密enc(pk,id||p||au),将enc(pk,id||p||au)发送给服务器s;
服务器接收,然后用服务器的sm2私钥d解密enc(pk,id||p||au)得到id||p||au,以获得双因子验证数据。
8.根据权利要求5所述的双因子认证装置,其特征在于,所述认证结果输出单元,具体用于:
对比解密得到的id、p以及数据库中的id、p值是否相同;
若相同,则读取数据库中的随机数salt,进行sm3散列计算h(salt,au),和数据库中的h(salt,au)进行对比;
若相同,则认证成功,并发送认证成功信息。
9.一种双因子认证系统,其特征在于,所述系统包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1-4任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被一种双因子认证系统执行如权利要求1-4任一项所述的方法。
技术总结