本发明涉及计算机技术领域,特别是涉及一种身份验证方法及验证系统。
背景技术:
客户端数据安全是互联网领域安全的重要组成部分,互联网黑客的攻击不仅局限于对网络通信、服务器的攻击,对客户端的攻击也成为计算机安全普遍的趋势。
目前,用户登陆网络服务时进行身份验证的方法是:用户在终端输入用户口令后,终端用固定的一种摘要算法对用户口令信息生成信息摘要,然后终端将该信息摘要发送给网络服务器。网络服务器获取这个信息摘要,根据服务器的数据库存储的该用户口令生成一信息摘要,然后将终端发送的信息摘要和服务器生成的信息摘要进行比较,从而验证该用户口令的合法性。
同时,这几年随着海量存储技术的发展,网络上关于MD单一摘要算法的彩虹表,也就是根据摘要信息可以查到多个但是不是所有的原始信息的表格,通过彩虹表的摘要信息可以破解用户口令。2004年的国际密码学会议上,中国王小云证明了MD5(一种摘要算法)可以被碰触攻击,也就是可以得到MD5的信息摘要,并且有一个该信息摘要的原始信息,因此可以便捷的生成其它生成该信息摘要的原始信息。
因此,现有技术生成信息摘要的算法采用单一摘要算法(比如MD5、SHA1)对用户口令的进行身份验证,恶意第三方在获取用户口令的信息摘要后,比如通过非加密网络通信通道或者攻击服务端等方式,就可以通过碰撞方式获得用户口令不同的数据,而该数据与用户口令具有相同的信息摘要,因此服务器接收到该数据后,也会验证通过,从而导致身份验证安全性低。而这几年也发生了几起严重的用户口令的信息摘要泄漏的安全事件。
因此,如何解决现有技术中采用单一摘要算法导致身份验证安全性较低的问题,是本领域的技术人员普遍关注的问题。
技术实现要素:
鉴于此,本发明的目的在于提供一种身份验证方法及验证系统,用以提供更安全的身份验证方法和验证系统,解决采用单一摘要算法带来身份验证安全性低的问题。
根据上述发明目的,本发明提供一种方法,所述方法包括:
步骤S1,云端服务器根据一来自用户终端发送的身份验证请求界面生成一会话ID,并随机选择至少两种摘要算法的算法名称标识符,然后将所述会话ID和算法名称标识符对应且保存至服务器中;
步骤S2,所述云端服务器发送身份验证界面至用户终端,该身份验证界面至少包括所述会话ID和所述算法名称标识符;
步骤S3,所述用户终端根据接收到的算法名称标识符,调取对应算法,对一用户口令进行处理,生成对应数量的信息摘要,然后发送所述会话ID和所述信息摘要至云端服务器,并向所述云端服务器发送身份验证请求;
步骤S4,所述云端服务器根据用户终端发送的会话ID,在所述云端服务器内存中查找对应的会话ID,若有,则执行步骤S5,否则,拒绝身份验证;
步骤S5,所述云端服务器根据算法名称标识符调用对应的摘要算法,将注册时保存在服务器中的用户口令生成对应数量的信息摘要;
步骤S6,所述云端服务器将获取的用户终端发送的信息摘要和云端服务器自己生成的信息摘要对比,
若完全一致,则身份验证通过;否则,身份验证不通过。
优选地,所述摘要算法包括MD5、SHA、CRC验证算法。
优选地,所述会话ID是一字符串。
优选地,步骤S4还包括:
若在云端服务器中查找到对应的会话ID后,则删除所述云端服务器中所述会话ID和对应的至少两种摘要算法标识符。
优选地,步骤S5之前还包括:
若用户注册时保存在云端服务器的用户口令是加密的,云端服务器需要先解密用户口令。
优选地,所述方法还包括:
若用户终端和云端服务器之间的网络是采用加密方式的安全通道,云端服务器对注册时保存在服务器中的用户口令生成对应的云端服务器中的所有摘要算法的信息摘要;
用户终端发送-用户口令至云端服务器,并向所述云端服务器发送用户身份验证请求;
所述云端服务器根据获取的用户口令在服务器中随机选择至少两种摘要算法,将所述用户口令生成相应数量的信息摘要;
所述云端服务器将生成的信息摘要与云端服务器保存的信息摘要进行对比,若一致,则身份验证通过;否则,身份验证不通过。
根据上述发明目的,本发明还提供了一种验证系统,该系统至少包括一用户终端和一云端服务器:
所述用户终端,用于根据云端服务器发送的至少两种算法名称标识符调用对应的摘要算法,将-用户口令生成至少两种信息摘要和获取的会话ID发送至云端服务器,具体包括:
请求模块,用于发送身份验证请求界面至云端服务器;
第一接收模块,用于获取云端服务器发送的身份验证界面,该身份验证请求界面至少包括一会话ID和至少两种算法名称标识符;
第一算法模块,用于根据所述的第一接收模块获取的至少两种算法名称标识符调用对应的摘要算法,将用户输入的用户口令生成对应数量的信息摘要;
第一发送模块,用于发送第一算法模块生成的信息摘要和会话ID至云端服务器;
所述云端服务器,用于根据会话ID获取算法名称标识符并调用相应的摘要算法,将注册时保存在服务器中的用户口令生成对应数量的信息摘要,然后将获取的用户终端发送的信息摘要和云端服务器自己生成的信息摘要对比判断身份验证是否通过,具体包括:
生成模块,用于根据所述用户终端发送的身份验证请求界面生成一会话ID;
第二发送模块,用于发送身份验证界面至所述用户终端,所述身份验证界面至少包括一会话ID和算法名称标识符;
存储模块,用于保存用户注册时的用户口令信息;
第二算法模块,用于随机选择至少两种摘要算法的算法名称标识符,并与所述生成模块生成的会话ID对应并保存,以及根据第二接收模块获取的会话ID在云端服务器中获取相应的算法名称标识符,然后将存储模块的一用户口令生成对应数量的信息摘要;
第二接收模块,用于获取所述用户终端发送的会话ID和至少两种信息摘要;
比较模块,用于将获取的所述用户终端发送的信息摘要与所述第二算法模块生成的摘要信息进行比较,判断身份验证是否通过。
优选地,所述云端服务器还包括:
解密模块,用于对注册时的加密的用户口令进行解密。
与现有技术相比,本发明一种身份验证方法及验证系统,具有以下有益效果:解决了采用单一摘要算法带来身份验证安全性低的问题;提供了更安全的身份验证和验证系统,提高了网络安全性,更好的提供了用户上网的体验效果;现有技术中,解决碰撞攻击的技术方案中,都需要对原有传统身份验证系统大量改造,而本发明实现的方案,对现有身份验证系统改动小并且效果明显,能够更平滑地升级。
附图说明
图1为本发明实施例的一种身份验证方法的流程图;
图2为本发明实施例的一种验证系统的结构图;
具体实施方式
正如背景技术中提及的,如何解决现有技术中采用单一摘要算法导致身份验证安全性较低的问题,是普遍关注的问题。
因此,本发明通过云端服务器根据一来自用户终端发送的身份验证请求界面生成一会话ID,并随机选择至少两种摘要算法的算法名称标识符,然后发送至少包括会话ID和所述算法名称标识符的身份验证界面至用户终端;用户终端根据算法名称标识符,对一用户口令生成对应数量的信息摘要,然后发送会话ID和信息摘要至云端服务器;云端服务器根据用户终端发送的会话ID,在云端服务器中查找会话ID对应的算法标识符,然后根据至少两种算法名称标识符将注册时保存在服务器中的用户口令生成对应数量的信息摘要,最后云端服务器将获取的用户终端发送的信息摘要和云端服务器自己生成的信息摘要对比,判断身份验证是否通过,解决了现有技术中采用单一摘要算法导致身份验证安全性较低的问题。
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一个实施例的一种身份验证方法的流程图。如图1所示,,该方法包括:
S1:云端服务器根据一来自用户终端发送的身份验证请求界面生成一会话ID,并随机选择至少两种摘要算法的算法名称标识符,然后将会话ID和算法名称标识符对应且保存至服务器中;
现有技术中,互联中典型的身份验证应用场景中,比如,用户要在某网站进行认证登录,首先需要用户在该网站注册用户名,在注册时需要输入用户口令信息,注册成功之后,云端服务器中保存用户注册时的用户口令信息。用户下次登录该网站进行认证登录时,在登录界面输入用户口令信息,移动终端根据某摘要算法将该用户口令生成信息摘要,并将信息摘要发送给云端服务器。云端服务器接收用户身份验证请求后,将用户注册时保存在服务器中的用户口令信息按照同种摘要算法生成信息摘要,同时将该信息摘要和移动终端发送的信息摘要对比,若一致,则身份验证通过,用户登录成功。
在本步骤中,用户在终端登录到身份验证界面,比如,用户登录到某网站要求身份验证的登录界面,该界面有一要求输入用户名和用户密码的输入框。当用户登录该网站身份验证的认证界面时,用户终端将用户要求身份验证请求的界面发送给云端服务器。
云端服务器的内存中存有多种摘要算法,包括MD5、SHA(安全散列算法、CRC(循环冗余校验码)验者算法等。
在本步骤中,云端服务器接收到身份验证请求界面后,根据该身份验证请求界面,服务器随机生成一个字符串即会话ID,然后在服务器内存中存有的多种摘要算法中,随机选择至少两种摘要算法的算法名称标识符,并将至少两种算法名称标识符和会话ID成映射关系保存在服务器的内存中。
S2:云端服务器发送身份验证界面至用户终端,该身份验证界面至少包括会话ID和算法名称标识符;
S3:用户终端根据接收到的算法名称标识符,调取对应算法,对一用户口令进行处理,生成对应数量的信息摘要,然后发送会话ID和信息摘要至云端服务器,并向云端服务器发送身份验证请求;
在本步骤中,用户终端接收云端服务器发送的身份验证界面,获取身份验证界面中的会话ID和算法名称标识符。当用户在终端输入用户口令后,比如,用户在认证登录界面,输入用户名和用户口令。用户终端获取用户输入的用户口令信息,根据获取的至少两种算法标识符调用对应的摘要算法,将用户口令进行处理,生成对应数量的信息摘要。然后用户终端将获取的会话ID和该信息摘要发送至云端服务器,并向云端服务器发送身份验证请求。
S4:云端服务器根据用户终端发送的会话ID,在云端服务器内存中查找对应的会话ID,若有,则执行步骤S5,否则,拒绝身份验证;
S5:云端服务器根据算法名称标识符调用对应的摘要算法,将注册时保存在服务器中的用户口令生成对应数量的信息摘要;
S6:云端服务器将获取的用户终端发送的信息摘要和云端服务器自己生成的信息摘要对比,
若完全一致,则身份验证通过;否则,身份验证不通过。
在步骤S4、S5和S6中,云端服务器接收到用户终端发送的身份验证请求后,并获取用户终端发送的会话ID和信息摘要,然后根据会话ID在云端服务器的内存中查找该会话ID,若有,则获取服务器内存中会话ID对应的至少两种种算法名称标识符,否则,拒绝身份验证请求。云端服务器根据算法名称标识符在服务器中调用对应摘要算法,并将用户注册时存储在服务器中的用户口令信息生成至少两种摘要信息。
云端服务器将从用户终端获取的摘要信息和云端服务器自己生成的摘要信息比较:若完全一致,则身份验证通过;否则,身份验证通过。
在步骤S5之前还包括,如果用户注册时保存在云端服务器的用户口令是加密的,云端服务器需要先解密用户口令。
本发明的另一种实施方式,若移动终端和云端服务器之间的网络是采用加密方式的安全通道,该实施方式还包括:
云端服务器对注册时保存在服务器中的用户口令生成对应的云端服务器中的所有摘要算法的信息摘要;
用户终端发送-用户口令至云端服务器,并向云端服务器发送用户身份验证请求;
云端服务器根据获取的用户口令在服务器中随机选择至少两种摘要算法,将用户口令生成相应数量的信息摘要;
云端服务器将生成的信息摘要与云端服务器保存的信息摘要进行对比,若一致,则身份验证通过;否则,身份验证不通过。
在本实施方式中,若用户终端和云端服务器之间的网络是采用加密方式的安全通道,则当移动终端获取的用户输入的用户口令,移动终端很可能将用户口令发送至云端服务器,而不是发送用户口令对应的某种摘要算法的信息摘要。因此,云端服务端在用户注册时,在服务器中保存用户口令对应的所有摘要算法的信息摘要。当用户输入用户口令时,用户终端发送身份验证请求,并将用户口令发送至云端服务器。当云端服务器接收到身份验证请求,并获取用户口令后,云端服务器在服务器内存中随机选择至少两种摘要算法,调用对应的摘要算法,将该用户口令生成对应数量地信息摘要。云端服务器根据用户终端发送的用户口令生成的信息摘要,与在云端服务器保存的该用户口令对应的摘要算法生成的信息摘要相对比,若完全一致,则身份验证通过,否则,则身份验证失败。
综上,本发明采用多种摘要算法对用户口令进行身份验证,即使当恶意第三方获得了云端服务器保存的用户口令的一种信息摘要,但由于不同摘要算法通过碰撞方式获得对应的用户口令是不同的,因此在采用任意一个碰撞出的用户口令进行身份验证时,该用户口令都难以通过所有摘要算法的验证,因此在提高了碰撞难度的同时,可以有效鉴别各种非法的用户口令,从而保证了身份验证的安全性。
图2是本发明的实施例的一种验证系统的结构图。如图2所示,该系统至少包括一用户终端和一云端服务器,具体包括:
所述用户终端,用于根据云端服务器发送的至少两种算法名称标识符调用对应的摘要算法,将-用户口令生成至少两种信息摘要和获取的会话ID发送至云端服务器,具体包括:
请求模块20,用于发送身份验证请求界面至云端服务器;
第一接收模块21,用于获取云端服务器发送的身份验证界面,该身份验证请求界面至少包括一会话ID和至少两种算法名称标识符;
第一算法模块22,用于根据所述的第一接收模块获取的至少两种算法名称标识符调用对应的摘要算法,将用户输入的用户口令生成对应数量的信息摘要;
第一发送模块23,用于发送第一算法模块生成的信息摘要和会话ID至云端服务器;
所述云端服务器,用于根据会话ID获取算法名称标识符并调用相应的摘要算法,将注册时保存在服务器中的用户口令生成对应数量的信息摘要,然后将获取的用户终端发送的信息摘要和云端服务器自己生成的信息摘要对比判断身份验证是否通过,具体包括:
生成模块24,用于根据所述用户终端发送的身份验证请求界面生成一会话ID;
第二发送模块25,用于发送身份验证界面至所述用户终端,所述身份验证界面至少包括一会话ID和算法名称标识符;
存储模块26,用于保存用户注册时的用户口令信息;
第二算法模块27,用于随机选择至少两种摘要算法的算法名称标识符,并与所述生成模块生成的会话ID对应并保存,以及根据第二接收模块获取的会话ID在云端服务器中获取相应的算法名称标识符,然后将存储模块的一用户口令生成对应数量的信息摘要;
第二接收模块28,用于获取所述用户终端发送的会话ID和至少两种信息摘要;
比较模块29,用于将获取的所述用户终端发送的信息摘要与所述第二算法模块生成的摘要信息进行比较,判断身份验证是否通过。
在具体实施过程中,用户登录该网站身份验证的认证界面时,用户终端在请求模块20中将用户要求身份验证请求的界面发送给云端服务器。
云端服务器生成模块24中,根据用户终端发送的身份验证请求界面生成一会话ID。云端服务器在第二算法模块27中随机选择至少两种摘要算法的算法名称标识符,并将生成模块24中生成的会话ID和算法名称标识符对应且保存。然后云端服务器通过第二发送模块25发送身份验证界面至移动终端,该身份验证界面至少包括会话ID和算法名称标识符。
用户终端在第一接收模块21中获取身份验证请求界面中的会话ID和算法名称标识符。当用户终端获取用户输入的用户口令后,根据第一接收模块21中获取的算法名称标识符,在第一算法模块22中调用算法名称标识符对应的至少两种摘要算法,对该用户口令进行处理,并生成对应数量的信息摘要,然后通过第一发送模块23发送会话ID和信息摘要至云端服务器,并向云端服务器发送身份验证请求。
云端服务器接收用户终端的身份验证请求后,在第二接收模块28中获取用户终端发送的会话ID和信息摘要。云端服务器根据第二接收模块28中获取的会话ID,在第二算法模块27中查找对应的会话ID,若有,则获取会话ID对应的算法名称标识符;否则,拒绝身份验证请求。云端服务器根第二算法模块27中获取的算法名称标识符,在第二算法模块27中调用对应的摘要算法,将注册时保存在存储模块26中的用户口令生成至少两种信息摘要。在比较模块29中,云端服务器将第二接收模块28中获取的摘要信息和在第二算法模块27中生成的摘要信息对比,若完全一致,则身份验证通过;否则,身份验证不通过。
优选地,所述云端服务器还包括:
解密模块,用于对注册时的加密的用户口令进行解密。
综上所述,本发明一种身份验证方法及验证系统,提供了更安全的身份验证和验证系统,提高了网络安全性。
任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。