一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于滑块验证码的防破解方法和系统与流程

2022-08-17 01:21:36 来源:中国专利 TAG:


1.本发明涉及captcha(全自动区分计算机和人的图灵测试)领域的防破解技术。


背景技术:

2.全自动区分计算机和人类的图灵测试(简称captcha),俗称验证码,是一种区分用户是计算机和人的公共全自动程序,防止用户使用程序自动机进行自动提交注入,避免服务器交互处理遭受不必要的攻击。验证码的主要目的是强制人机交互来抵御机器自动化攻击,为了确保服务器系统的稳定和用户信息的安全,绝大多数的网站平台都采用了验证码技术。
3.滑块验证码是目前常用的一种验证码,本质是将滑块滑动至正确位置,提交app或网站验证,验证通过后才能使用某项功能,经常用于用户登录、投票、用户评价建议等功能,对企业而言安全性高,防止接口被刷,降低服务器压力,对用户而言界面舒适美观,为用户带来更有趣的验证过程,提升了用户的交互体验。除此以外,部分网站还在验证背景图片中植入广告,带来一定的宣传效果和经济利益。
4.但如今随着机器自动识别技术的发展,机器破解滑块验证码越来越容易,准确率也越来越高,识别步骤一般分为获取-计算-破解,获取步骤一般为找到验证码图片和滑块缺口图片,根据图片下载地址可以拿到原图,再通过模拟浏览器的请求下载原图片的二进制码写入文件保存图片。
5.为了破解验证码需要计算滑块滑动的距离,步骤一般使用灰度化、匹配、缩放比计算等手段。
6.灰度化:将验证码图片进行灰度处理,由于灰度值不同可以区分滑块缺口和背景图片。
7.匹配:依据滑块缺口的rgb码和灰度处理后的背景图片,可以匹配并获取滑块缺口在背景图的位置。
8.缩放比计算:实际网页上的验证码图片和下载的原图片大小比对得到缩放比,从而计算出滑块实际滑动的精确距离。
9.最后使用selenium等技术按住滑块元素,根据滑动计算得出的滑动距离,滑动到相应位置,破解成功。
10.因此,即便通过随机更换验证码图片或者调整滑块缺口位置等方式增加难度,只要通过更优化的算法,仍旧使得机器识别破解验证码变得可能,无法分辨机器还是人,滑块验证码本身也就失去了意义。
11.因此,需要能够改进现有技术中的缺陷的方法和系统。


技术实现要素:

12.提供本发明内容来以简化形式介绍将在以下具体实施方式部分中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨
在用于帮助确定所要求保护的主题的范围。
13.通过对机器自动识别破解的分析发现,机器拖动滑块的点击位置和正常人拖动滑块点击位置的变化、以及机器拖动滑块过程中的速度变化和正常人拖动滑块的速度变化均存在差异。因此,本发明可以基于此提取滑块运动特征来寻找对应的防破解方法,最终实现加固验证码的目的。
14.在本发明中,对验证码解锁分两轮进行检测:
15.第一轮检测通过获取滑块的点击位置坐标,记录并进行数据分析,根据位置坐标是否固定不变来判断是否机器识别。
16.第二轮检测通过预先计算滑块验证码中滑块的瞬时加速度,以键值对形式自动存入数据列表中,根据返回列表的长度可以对列表进行任意切片操作,如果机器滑动滑块是匀速,根据加速度是否为0判断;如果机器滑动模拟了相对真实的人的滑动,根据拖动过程中的瞬时加速度是否相等来判断;如果机器滑动使用了随机数散列滑动,通过获取初始加速度集合和末尾加速度集合以供对比,并结合用户滑动特征进行判断。
17.具体而言,在本发明的一个实施例中,提供了一种用于滑块验证码的防破解方法,所述方法包括:
18.获取滑块点击的位置坐标并生成滑块滑动的回放视频;
19.在所述位置坐标相同的次数达到阈值次数的情况下确定所述滑块点击由机器做出;
20.对所述回放视频进行分解并进行图片切割;
21.对切割图片进行处理以确定滑块在所述切割图片中的位置并基于所述位置来计算所述滑块在每个切割图片之间的像素间距;
22.根据所述回放视频的时长和帧数来确定每个切割图片的时间间隔;
23.基于所述时间间隔和所述像素间距来确定所述滑块在每个切割图片之间的滑动速度并基于所述滑动速度来确定所述滑块在各帧之间的瞬时加速度;
24.在所述瞬时加速度相等的次数达到阈值次数的情况下确定所述滑块滑动由机器做出;以及
25.在所述瞬时加速度相等的次数未达到所述阈值次数的情况下基于所述滑块的初段加速度集合和末段加速度集合来判断所述滑块滑动是否由机器做出。
26.在本发明的一个实施例中,所述位置坐标是和所述回放视频在预定时间段内获取的,并且在确定所述滑块点击由机器做出的情况下将所述位置坐标或者登录机器的ip地址存储在数据库中。
27.在本发明的一个实施例中,所述方法进一步包括对所述回放视频进行异常情况排除。
28.在本发明的一个实施例中,对切割图片进行处理包括读取所述切割图片的rgb编码并根据所述rgb码来对所述切割图片进行灰度处理,并且所述切割图片是逐帧切割的。
29.在本发明的该实施例中,所述rgb编码的读取以及所述灰度处理是多线程的。
30.在本发明的一个实施例中,所述瞬时加速度以键值对形式输出并自动保存到列表中以供对所述列表中的数据进行切片操作。
31.在本发明的该实施例中,所述初段加速度集合和所述末段加速度集合通过对所述
列表进行切片来获得,并且所述初段加速度集合和所述末段加速度集合中的每个瞬时加速度被进行逐一比对以判断所述滑块滑动是否由机器做出。
32.在本发明的一个实施例中,所述瞬时加速度相等的次数达到阈值次数的情况包括瞬时加速度为零的情况。
33.在本发明的一个实施例中,提供了一种用于滑块验证码的防破解系统,所述系统包括:
34.输入信息采集模块,其被配置成获取滑块点击的位置坐标并生成滑块滑动的回放视频;
35.滑块点击位置检测模块,其被配置成在所述位置坐标相同的次数达到阈值次数的情况下确定所述滑块点击由机器做出;
36.图片处理模块,其被配置成:
37.对所述回放视频进行分解并进行图片切割;
38.对切割图片进行处理以确定滑块在所述切割图片中的位置;
39.滑块加速度计算模块,其被配置成:
40.基于所述位置来计算所述滑块在每个切割图片之间的像素间距;
41.根据所述回放视频的时长和帧数来确定每个切割图片的时间间隔;以及
42.基于所述时间间隔和所述像素间距来确定所述滑块在每个切割图片之间的滑动速度并基于所述滑动速度来确定所述滑块在各帧之间的瞬时加速度;
43.机器滑动检测模块,其被配置成:
44.在所述瞬时加速度相等的次数达到阈值次数的情况下确定所述滑块滑动由机器做出;
45.在所述瞬时加速度相等的次数未达到所述阈值次数的情况下基于所述滑块的初段加速度集合和末段加速度集合来判断所述滑块滑动是否由机器做出。
46.在本发明的又一个实施例中,提供了一种存储计算机可执行指令的计算机可读介质,这些指令包括:
47.用于获取滑块点击的位置坐标并生成滑块滑动的回放视频的指令;
48.用于在所述位置坐标相同的次数达到阈值次数的情况下确定所述滑块点击由机器做出的指令;
49.用于对所述回放视频进行分解并进行图片切割的指令;
50.用于对切割图片进行处理以确定滑块在所述切割图片中的位置并基于所述位置来计算所述滑块在每个切割图片之间的像素间距的指令;
51.用于根据所述回放视频的时长和帧数来确定每个切割图片的时间间隔的指令;
52.用于基于所述时间间隔和所述像素间距来确定所述滑块在每个切割图片之间的滑动速度并基于所述滑动速度来确定所述滑块在各帧之间的瞬时加速度的指令;
53.用于在所述瞬时加速度相等的次数达到阈值次数的情况下确定所述滑块滑动由机器做出的指令;以及
54.用于在所述瞬时加速度相等的次数未达到所述阈值次数的情况下基于所述滑块的初段加速度集合和末段加速度集合来判断所述滑块滑动是否由机器做出的指令。
55.在结合附图研读了下文对本发明的具体示例性实施例的描述之后,本发明的其他
方面、特征和实施例对于本领域普通技术人员将是明显的。尽管本发明的特征在以下可能是针对某些实施例和附图来讨论的,但本发明的全部实施例可包括本文所讨论的有利特征中的一个或多个。换言之,尽管可能讨论了一个或多个实施例具有某些有利特征,但也可以根据本文讨论的本发明的各种实施例使用此类特征中的一个或多个特征。以类似方式,尽管示例性实施例在下文可能是作为设备、系统或方法实施例进行讨论的,但是应当领会,此类示例性实施例可以在各种设备、系统、和方法中实现。
附图说明
56.为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中阐示。然而应该注意,附图仅阐示了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。
57.图1是根据本公开的一个实施例的用于滑块验证码的防破解系统的总体架构的示意图。
58.图2示出了根据本公开的一个实施例的用于滑块验证码的防破解系统的总流程图。
59.图3示出了根据本公开的一个实施例的滑动操作中的滑动速度相对于滑动距离的曲线图。
60.图4示出了根据本公开的一个实施例的用于滑块验证码的防破解方法的流程图。
61.图5示出了根据本公开的一个实施例的用于滑块验证码的防破解系统的框图。
具体实施方式
62.以下将参考形成本发明一部分并示出各具体示例性实施例的附图更详尽地描述各个实施例。然而,各实施例可以以许多不同的形式来实现,并且不应将其解释为限制此处所阐述的各实施例;相反地,提供这些实施例以使得本公开变得透彻和完整,并且将这些实施例的范围完全传达给本领域普通技术人员。各实施例可按照方法、系统或设备来实施。因此,这些实施例可采用硬件实现形式、全软件实现形式或者结合软件和硬件方面的实现形式。因此,以下具体实施方式并非是局限性的。
63.各流程图中的步骤可通过硬件(例如,处理器、引擎、存储器、电路)、软件(例如,操作系统、应用、驱动器、机器/处理器可执行指令)或其组合来执行。如本领域普通技术人员将理解的,各实施例中所涉及的方法可以包括比示出的更多或更少的步骤。
64.针对目前机器自动识别滑块验证码的难度越来越小,准确率越来越高的现状,本发明利用机器只能计算出滑动距离而无法同时模拟滑块点击位置和精确模拟滑块移动速度的特点,从破解的步骤中挖掘安全加固手段,防止机器识别验证码,从而达到防恶意登录,暴力破解等目的,维护网站平台安全、产品功能正常与用户信息安全。
65.下文中将通过框图、数据流图以及方法流程图对本公开的各方面进行详细描述。
66.图1是根据本公开的一个实施例的用于滑块验证码的防破解系统的总体架构的示意图。
67.本发明的技术方案包括两轮检测。第一轮检测通过获取滑块的点击位置坐标(图1
中的获取滑块初始拖动位置),记录并进行数据分析,随后在机器识别判断中根据位置坐标是否固定不变来判断是否机器识别。在本发明的一个实施例中,点击位置是在预定时间段内获取的,诸如1秒、2秒等。该预定时间段可以是任何合适的时间段,并且由本领域技术人员根据实际需要自行设定。
68.第二轮检测通过对滑块滑动的回放视频进行分析以计算滑块验证码中滑块的瞬时加速度,以键值对形式自动存入数据列表中,并且可根据返回列表的长度可以对列表进行任意切片操作(图1中的滑动滑块计算)。在接下来的机器识别判断中:
69.如果滑块滑动是匀速,即加速度是0,则判断为机器识别验证码;
70.如果机器滑动模拟了相对真实的人的滑动,则根据拖动过程中的瞬时加速度是否相等来判断,具体而言可根据瞬时加速度相等的次数是否达到阈值次数来判断。该阈值次数不限于任何特定次数,而是可以是任何合适的次数,本领域技术人员可根据需要自行设定;
71.如果机器滑动使用了随机数散列滑动,则通过获取初始加速度集合和末尾加速度集合以供对比,并结合用户滑动特征判断。
72.图2示出了根据本公开的一个实施例的用于滑块验证码的防破解系统的总流程图。
73.当开始滑块验证码验证时,首先通过用户输入信息采集模块来获取滑块点击的位置坐标。然后通过滑块点击位置检测模块基于所获取的点击位置坐标来确定是否存在机器点击。具体而言,滑块点击位置检测模块可被配置成在预定时间段内获取的位置坐标相同的次数达到阈值次数的情况下确定当前滑块点击是由机器做出的。如果是,则自动将相应数据保存到数据库中以供将来识别。数据可包括点击位置、ip地址,等等。在本发明的一个实施例中,可通过js技术来获取点击位置。如本领域技术人员可以理解的,在本发明的其他实施例中,可使用任何合适的其他技术来获取点击位置,而不背离本发明的范围,并且本发明不限于任何特定的点击位置获取技术。
74.滑块点击位置检测模块还可被配置成生成滑块滑动的回放视频。在本发明的一个实施例中,可通过大数据软件领域用户输入行为录屏回放技术来实时生成回放视频。如本领域技术人员可以理解的,在本发明的其他实施例中,可使用任何合适的其他技术来生成回放视频,而不背离本发明的范围,并且本发明不限于任何特定的回放视频生成技术。
75.在本发明的另一个实施例中,还可选地对所生成的回放视频进行异常处理并捕捉异常情况(如果有,诸视频卡顿等),如果没有异常情况,则将无异常回放视频提供给后续模块。
76.图片处理模块接收回放视频并被配置成对回放视频进行分解并进行逐帧图片切割并对切割图片进行处理。在本发明的一个实施例中,对获取的每一帧图片进行图片切割,并读取切割图片的rgb编码,根据图片rgb码可以对图片进行灰度处理,然后可根据滑块的rgb编码和背景图片的灰度值来得到滑块在切割图片中的具体位置。如本领域技术人员可以理解的,在本发明的其他实施例中,可使用任何合适的其他图像识别技术来确定滑块在图片中的位置,而不背离本发明的范围,并且本发明不限于任何特定的图像识别技术。
77.随后,滑块加速度计算模块(为简明起见未示出)可基于滑块在图片中的位置来计算滑块在每个切割图片之间的像素间距(像素差)。滑块加速度计算模块被进一步配置成根
据所述回放视频的时长和帧数来确定每个切割图片的时间间隔,以及基于该时间间隔和上述像素间距来确定滑块在每个切割图片之间的滑动速度并基于滑动速度来确定滑块在各帧之间的瞬时加速度。
78.在本发明的一个实施例中,作为示例而非限制,如果滑块滑动视频为1秒且视频分解成60帧,则计算出每帧图片间隔为1/60秒。在该实施例中,第一帧与第二帧滑块之间的像素差可以例如为s1,第二帧与第三帧滑块之间的像素差为s2,可得到第一帧到第二帧图片之间滑块滑动速度v1=60s1,第二帧到第三帧图片之间滑块滑动速度v2=60s2,从而计算获得滑块滑动的瞬时加速度为a1=60(v2-v1),以此类推得到全部加速度,输出结果并以键值对形式保存在列表中。
79.在本发明的另一实施例中,上述图片处理和速度/加速度计算可经由多线程模块(未示出)来完成以实现更高的计算速度和资源利用率。
80.然后,机器滑动检测模块获取计算出的滑块在各个帧之间的瞬时加速度数据。在本发明的一个实施例中,机器滑动可能会模拟真实人类滑动操作。具体地,图3示出了根据本公开的一个实施例的滑动操作中的滑动速度相对于滑动距离的曲线图。如图3中的曲线所示,由于人拖动滑块的速度是随着滑动距离的增加先快后慢的。当没有到指定距离时候,加速度为正值,当滑动到最后指定距离时,加速度变为负值(作为示例而非限制,当没有到4/5距离的时候,加速度为1,当滑动到最后1/5距离时,加速度变为-2)。但是,由于人拖动滑块的加速度是不线性或不规律的,因此可以根据拖动过程中的瞬时加速度是否相等来判断。据此,机器滑动检测模块可以对模拟真人滑动进行检测,即在瞬时加速度相等的次数达到阈值次数的情况下确定滑块滑动由机器做出。如本领域技术人员可以理解的,该阈值次数不限于任何特定阈值,而是可由本领域技术人员根据需要自行设定任何合适的阈值次数。
81.在本发明的另一实施例中,上述瞬时加速度相等的次数达到阈值次数的情况包括普通匀速拖动滑块,即可以根据计算拖动加速度是否为0来判断,如果为0,则判断为机器识别。
82.针对瞬时加速度相等的次数未达到所述阈值次数的情况,机器可能使用随机数散列经由动态剩余随机数滑动来欺骗检测,因此滑动加速度一直在不规律变化的。但是,由于人拖动滑块需要慢慢对准滑块缺口,所以是先快后慢的。据此,机器滑动检测模块基于滑块的初段加速度集合和末段加速度集合来判断所述滑块滑动是否由机器做出。具体而言,机器滑动检测模块通过对存储计算出的加速度值的列表进行切片操作,将列表中索引为1、2...的初段加速度集合(a1,a2...)作为初始加速度,并将列表中索引为...n-1,n的末段加速度集合(...a(n-1),an)作为末尾加速度,通过点对点对比来分析初始加速度和末尾加速度,即将初段加速度集合中的第一个加速度a1与末段加速度集合中的第一个加速度a(n-m)进行比对,并以此类推判断是否为机器滑动。
83.如本领域技术人员可以理解的,除了上述计算方式之外,还可使用任何其他合适的计算方式来基于滑块的初段加速度集合和末段加速度集合来判断滑块滑动是否由机器做出,本发明不限于任何特定计算方式。加速度集合中的加速度值的数量也可由本领域技术人员根据需要自行设定任何合适的数量,而不限于任何特定数量。
84.最后,当判断为机器滑动时,自动保存或记录登录的ip地址等数据到数据库,方便
以后追踪处理。
85.图4示出了根据本公开的一个实施例的用于滑块验证码的防破解方法400的流程图。
86.方法400开始于步骤402。在步骤402,获取滑块点击的位置坐标并生成滑块滑动的回放视频。在本发明的一个实施例中,位置坐标是和回放视频在预定时间段内获取的。
87.在步骤404,在位置坐标相同的次数达到阈值次数的情况下确定滑块点击由机器做出。在本发明的一个实施例中,在确定滑块点击由机器做出的情况下将滑块点击的位置坐标或者登录机器的ip地址存储在数据库中。
88.在步骤406,对回放视频进行分解并进行图片切割。在本发明的一个实施例中,在分解之前该方法还包括对回放视频进行异常情况排除。
89.在步骤408,对切割图片进行处理以确定滑块在切割图片中的位置并基于该位置来计算滑块在每个切割图片之间的像素间距。在本发明的一个实施例中,对切割图片进行处理包括读取切割图片的rgb编码并根据该rgb码来对切割图片进行灰度处理,并且切割图片是逐帧切割的。在本发明的该实施例中,所述rgb编码的读取以及所述灰度处理是多线程的。
90.在步骤410,根据回放视频的时长和帧数来确定每个切割图片的时间间隔。
91.在步骤412,基于该时间间隔和像素间距来确定滑块在每个切割图片之间的滑动速度并基于该滑动速度来确定滑块在各帧之间的瞬时加速度。在本发明的一个实施例中,计算出的瞬时加速度以键值对形式输出并自动保存到列表中以供对该列表中的数据进行切片操作。
92.在步骤414,在瞬时加速度相等的次数达到阈值次数的情况下确定滑块滑动由机器做出。在本发明的一个实施例中,所述瞬时加速度相等的次数达到阈值次数的情况包括瞬时加速度为零的情况。
93.在步骤416,在瞬时加速度相等的次数未达到该阈值次数的情况下基于滑块的初段加速度集合和末段加速度集合来判断滑块滑动是否由机器做出。在本发明的一个实施例中,初段加速度集合和末段加速度集合通过对存储加速度的列表进行切片来获得,并且初段加速度集合和末段加速度集合中的每个瞬时加速度被进行逐一比对以判断滑块滑动是否由机器做出。
94.在步骤416后,方法400结束。
95.图5示出了根据本公开的一个实施例的用于滑块验证码的防破解系统500的框图。
96.图5中的用于滑块验证码的防破解系统500通过各个模块来执行上述方法400中的每一个步骤。系统500包括输入信息采集模块502、滑块点击位置检测模块504、图片处理模块506、滑块加速度计算模块508、以及机器滑动检测模块510。
97.输入信息采集模块502可被配置成获取滑块点击的位置坐标并生成滑块滑动的回放视频。
98.滑块点击位置检测模块504可被配置成在该位置坐标相同的次数达到阈值次数的情况下确定该滑块点击由机器做出。
99.图片处理模块506可被配置成对该回放视频进行分解并进行图片切割,以及对切割图片进行处理以确定滑块在切割图片中的位置。
100.滑块加速度计算模块508可被配置成基于所确定的位置来计算滑块在每个切割图片之间的像素间距,根据该回放视频的时长和帧数来确定每个切割图片的时间间隔,以及基于该时间间隔和该像素间距来确定滑块在每个切割图片之间的滑动速度并基于该滑动速度来确定该滑块在各帧之间的瞬时加速度。
101.机器滑动检测模块510可被配置成在瞬时加速度相等的次数达到阈值次数的情况下确定滑块滑动由机器做出,以及在瞬时加速度相等的次数未达到该阈值次数的情况下基于滑块的初段加速度集合和末段加速度集合来判断滑块滑动是否由机器做出。
102.针对目前滑块验证大多只需要将滑块拖动到正确位置即可通过验证,或者使用了模拟相对真实人为操作可绕过检测,本技术的优点为通过分析用户拖动滑块的运动特征并对照机器拖动滑块过程中的坐标位置和速度变化来对滑动滑块验证码进行全自动检测并进行了技术加固。这很大程度上增加了机器识别的难度,防止验证码被破解,使得其区分机器和人的功能能够生效。
103.以上参考根据本发明的实施例的方法、系统和计算机程序产品的框图和/或操作说明描述了本发明的实施例。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。
104.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献