当前位置: 首页 > 专利查询>暨南大学专利>正文

基于轨迹绘制交互的安全验证码生成方法、系统及介质技术方案

技术编号:31823011 阅读:51 留言:0更新日期:2022-01-12 12:39
本发明专利技术公开了一种基于轨迹绘制交互的安全验证码生成方法、系统及介质。该方法包括制定安全规则;客户端向服务端请求进行身份认证;服务端产生数据令牌、验证码题目与图片,并将相关信息存入数据库中;对产生的图片添加干扰,传入客户端;客户端将打乱后的验证码图片恢复并显示;记录用户绘制的轨迹信息,将轨迹信息数据和数据令牌加密后传输给服务端;服务端判别轨迹信息,并将结果返回给客户端。本发明专利技术对发送的数据使用RC4加密算法进行加密;在JavaScript中检测到无头浏览器时拒绝进行验证;使用提取人类绘制轨迹特征设计的算法判别机器行为,这些技术手段提高了安全性和正确性,能够有效防止OCR图片识别技术的破解以及机器模拟生成轨迹的行为。机器模拟生成轨迹的行为。机器模拟生成轨迹的行为。

【技术实现步骤摘要】
基于轨迹绘制交互的安全验证码生成方法、系统及介质


[0001]本专利技术属于验证码安全的
,具体涉及一种基于轨迹绘制交互的安全验证码生成方法、系统及介质。

技术介绍

[0002]在用户认证过程中,存在着大量以验证码为主要形式的安全验证操作。而目前市面上的大多数验证码都存在较为容易的破解方式,安全性能低。而少部分具有高安全性的验证码又一味增大了识别难度,不仅机器难以识别,人类也难以识别,用户体验感极差。
[0003]目前市面上主流的几种行为验证码,例如,文字输入式验证码和文字点选验证码,这两类验证码尽管操作简单,但随着OCR技术的发展,有效识别图片上的文字并完成相应模拟行为也变得简单。滑块式验证码通过用户简单拖动滑块放置到正确位置,根据鼠标的轨迹进行数据分析判别是人还是机器。然而识别验证码图片缺口的方法层出不穷,例如:使用人工智能机器学习、使用边缘检测算法、对完整图片与缺失滑块的图片各像素的亮度进行对比,在完成缺口识别后即可得到模拟拖动的终点位置。而有的验证码为了增大破解难度,盲目给背景图片加噪,虽然图片识别难度增加了,但是也给人类识别增加了难度。

技术实现思路

[0004]本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于轨迹绘制交互的安全验证码生成方法、系统及介质。
[0005]为了达到上述目的,本专利技术采用以下技术方案:
[0006]本专利技术的一个方面,提供了一种基于轨迹绘制交互的安全验证码生成方法,包括下述步骤:
[0007]S1、制定用于抵抗验证码攻击的安全规则;
[0008]S2、客户端加载JavaScript代码初始化验证码组件,向服务端请求进行身份认证;
[0009]S3、服务端产生数据令牌、验证码题目与图片,并将相关信息存入数据库中;对产生的图片添加干扰,传入客户端;
[0010]S4、客户端运用恢复算法将打乱后的验证码图片恢复并显示;
[0011]S5、客户端记录用户绘制的轨迹信息,将轨迹信息数据和数据令牌一起加密后传输给服务端;
[0012]S6、服务端对收到的数据解密后,根据数据令牌读取验证码相关信息,据此判别用户提交的轨迹信息,并将结果返回给用户。
[0013]作为优选的技术方案,所述安全规则具体为:
[0014]S11、使用JavaScript检测用户是否正在尝试使用无头浏览器加载验证码组件,如果是则中止加载,不允许进行验证;
[0015]S12、使用C语言对JavaScript中的部分逻辑进行重写,使用Emscripten编译到WebAssembly字节码后提供相关函数给JavaScript代码调用。
[0016]作为优选的技术方案,所述数据令牌、验证码题目与图片的产生和处理过程如下:
[0017]S31、随机生成由字母和数字组成的字符串作为数据令牌Challengetoken;
[0018]S32、从收集好的词库中随机获取一个字数为二到四个字之间的词语作为验证码的题目;
[0019]S33、随机获取一张图片作为背景图,随机生成验证码题目中各个文字的参数,包括文字的位置坐标、字号大小、角度和颜色;所述文字的颜色与背景图上文字位置的颜色的YUV颜色模式Y通道的值存在区别;将文字按照所述参数绘制到背景图上,最后在图片上添加噪声干扰,得到将会展示给用户的验证码图片;
[0020]S34、将数据令牌Challengetoken与验证码的题目信息存入redis数据库中;
[0021]S35、使用洗牌算法将图片以16x16的小块为单位“打乱”添加干扰,并传输至客户端。
[0022]作为优选的技术方案,所述记录用户绘制的轨迹信息具体为:
[0023]S51、在桌面端用户在验证码图片上按下鼠标左键,或移动端用户触摸验证码图片时,开始记录用户绘制的轨迹;
[0024]S52、每隔25毫秒,以毫秒为单位记录一次从绘制开始到此时所经过的时间,并记录此时鼠标或触摸点在验证码图片上的位置;
[0025]S53、当鼠标或触摸点的位置移动到验证码图片显示区域以外,或用户松开鼠标左键和停止触摸,或记录的轨迹点数量达到预设的最大个数个,则停止记录用户绘制的轨迹;
[0026]S54、客户端对轨迹信息数据和数据令牌使用RC4加密后传输给服务端。
[0027]作为优选的技术方案,所述步骤S6中的服务端判别轨迹信息过程如下:
[0028]S61、服务端获取轨迹信息数据和数据令牌后,先对数据进行解密获取Challengetoken,依据Challengetoken在redis数据库中调出题目信息;
[0029]S62、使用判定轨迹算法判断是否为机器操作;
[0030]S63、若验证通过则产生一个验证令牌Verifytoken,设置有效期存入数据库并加密传输给客户端;若不通过,则停止工作;
[0031]S64、客户端将接收到的验证令牌Verifytoken和其他业务数据一并传输给服务端等待验证;
[0032]S65、服务端将在redis数据库中查询Verifytoken是否存在,若存在则验证成功,并销毁数据库中的Verifytoken,向客户端返回验证成功消息;若不存在,则向客户端返回验证失败消息。
[0033]作为优选的技术方案,所述判定轨迹算法具体为:
[0034](1)判定起点和终点,具体为:判断点的轨迹的起点和终点是否在图片上所给题目文字的位置范围内;
[0035](2)判定连线时间,具体为:若连线时间若超过0.8s,则验证不通过,判定为机器操作;
[0036](3)判定斜率,具体为:若后续点到第一个点的斜率95%的概率相同,则判定为机器操作的直线;
[0037](4)判定离散点到标准直线的距离,具体为:若离散点到标准轨迹直线的距离过大,则判定为机器操作。
[0038]本专利技术的另一个方面,提供了一种基于轨迹绘制交互的安全验证码生成系统,应用于上述的基于轨迹绘制交互的安全验证码生成方法,包括安全规则制定模块、初始化模块、数据令牌及验证码生成模块、验证码恢复模块、轨迹信息记录模块以及身份验证模块;
[0039]所述安全规则制定模块用于制定用于抵抗验证码攻击的安全规则;
[0040]所述初始化模块用于加载JavaScript代码初始化验证码组件,向服务端请求进行身份认证;
[0041]所述数据令牌及验证码生成模块用于产生数据令牌、验证码题目与图片,并将相关信息存入数据库中;对产生的图片添加干扰,传入客户端;
[0042]所述验证码恢复模块运用恢复算法将打乱后的验证码图片恢复并显示;
[0043]所述轨迹信息记录模块用于记录用户绘制的轨迹信息,将轨迹信息数据和数据令牌一起加密后传输给服务端;
[0044]所述身份验证模块用于在服务端对收到的数据解密后,根据数据令牌读取验证码相关信息,据此判别用户提交的轨迹信息,并将结果返本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于轨迹绘制交互的安全验证码生成方法,其特征在于,包括下述步骤:制定用于抵抗验证码攻击的安全规则;客户端加载JavaScript代码初始化验证码组件,向服务端请求进行身份认证;服务端产生数据令牌、验证码题目与图片,并将相关信息存入数据库中;对产生的图片添加干扰,传入客户端;客户端运用恢复算法将打乱后的验证码图片恢复并显示;客户端记录用户绘制的轨迹信息,将轨迹信息数据和数据令牌一起加密后传输给服务端;服务端对收到的数据解密后,根据数据令牌读取验证码相关信息,据此判别用户提交的轨迹信息,并将结果返回给用户。2.根据权利要求1所述基于轨迹绘制交互的安全验证码生成方法,其特征在于,所述安全规则具体为:使用JavaScript检测用户是否正在尝试使用无头浏览器加载验证码组件,如果是则中止加载,不允许进行验证;使用C语言对JavaScript中的部分逻辑进行重写,使用Emscripten编译到WebAssembly字节码后提供相关函数给JavaScript代码调用。3.根据权利要求1所述基于轨迹绘制交互的安全验证码生成方法,其特征在于,所述数据令牌、验证码题目与图片的产生和处理过程如下:随机生成由字母和数字组成的字符串作为数据令牌Challengetoken;从收集好的词库中随机获取一个字数为二到四个字之间的词语作为验证码的题目;随机获取一张图片作为背景图,随机生成验证码题目中各个文字的参数,包括文字的位置坐标、字号大小、角度和颜色;所述文字的颜色与背景图上文字位置的颜色的YUV颜色模式Y通道的值存在区别;将文字按照所述参数绘制到背景图上,最后在图片上添加噪声干扰,得到将会展示给用户的验证码图片;将数据令牌Challengetoken与验证码的题目信息存入redis数据库中;使用洗牌算法将图片以16x16的小块为单位打乱并添加干扰,并传输至客户端。4.根据权利要求1所述基于轨迹绘制交互的安全验证码生成方法,其特征在于,所述记录用户绘制的轨迹信息具体为:在桌面端用户在验证码图片上按下鼠标左键,或移动端用户触摸验证码图片时,开始记录用户绘制的轨迹;每隔25毫秒,以毫秒为单位记录一次从绘制开始到此时所经过的时间,并记录此时鼠标或触摸点在验证码图片上的位置;当鼠标或触摸点的位置移动到验证码图片显示区域以外,或用户松开鼠标左键和停止触摸,或记录的轨迹点数量达到预设的最大个数个,则停止记录用户绘制的轨迹;客户端对轨迹信息数据和数据令牌使用RC4加密后传输给服务端。5.根据权利要求1所述基于...

【专利技术属性】
技术研发人员:高博宇李宸刘鑫卿雨平
申请(专利权)人:暨南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1