CN109543374B - 一种对抗深度神经网络识别的滑动式验证码 - Google Patents
一种对抗深度神经网络识别的滑动式验证码 Download PDFInfo
- Publication number
- CN109543374B CN109543374B CN201811435065.3A CN201811435065A CN109543374B CN 109543374 B CN109543374 B CN 109543374B CN 201811435065 A CN201811435065 A CN 201811435065A CN 109543374 B CN109543374 B CN 109543374B
- Authority
- CN
- China
- Prior art keywords
- slider
- image
- web server
- groove
- coordinate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 31
- 241000282414 Homo sapiens Species 0.000 claims description 43
- 238000012795 verification Methods 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 14
- 230000003993 interaction Effects 0.000 claims description 9
- 238000006073 displacement reaction Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000005336 cracking Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2133—Verifying human interaction, e.g., Captcha
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种对抗深度神经网络识别的滑动式验证码,属于网络安全技术领域,包括:远端数据库,与外界隔离,远端数据库用于持久化保存可以被查询、修改和删除的数据;远端Web服务器,与外界相连,提供Web服务,被客户端浏览器访问,可以访问远端数据库,保存数据到远端数据库中;客户端浏览器,通过网络访问远端Web服务器,获得网页数据,把数据转化为图像,显示在本地的显示器上。本发明的图像中必须存在多个完全相同的,位置不同的凹槽,且只有一个凹槽是真正的目标位置,该图像中具有与凹槽相匹配的滑块,该滑块的运行轨迹必须是曲线的,滑块的运行轨迹会到达某个凹槽的中心点,该凹槽是真正的目标位置。
Description
技术领域
本发明涉及一种滑动式验证码,特别是涉及一种对抗深度神经网络识别的滑动式验证码,属于网络安全技术领域。
背景技术
在我们使用基于Web的网络服务时,例如:电子邮件、在线视频、在线新闻等等,需要首先登陆网络服务系统,登陆过程中,网络服务提供商为了区别出登陆的用户是生物属性的人,还是恶意程序自动登陆,称其为bot,会要求登陆的用户进行某种与服务无关的交互操作,一般来说,这个交互操作对于人类用户来说,容易理解,而且能够在低成本的空间内完成,而对于bot来说,应该是不容易完成,或者是需要很高的成本才能完成。
例如:歪曲文字的识别,登陆系统显示出多个歪曲的文字,要求用户识别这些文字,用户在识别后,在登陆系统中通过输入装置,通常为键盘输入文字,提交给登陆系统,登陆系统在收到用户输入的文字信息后,进行检查,如果用户输入的文字与显示的歪曲的文字是一致,登陆系统就判定这个用户是人类用户,这个判定基于一个假设:人类用户能通过视觉,识别出歪曲的文字,并正确的输入,而bot做到这一点,很困难。
滑动图像至一个指定的位置,登陆系统显示出一个图像,图像中的左侧有一个可以滑动的滑块,这里我们称之为滑块,在图像中的右侧,有一个凹下去的槽坑,我们称之为凹槽,用户拖动滑块,使其到达凹槽的位置,然后结束拖动动作,结束运作时的滑块的位置被提交到登陆系统中,登陆系统在收到位置信息后,进行检查,如果滑块所在的位置与凹槽的位置偏差小于某个阈值,登陆系统就判定这个用户是人类用户,这个判定基于一个假设:人类用户能通过视觉,识别出滑块和凹槽,并能正确的拖动滑块到凹槽的位置,而bot很难做到这一点。
登陆过程中所进行的这个过程本质上属于图灵测试技术领域,所谓图灵测试是在双盲测试中,经过一系列的交互操作,识别做出响应的目标是人类,还是计算机程序,如果一个计算机程序在图灵测试后,被识别为人类,那么,就可以说,这个计算机程序在这个图灵测试中表现出人类的智力。
对于上述的定义,以一个现实世界的游戏为例:围棋,我们知道,在去年,计算机程序AlphaGO在围棋比赛中,战胜了韩国选手李世石,比赛中,计算机程序AlphaGO表现出了惊人的棋力,基于图灵测试的定义,我们可以说,在围棋这个图灵测试中,计算机程序AlphaGO具备了人类的智力。
对于网络服务提供商来说,他需要通过图灵测试识别出非人类的bot,而bot的开发者则想尽办法,让自己的bot在网络服务提供商的图灵测试中表现的与人类一样,图灵测试应用于登陆系统时,也常被称为人机检测,由于做为技术专用术语,图灵测试所涵盖的意义相当的广泛,所以本文使用人机检测做为登陆过程中对人类用户的识别过程的名称。
近几年,由于滑动式验证码的用户体验较好,人机检测的识别率也较高,所以它的应用越来越广泛;与此同时,深度神经网络(DNN)技术越来越成熟,DNN的最佳应用场境是在图像的识别和分类,在这个领域里,这项技术所表现出的能力越来接近人类的能力;当把DNN应用到bot上,对滑动式验证码进行识别,我们会发现DNN可以达到人类的识别能力。
上述三个不同风格的滑动式验证码都被DNN正确的识别出了准确的凹槽位置,应用DNN技术所需要的成本也在日益降低,DNN依赖高性能的计算,而随着芯片技术的发展,可以支撑DNN的GPU芯片价格越来越低,当把DNN应用到bot上,对滑动式验证码进行识别,可以想像,bot将得到人类的识别能力,最终,滑动式验证码将无力正确的分辨出人类用户和bot。
发明内容
本发明的主要目的是为了提供一种对抗深度神经网络识别的滑动式验证码,解决滑动式验证码无法抵抗深度神经网络的识别问题。
本发明的目的可以通过采用如下技术方案达到:
一种对抗深度神经网络识别的滑动式验证码,包括:远端数据库,位于网络服务提供商的机房中,与外界隔离,远端数据库用于持久化保存可以被查询、修改和删除的数据;
远端Web服务器,位于网络服务提供商的机房中,与外界相连,提供Web服务,被客户端浏览器访问,可以访问远端数据库,保存数据到远端数据库中;
客户端浏览器,位于互联网的接入网,通过网络访问远端Web服务器,获得网页数据,把数据转化为图像,显示在本地的显示器上。
该图像中必须存在多个完全相同的,位置不同的凹槽,且只有一个凹槽是真正的目标位置。
该图像中具有与凹槽相匹配的滑块,该滑块的运行轨迹不能是水平的,必须是曲线的,滑块的运行轨迹会到达某个凹槽的中心点,该凹槽是真正的目标位置。
在该图像中有两个完全相同的凹槽,其中一个是真正的目标位置,该真正的目标位置信息保存在远端数据库。
在该图像中,拖动滑块时,图像中的滑块同步做水平动行和竖直方向的位移,使图像中的滑块具有一个曲线运行轨迹。
在该图像中,拖动滑块时,图像中的滑块具有一个曲线运行轨迹,与除水平方向上的凹槽重叠,而不与水平方向的凹槽重叠。
在拖动滑块的过程中,当滑块与除水平方向上的凹槽重叠时,结束拖动动作,此时,滑块的位置信息发送给远端数据库,远端数据库将其与保存的真正的目标位置信息相比较,如果一致,就确认操作者为人类。
该图像中的凹槽与滑块相匹配时,会发生多次的交互,该交互过程如下:
步骤1:使用客户端浏览器访问远端Web服务器,这里的用户可能是人类用户,也可能是bot;
步骤2:远端Web服务器从图像集中随机选择一张图像做为背景,然后,在这张图像上生成多个凹槽,并任意选择其中的一个凹槽做为目标位置,记下这个位置的X轴坐标,这个坐标被保存到了数据库中;
步骤3:远端Web服务器在图像的左侧生成一个滑块,并根据滑块的位置和目标位置的关系,生成一个抛物线轨迹,这个轨迹从滑块开始,经过目标位置,到背景图像的最右侧结束;
步骤4:远端Web服务器根据这个轨迹,生成javascript脚本代码;
步骤5:客户端浏览器在显示器上显示出背景图像,以及滑块和数个凹槽;
步骤6:用户开始拖动滑块;
步骤7:用户观察滑块的移动,发现随着拖动的进行,滑块与某个凹槽重合了,于是结束了拖动动作,此时,javascript获得了拖动动作结束时,滑块在背景图像中的X轴坐标,并把坐标发给了远端Web服务器;
步骤8:远端Web服务器收到了X坐标后,与数据库中保存的,目标位置的X坐标进行对比,如果两者之差的绝对值小于某个阈值,就认为用户移动滑块到了正确的位置,基于这个行为的难度,认定本次操作的用户是人类用户,如果两者之差的绝对值大于某个阈值,就认为本次操作的用户很有可能不是人类用户,对后续的访问给予拒绝。
步骤4中,远端Web服务器根据这个轨迹,生成javascript脚本代码,这个代码包含了轨迹的数据,并负责响应用户拖动滑动的动作,以及实时的显示滑块的位置变化,这个脚本代码将运行在客户端浏览器上,为了避免上述的脚本代码被破解,远端服务器对这个脚本代码进行混淆,混淆后的代码与原始代码等价,但没有任何可读性,远端服务器将背景图像和混淆后的javascript脚本代码发送给客户端浏览器。
用户开始拖动滑块,拖动动作是水平的,但javascript脚本代码将根据拖动的位移,计算出滑块的位置,并显示,拖动过程所产生的滑块移动轨迹是之前生成的抛物线形轨迹。
本发明的有益技术效果:本发明提供的对抗深度神经网络识别的滑动式验证码,使用DNN对本发明提出的多个凹槽的图像进行识别,DNN发现了两处位置存在凹槽,其置信度为99%,两处位置哪一个才是真正的目标位置的信息,bot并不知道,它只是通过DNN识别得到了两处位置,bot能识别凹槽和拖动滑块,但不能实时去观察滑块与凹槽的重叠程度。
如果bot去实时的观察图像,那么,bot的实现难度将大大的增加,破解将需要花解更多的时间,与之相应的,破解所需的成本也大大的增加了;如果bot通过猜测正确的凹槽,那么,可以通过增加更多的凹槽,降低猜测的成功率,因为轨迹对于人类非常容易辨别,更多的凹槽不会增加人类操作的难度。
基于本发明,要求必须在整个操作期间不断的观察滑块与凹槽的位置关系,对于人类,这个要求完全匹配了人类的行为,人类可以在操作中很自然的满足这个要求,而不会感到不适,而bot很难实现这个要求,因此,本发明可以有效的提高bot破解验证码的成本,提高人机检测的准确率。
附图说明
图1为按照本发明的对抗深度神经网络识别的滑动式验证码的一优选实施例交互的流程图。
具体实施方式
为使本领域技术人员更加清楚和明确本发明的技术方案,下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
本实施例提供的对抗深度神经网络识别的滑动式验证码,包括:远端数据库,位于网络服务提供商的机房中,与外界隔离,远端数据库用于持久化保存可以被查询、修改和删除的数据;远端Web服务器,位于网络服务提供商的机房中,与外界相连,提供Web服务,被客户端浏览器访问,可以访问远端数据库,保存数据到远端数据库中;客户端浏览器,位于互联网的接入网,通过网络访问远端Web服务器,获得网页数据,把数据转化为图像,显示在本地的显示器上。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,该图像中必须存在多个完全相同的,位置不同的凹槽,且只有一个凹槽是真正的目标位置,该图像中具有与凹槽相匹配的滑块,该滑块的运行轨迹不能是水平的,必须是曲线的,滑块的运行轨迹会到达某个凹槽的中心点,该凹槽是真正的目标位置,在该图像中有两个完全相同的凹槽,其中一个是真正的目标位置,该真正的目标位置信息保存在远端数据库。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,在该图像中,拖动滑块时,图像中的滑块同步做水平动行和竖直方向的位移,使图像中的滑块具有一个曲线运行轨迹,在该图像中,拖动滑块时,图像中的滑块具有一个曲线运行轨迹,与除水平方向上的凹槽重叠,而不与水平方向的凹槽重叠,在拖动滑块的过程中,当滑块与除水平方向上的凹槽重叠时,结束拖动动作,此时,滑块的位置信息发送给远端数据库,远端数据库将其与保存的真正的目标位置信息相比较,如果一致,就确认操作者为人类。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,该图像中的凹槽与滑块相匹配时,会发生多次的交互,该交互过程如下:
步骤1:使用客户端浏览器访问远端Web服务器,这里的用户可能是人类用户,也可能是bot;
步骤2:远端Web服务器从图像集中随机选择一张图像做为背景,然后,在这张图像上生成多个凹槽,并任意选择其中的一个凹槽做为目标位置,记下这个位置的X轴坐标,这个坐标被保存到了数据库中;
步骤3:远端Web服务器在图像的左侧生成一个滑块,并根据滑块的位置和目标位置的关系,生成一个抛物线轨迹,这个轨迹从滑块开始,经过目标位置,到背景图像的最右侧结束;
步骤4:远端Web服务器根据这个轨迹,生成javascript脚本代码,远端Web服务器根据这个轨迹,生成javascript脚本代码,这个代码包含了轨迹的数据,并负责响应用户拖动滑动的动作,以及实时的显示滑块的位置变化,这个脚本代码将运行在客户端浏览器上,为了避免上述的脚本代码被破解,远端服务器对这个脚本代码进行混淆,混淆后的代码与原始代码等价,但没有任何可读性,远端服务器将背景图像和混淆后的javascript脚本代码发送给客户端浏览器;
步骤5:客户端浏览器在显示器上显示出背景图像,以及滑块和数个凹槽;
步骤6:用户开始拖动滑块;
步骤7:用户观察滑块的移动,发现随着拖动的进行,滑块与某个凹槽重合了,于是结束了拖动动作,此时,javascript获得了拖动动作结束时,滑块在背景图像中的X轴坐标,并把坐标发给了远端Web服务器;
步骤8:远端Web服务器收到了X坐标后,与数据库中保存的,目标位置的X坐标进行对比,如果两者之差的绝对值小于某个阈值,就认为用户移动滑块到了正确的位置,基于这个行为的难度,认定本次操作的用户是人类用户,如果两者之差的绝对值大于某个阈值,就认为本次操作的用户很有可能不是人类用户,对后续的访问给予拒绝。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,用户开始拖动滑块,拖动动作是水平的,但javascript脚本代码将根据拖动的位移,计算出滑块的位置,并显示,拖动过程所产生的滑块移动轨迹是之前生成的抛物线形轨迹。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,图像中必须存在多个完全相同的,位置不同的凹槽,只有一个凹槽是真正的目标位置,滑块的运行轨迹不能是水平的,必须是曲线的,滑块的运行轨迹会到达某个凹槽的中心点,这个凹槽是真正的目标位置。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,由于DNN可以达到人类的识别能力,所以,任何相似的凹槽,都不能影响DNN发现真正的凹槽,所以,本发明在图像中放置多个凹槽,这些凹槽是完全相同的,它们中只有一个是真正的目标位置。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,上图像中,有两个完全相同的凹槽,其中一个是真正的目标位置,这个信息保存在远端数据库,向右拖动滑块时,图像中的滑块不再仅仅同步做水平动行,而是有竖直方向的位移,图像中的滑块将会有一个曲线运行轨迹。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,向右拖动滑块时,滑块会沿图中标示的红线移动,最终与下方的凹槽重叠,而不会与上方的凹槽重叠,对于人类用户来说,在拖动滑块的过程中,会持续的观察滑块与凹槽的位置关系,当发现滑块与下方的凹槽重叠后,结束拖动动作,这时,滑块的位置会发送给远端数据库,远端数据库将其与保存的真正的目标位置相比较,如果一致,就确认操作者为人类。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,涉及到以下几方:
远端数据库,位于网络服务提供商的机房中,与外界隔离,数据库用于持久化保存数据,保存在数据库中的数据可以被查询,修改和删除。
远端Web服务器,位于网络服务提供商的机房中,与外界相连,服务器提供Web服务,可以被客户端浏览器访问,服务器也可以访问远端数据库,可以保存数据到数据库中。
客户端浏览器,位于互联网的接入网,可以通过网络,访问远端Web服务器,获得网页数据,然后,把数据转化为图像,显示在本地的显示器上。
用户,使用客户端浏览器的主体,他可能是人类,也可能只是模仿人类操作的程序化的bot。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,其实现一般发生在登陆阶段,在它的运行过程中,以上各方会发生多次的交互,如图1所示,描述了这个交互的过程:
用户使用客户端浏览器访问远端Web服务器,这里的用户可能是人类用户,也可能是bot;
远端Web服务器从图像集中随机选择一张图像做为背景,然后,在这张图像上生成多个凹槽,并任意选择其中的一个凹槽做为目标位置,记下这个位置的X轴坐标,这个坐标被保存到了数据库中;
远端Web服务器在图像的左侧生成一个滑块,并根据滑块的位置和目标位置的关系,生成一个抛物线轨迹,这个轨迹从滑块开始,经过目标位置,到背景图像的最右侧结束;
远端Web服务器根据这个轨迹,生成javascript脚本代码,这个代码包含了轨迹的数据,并负责响应用户拖动滑动的动作,以及实时的显示滑块的位置变化,这个脚本代码将运行在客户端浏览器上;
为了避免上述的脚本代码被破解,远端服务器对这个脚本代码进行混淆,混淆后的代码与原始代码等价,但没有任何可读性;
远端服务器将背景图像和混淆后的javascript脚本代码发送给客户端浏览器;
客户端浏览器在显示器上显示出背景图像,以及滑块和数个凹槽;
用户开始拖动滑块,拖动动作是水平的,但javascript脚本代码将根据拖动的位移,计算出滑块的位置,并显示,拖动过程所产生的滑块移动轨迹是之前生成的抛物线形轨迹;
用户观察滑块的移动,发现随着拖动的进行,滑块与某个凹槽重合了,于是结束了拖动动作,这时,javascript获得了拖动动作结束时,滑块在背景图像中的X轴坐标,并把坐标发给了远端Web服务器;
远端Web服务器收到了X坐标后,与数据库中保存的,目标位置的X坐标进行对比,如果两者之差的绝对值小于某个阈值,就认为用户移动滑块到了正确的位置,基于这个行为的难度,认定本次操作的用户是人类用户,如果两者之差的绝对值大于某个阈值,就认为本次操作的用户很有可能不是人类用户,对后续的访问给予拒绝。
在本实施例中,本实施例提供的对抗深度神经网络识别的滑动式验证码,使用DNN对本发明提出的多个凹槽的图像进行识别,DNN发现了两处位置存在凹槽,其置信度为99%,两处位置哪一个才是真正的目标位置的信息,bot并不知道,它只是通过DNN识别得到了两处位置,bot能识别凹槽和拖动滑块,但不能实时去观察滑块与凹槽的重叠程度,如果bot去实时的观察图像,那么,bot的实现难度将大大的增加,破解将需要花解更多的时间,与之相应的,破解所需的成本也大大的增加了,如果bot通过猜测正确的凹槽,那么,可以通过增加更多的凹槽,降低猜测的成功率,因为轨迹对于人类非常容易辨别,更多的凹槽不会增加人类操作的难度,基于本发明,要求必须在整个操作期间不断的观察滑块与凹槽的位置关系,对于人类,这个要求完全匹配了人类的行为,人类可以在操作中很自然的满足这个要求,而不会感到不适,而bot很难实现这个要求,因此,本发明可以有效的提高bot破解验证码的成本,提高人机检测的准确率。
以上所述,仅为本发明进一步的实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明所公开的范围内,根据本发明的技术方案及其构思加以等同替换或改变,都属于本发明的保护范围。
Claims (9)
1.一种对抗深度神经网络识别的滑动式验证码,其特征在于,包括:远端数据库,位于网络服务提供商的机房中,与外界隔离,远端数据库用于持久化保存可以被查询、修改和删除的数据,图像中的凹槽与滑块相匹配时,会发生多次的交互,该交互过程如下:
步骤1:使用客户端浏览器访问远端Web服务器,这里的用户是人类用户,或者是机器人;
步骤2:远端Web服务器从图像集中随机选择一张图像做为背景,然后,在这张图像上生成多个凹槽,并任意选择其中的一个凹槽做为目标位置,记下这个位置的X轴坐标,这个坐标被保存到了数据库中;
步骤3:远端Web服务器在图像的左侧生成一个滑块,并根据滑块的位置和目标位置的关系,生成一个抛物线轨迹,这个轨迹从滑块开始,经过目标位置,到背景图像的最右侧结束;
步骤4:远端Web服务器根据这个轨迹,生成javascript脚本代码;
步骤5:客户端浏览器在显示器上显示出背景图像,以及滑块和数个凹槽;
步骤6:用户开始拖动滑块;
步骤7:用户观察滑块的移动,发现随着拖动的进行,滑块与某个凹槽重合了,于是结束了拖动动作,此时,javascript获得了拖动动作结束时,滑块在背景图像中的X轴坐标,并把坐标发给了远端Web服务器;
步骤8:远端Web服务器收到了X坐标后,与数据库中保存的,目标位置的X坐标进行对比,如果两者之差的绝对值小于某个阈值,就认为用户移动滑块到了正确的位置,基于这个行为的难度,认定本次操作的用户是人类用户,如果两者之差的绝对值大于某个阈值,就认为本次操作的用户很有可能不是人类用户,对后续的访问给予拒绝;
远端Web服务器,位于网络服务提供商的机房中,与外界相连,提供Web服务,被客户端浏览器访问,可以访问远端数据库,保存数据到远端数据库中;
客户端浏览器,位于互联网的接入网,通过网络访问远端Web服务器,获得网页数据,把数据转化为图像,显示在本地的显示器上。
2.根据权利要求1所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,该图像中必须存在多个完全相同的,位置不同的凹槽,且只有一个凹槽是真正的目标位置。
3.根据权利要求2所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,该图像中具有与凹槽相匹配的滑块,该滑块的运行轨迹不能是水平的,必须是曲线的,滑块的运行轨迹会到达某个凹槽的中心点,该凹槽是真正的目标位置。
4.根据权利要求2所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,在该图像中有两个完全相同的凹槽,其中一个是真正的目标位置,该真正的目标位置信息保存在远端数据库。
5.根据权利要求3所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,在该图像中,拖动滑块时,图像中的滑块同步做水平动行和竖直方向的位移,使图像中的滑块具有一个曲线运行轨迹。
6.根据权利要求3所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,在该图像中,拖动滑块时,图像中的滑块具有一个曲线运行轨迹,与除水平方向上的凹槽重叠,而不与水平方向的凹槽重叠。
7.根据权利要求3所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,在拖动滑块的过程中,当滑块与除水平方向上的凹槽重叠时,结束拖动动作,此时,滑块的位置信息发送给远端数据库,远端数据库将其与保存的真正的目标位置信息相比较,如果一致,就确认操作者为人类。
8.根据权利要求1所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,步骤4中,远端Web服务器根据这个轨迹,生成javascript脚本代码,这个代码包含了轨迹的数据,并负责响应用户拖动滑动的动作,以及实时的显示滑块的位置变化,这个脚本代码将运行在客户端浏览器上,为了避免上述的脚本代码被破解,远端服务器对这个脚本代码进行混淆,混淆后的代码与原始代码等价,但没有任何可读性,远端服务器将背景图像和混淆后的javascript脚本代码发送给客户端浏览器。
9.根据权利要求1所述的一种对抗深度神经网络识别的滑动式验证码,其特征在于,用户开始拖动滑块,拖动动作是水平的,但javascript脚本代码将根据拖动的位移,计算出滑块的位置,并显示,拖动过程所产生的滑块移动轨迹是之前生成的抛物线形轨迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811435065.3A CN109543374B (zh) | 2018-11-28 | 2018-11-28 | 一种对抗深度神经网络识别的滑动式验证码 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811435065.3A CN109543374B (zh) | 2018-11-28 | 2018-11-28 | 一种对抗深度神经网络识别的滑动式验证码 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109543374A CN109543374A (zh) | 2019-03-29 |
CN109543374B true CN109543374B (zh) | 2021-08-03 |
Family
ID=65850986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811435065.3A Active CN109543374B (zh) | 2018-11-28 | 2018-11-28 | 一种对抗深度神经网络识别的滑动式验证码 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109543374B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112819693B (zh) * | 2021-04-19 | 2022-04-22 | 北京每日优鲜电子商务有限公司 | 滑动验证码生成方法、装置、电子设备和计算机可读介质 |
CN113688378A (zh) * | 2021-08-25 | 2021-11-23 | 四川新网银行股份有限公司 | 一种提升滑块验证码安全性的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107682368A (zh) * | 2017-11-16 | 2018-02-09 | 江苏通付盾科技有限公司 | 基于交互操作的验证方法、客户端、服务器及系统 |
CN108011868A (zh) * | 2017-11-09 | 2018-05-08 | 武汉极意网络科技有限公司 | 一种滑动验证方法及移动终端 |
-
2018
- 2018-11-28 CN CN201811435065.3A patent/CN109543374B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011868A (zh) * | 2017-11-09 | 2018-05-08 | 武汉极意网络科技有限公司 | 一种滑动验证方法及移动终端 |
CN107682368A (zh) * | 2017-11-16 | 2018-02-09 | 江苏通付盾科技有限公司 | 基于交互操作的验证方法、客户端、服务器及系统 |
Non-Patent Citations (3)
Title |
---|
"一步步实现滑动验证码(拼图验证码),Java图片处理关键代码";echx;《https://www.cnblogs.com/yaohonv/p/swipecaptcha.html》;20180108;1-4 * |
"滑动验证码实现原理";fly63前端网;《http://www.fly63.com/article/detial/1410》;20181124;1-3 * |
echx."一步步实现滑动验证码(拼图验证码),Java图片处理关键代码".《https://www.cnblogs.com/yaohonv/p/swipecaptcha.html》.2018, * |
Also Published As
Publication number | Publication date |
---|---|
CN109543374A (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11736478B2 (en) | Device, system, and method of user authentication based on user-specific characteristics of task performance | |
JP7405329B2 (ja) | コンピュータ実装方法、プログラムおよびシステム | |
US20220350868A1 (en) | Method for generating a human likeness score | |
US10262121B2 (en) | Turing test via failure | |
Serwadda et al. | When kids' toys breach mobile phone security | |
US10476873B2 (en) | Device, system, and method of password-less user authentication and password-less detection of user identity | |
US9747436B2 (en) | Method, system, and device of differentiating among users based on responses to interferences | |
US8990959B2 (en) | Manipulable human interactive proofs | |
US20150256528A1 (en) | Method, device, and system of differentiating among users based on responses to interferences | |
US10387645B2 (en) | Method for recognizing if a user of an electronic terminal is a human or a robot | |
US9723005B1 (en) | Turing test via reaction to test modifications | |
CN105471808A (zh) | 生成验证码的方法以及安全验证的方法、装置及系统 | |
CN107682368B (zh) | 基于交互操作的验证方法、客户端、服务器及系统 | |
CN109543374B (zh) | 一种对抗深度神经网络识别的滑动式验证码 | |
CN106778151A (zh) | 基于笔迹的用户身份识别方法和装置 | |
CN109902459A (zh) | Web页面的人机识别验证方法、系统、设备和存储介质 | |
Roshanbin et al. | ADAMAS: Interweaving unicode and color to enhance CAPTCHA security | |
Li et al. | Understanding players’ interaction patterns with mobile game app UI via visualizations | |
CN113190310B (zh) | 基于随机位置对象语义识别的验证码设计方法 | |
CN110135145A (zh) | 基于图灵测试的点击验证码方法 | |
Pritom et al. | Combining movement model with finger-stroke level model towards designing a security enhancing mobile friendly captcha | |
Roshanbin | Interweaving unicode, color, and human interactions to enhance CAPTCHA security | |
CN109934025A (zh) | 一种针对银行安全控件的自动登陆方法 | |
Stein et al. | Low-Cost Breaking of a Unique Chinese Language CAPTCHA Using Curriculum Learning and Clustering | |
Jeberson | Web Security Through Gesture Based CAPTCHA Using CNN Deep Learning Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A sliding verification code for adversarial deep neural network recognition Granted publication date: 20210803 Pledgee: Bank of China Limited Nanjing Gulou Branch Pledgor: JIANGSU SANKOUJING INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024980015329 |