【技术实现步骤摘要】
本专利技术涉及密码对验证,尤其涉及一种动态信息摘要验证方法、电子设备及存储介质。
技术介绍
1、在用户身份认证这一场景的系统实现过程,为防止用户密码泄漏所采取的各种数据存储的加固方案或措施(比如直接明文存储、简单签名哈希、多重签名哈希存储、采用对称加密或是加盐哈希存储等)。目前验证密码有效性的过程,阐述如下:
2、验证过程整体包含以下三个关键步骤:
3、第一步,拿到用户的输入密码;
4、第二步,对输入的密码按设定的计算过程进行计算,这里不设定具体是什么算法,可以是加盐哈希、可以是对称加密。
5、第三步,根据计算结果与数据库中的存储信息进行匹配。
6、在上述的步骤中,除单机软件系统外,无论是b/s架构还是c/s架构,均需要将待验证数据信息从客户端传往服务端网络传输这一过程,并进行验证匹配。这一传输过程的数据要么是第一和第二步骤间的用户明文密码,要么是第二和第三步骤经过计算后的待验证数据。
7、经过上述验证密码有效性的步骤,在网络传输的待验证数据信息不管是明文密码或是经一定摘要计算后的数据,其值固定不变的,在网络传输过程若被劫持或泄露,会出现以下情况:当前登录系统若未采用多因素认证体系情况下,黑客可依据所劫持的数据模拟发出请求,随时可进行用户的登录的认证行为,存在一定程度上的安全隐患。若传输的是明文,那直接就被劫持破解。若是摘要计算后的数据,因其值固定不变,黑客获取后也是加大密码被破解的风险。
技术实现思路
1、专
2、技术方案:为了实现上述专利技术目的,本专利技术的一种动态消息摘要验证方法,包括以下步骤:
3、服务端通过用户的原始密码生成密码对;
4、在客户端与服务端允许的时间误差delta和最大传输延迟maxdelay后,计算时间偏差和客户端时间因子;
5、客户端根据计算得到的时间偏差、客户端时间因子和用户输入的原始密码,结合客户端系统时间,通过消息摘要算法和异或运算生成摘要;
6、客户端根据生成的摘要和随机种子数据,进行混淆运算,并将混淆运算后的数据上报给服务端;
7、服务端对客户端的混淆数据进行混淆逆运算,将得到的逆运算结果与服务端系统时间计算服务端时间因子和新密码对;
8、将新生成的密码对与存储的密码对进行摘要匹配验证,得到验证结果。
9、进一步地,生成密码对的计算公式为:pk=mdn(sk),其中,mdn()表示对括号中的数据进行n次消息摘要算法运算,sk表示用户输入的原始密码,pk是由上述sk数据进行多次消息摘要计算得到的存储密码对。
10、进一步地,所述时间偏差的计算公式为:
11、mod=(2*delta+maxdelay);
12、gap=clienttime%mod;
13、其中,mod表示模数,gap表示时间偏差,clienttime表示客户端系统时间。
14、进一步地,所述客户端时间因子的计算公式为:clientfactor=clienttime–gap,clientfactor表示计算得到的客户端时间因子。
15、进一步地,所述消息摘要算法和异或运算的计算公式为:
16、sign=md((mdn(sk)+clientfactor+seed)xor mdm(sk));
17、其中sign表示客户端运算后得到的消息摘要结果,md()表示对括号中的数据进行一次消息摘要算法运算,mdn()表示对括号中的数据进行n次消息摘要算法运算,mdm()表示对括号中的数据进行m次消息摘要算法运算,clientfactor表示客户端时间因子,seed表示程序生成的随机种子数据,xor表示对两边的数据进行异或运算。
18、进一步地,所述混淆运算的计算公式为:signdata=mix(seed+gap+sign+ver);
19、其中,signdata表示经混淆后的最终数据,ver表示当前混淆函数的程序版本,mix()表示对括号中的数据进行混淆运算。
20、进一步地,所述服务端时间因子的计算公式为:
21、serverfactor=servertime-((servertime+delta-gap)%mod);
22、其中,serverfactor表示计算得到的服务端时间因子,servertime表示服务端当前系统时间。
23、进一步地,新密码对的计算公式为:
24、newpk=mdn-m(md(pk+serverfactor+seed)xor sign);
25、其中,mdn-m()表示对括号中的数据进行n-m次的消息摘要运算。
26、一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现一种动态消息摘要验证方法。
27、一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现一种动态消息摘要验证方法。
28、有益效果:本专利技术执行的消息摘要算法,最终存储的密码对一定是多次摘要后的数据,规避了服务端拥有用户密码的可能性;
29、本专利技术引入多因素因子参与消息摘要的运算,使得最终在网络传输的数据是变化的,即使用户每次输入的是相同的密码,而每次得出的都是不相同的数据,而且多因素因子中引入了时间因子,使得每次传输的数据只在允许有效时间范围内有效;
30、本专利技术不直接采用时间因子进行数据传输,而是引入时间偏差参数进行传输,在约定的有效时间范围内,通过时间偏差计算得到时间因子,从而进一步保护了数据的传输安全性及数据的抗破解性,即使在网络传输数据被劫持的情况下,摘要数据失效机制规避了后续通过数据模拟提交重复认证的风险。
31、本专利技术通过巧妙的摘要生成与验证公式,使服务端在不需要原始密码的情况下,通过密码对的再运算即可实现对数据身份的有效验证。
32、本专利技术除了进行用户密码的身份验证场景外,还可适用于数据防篡改场景。
本文档来自技高网...【技术保护点】
1.一种动态消息摘要验证方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,生成密码对的计算公式为:pk=MDn(sk),其中,MDn()表示对括号中的数据进行n次消息摘要算法运算,sk表示用户输入的原始密码,pk是由上述sk数据进行多次消息摘要计算得到的存储密码对。
3.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,所述时间偏差的计算公式为:
4.根据权利要求3所述的一种动态消息摘要验证方法,其特征在于,所述客户端时间因子的计算公式为:clientFactor=clientTime–gap,clientFactor表示计算得到的客户端时间因子。
5.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,所述消息摘要算法和异或运算的计算公式为:
6.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,所述混淆运算的计算公式为:signData=MIX(seed+gap+sign+ver);
7.根据权利要求1所述的一种动态消息摘要验证方法,其特
8.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,新密码对的计算公式为:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8任一项所述的一种动态消息摘要验证方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的一种动态消息摘要验证方法。
...【技术特征摘要】
1.一种动态消息摘要验证方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,生成密码对的计算公式为:pk=mdn(sk),其中,mdn()表示对括号中的数据进行n次消息摘要算法运算,sk表示用户输入的原始密码,pk是由上述sk数据进行多次消息摘要计算得到的存储密码对。
3.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,所述时间偏差的计算公式为:
4.根据权利要求3所述的一种动态消息摘要验证方法,其特征在于,所述客户端时间因子的计算公式为:clientfactor=clienttime–gap,clientfactor表示计算得到的客户端时间因子。
5.根据权利要求1所述的一种动态消息摘要验证方法,其特征在于,所述消息摘要算法和异或运算的...
【专利技术属性】
技术研发人员:陈长君,
申请(专利权)人:新华智云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。