本公开涉及验证码安全,尤其涉及一种基于人机交互的认证方法、装置、电子设备及存储介质。
背景技术:
1、在软件程序等产品的运营过程中,其短信接口容易受到恶意攻击,尤其是对短信验证码的盗刷情况,若是无用户认证的情况下,攻击者使用模拟器安装目标软件程序,并利用不同手机号或者ip向目标软件程序发送验证码请求,对目标软件程序的短信费用造成消耗;同时,对于目标软件程序产品的运营方来说,上述情况会对产品用户造成信息骚扰,降低用户的体验感,导致产品用户的流失。
2、在用户认证过程中,存在着大量以验证码为主要形式的安全验证操作。而目前市面上的大多数验证码都存在较为容易的破解方式,安全性能低。例如,当采用图形验证码作为用户认证的情况下,攻击者使用图片识别技术,可以较为容易获取到图片验证码上的字符信息,并通过自动填充方式完成认证;对滑块验证码的用户认证方式,其滑块验证码的缺口位置容易识别,并使用自动化工具模拟人为进行滑块验证。
3、而少部分具有高安全性的验证码又一味增大了识别难度,不仅机器难以识别,用户本身也难以识别,极大的降低了用户对于产品的体验感,不利于产品本身的推广。
技术实现思路
1、有鉴于此,本公开实施例提供了一种基于人机交互的认证方法、装置、电子设备及存储介质,用以解决现有的验证码认证技术存在的容易被恶意程序自动识别,安全性低的问题。
2、第一方面,本公开实施例提供了一种基于人机交互的认证方法,其采用如下技术方案:
3、客户端向服务端发送验证码获取请求后,接收所述服务端发送的认证信息;或是接收所述服务端启动认证程序后发送的认证信息;其中,所述认证信息用于指示用户完成指定认证动作;
4、采集用户的动作轨迹信息以生成经加密处理的校验值;
5、向所述服务端返回校验值,以使所述服务端对校验值进行校验;
6、接收所述服务端基于校验结果返回的响应信息。
7、在一个可能的实现方式中,所述接收所述服务端发送的认证信息;或是接收所述服务端启动认证程序后发送的认证信息,具体包括:
8、所述认证信息包括随机生成的认证标识、认证码和键盘排序列表;其中,所述客户端基于所述键盘排序列表生成字符键盘。
9、在一个可能的实现方式中,所述认证信息包括随机生成的认证标识、认证码和键盘排序列表,具体包括:
10、所述认证码、所述键盘排序列表的字符格式包括阿拉伯数字、小写字母、大写字母和特殊字符。
11、在一个可能的实现方式中,所述字符键盘的形状呈现多种规则或不规则图形设置。
12、在一个可能的实现方式中,还包括:
13、所述客户端基于所述认证标识、所述认证码生成的加密字符串;
14、基于所述认证标识的任一字符进行取模运算,获得取模结果;
15、基于所述取模结果从所述加密字符串选取若干与所述字符键盘的每一键位对应的加密字符。
16、在一个可能的实现方式中,所述加密字符串采用hex加密算法生成。
17、在一个可能的实现方式中,所述采集用户的动作轨迹信息以生成经加密处理的校验值,包括:
18、采集用户点击所述字符键盘的各个键位的顺序信息,将所述字符键盘的各个键位对应的所述加密字符按所述顺序信息进行组合,以生成校验值。
19、第二方面,本公开实施例还提供了一种基于人机交互的认证装置,采用如下技术方案:
20、信息获取模块,用于客户端向服务端发送验证码获取请求后,接收所述服务端发送的认证信息;或是用于接收所述服务端启动认证程序后发送的认证信息;其中,所述认证信息用于指示用户完成指定认证动作;
21、用户认证模块,用于采集用户的动作轨迹信息以生成经加密处理的校验值;
22、比对校验模块,用于向所述服务端返回校验值,以使所述服务端对校验值进行校验;
23、响应接收模块,用于接收所述服务端基于校验结果返回的响应信息。
24、第三方面,本公开实施例还提供了一种电子设备,包括:
25、至少一个处理器;以及,
26、与所述至少一个处理器通信连接的存储器;其中,
27、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一所述的基于人机交互的认证方法。
28、第四方面,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求1-7任一所述的基于人机交互的认证方法。
29、本公开实施例提供的客户端向服务端发送验证码获取请求后,接收服务端发送的认证信息;或是接收服务端启动认证程序后发送的认证信息;其中,认证信息用于指示用户完成指定认证动作;采集用户的动作轨迹信息以生成经加密处理的校验值;向服务端返回校验值,以使服务端对校验值进行校验;接收服务端基于校验结果返回的响应信息。由于采用加密处理后的校验值进行传输,即使攻击者对数据进行篡改,服务端的校验仍无法通过,解决了现有的验证码认证技术存在的容易被恶意程序自动识别,安全性低的问题。
30、同时,客户端基于认证标识、认证码生成的加密字符串;基于认证标识的任一字符进行取模运算,获得取模结果;基于取模结果从所述加密字符串选取若干与字符键盘的每一键位对应的加密字符;然后,采集用户点击字符键盘的各个键位的顺序信息,将字符键盘的各个键位对应的加密字符按所述顺序信息进行组合,以生成校验值。即当攻击者使用图片识别技术获取认证码的字符信息,也无法得到对应的校验值,使认证方式不易被机器学习破解,提高认证方式的安全性。
31、上述说明仅是本公开技术方案的概述,为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
1.一种基于人机交互的认证方法,其特征在于,包括:
2.根据权利要求1所述的基于人机交互的认证方法,其特征在于,所述接收所述服务端发送的认证信息;或是接收所述服务端启动认证程序后发送的认证信息,具体包括:
3.根据权利要求2所述的基于人机交互的认证方法,其特征在于,所述认证信息包括随机生成的认证标识、认证码和键盘排序列表,具体包括:
4.根据权利要求2所述的基于人机交互的认证方法,其特征在于,所述字符键盘的形状呈现多种规则或不规则图形设置。
5.根据权利要求2所述的基于人机交互的认证方法,其特征在于,还包括:
6.根据权利要求5所述的基于人机交互的认证方法,其特征在于,所述加密字符串采用hex加密算法生成。
7.根据权利要求5所述的基于人机交互的认证方法,其特征在于,所述采集用户的动作轨迹信息以生成经加密处理的校验值,包括:
8.一种基于人机交互的认证装置,其特征在于,该装置包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行权利要求1-7任一所述的基于人机交互的认证方法。