WO2020252880A1 - 反向图灵验证方法及装置、存储介质、电子设备 - Google Patents

反向图灵验证方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
WO2020252880A1
WO2020252880A1 PCT/CN2019/101347 CN2019101347W WO2020252880A1 WO 2020252880 A1 WO2020252880 A1 WO 2020252880A1 CN 2019101347 W CN2019101347 W CN 2019101347W WO 2020252880 A1 WO2020252880 A1 WO 2020252880A1
Authority
WO
WIPO (PCT)
Prior art keywords
verification
verification code
historical
information
current device
Prior art date
Application number
PCT/CN2019/101347
Other languages
English (en)
French (fr)
Inventor
高超
孙奇
李克勤
Original Assignee
同盾控股有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 同盾控股有限公司 filed Critical 同盾控股有限公司
Publication of WO2020252880A1 publication Critical patent/WO2020252880A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication

Definitions

  • the embodiments of the present disclosure relate to the field of computer technology, and specifically, to a reverse Turing verification method, a reverse Turing verification device, a computer-readable storage medium, and an electronic device.
  • the purpose of the present disclosure is to provide a reverse Turing verification method, a reverse Turing verification device, a computer-readable storage medium, and an electronic device, so as to at least to some extent overcome the reverse caused by the limitations and defects of related technologies. Turing verified the problem of poor ease of use.
  • a reverse Turing verification method including: obtaining the device identification of the current device; if the current device accesses the verification code page, querying the history verification of the current device according to the device identification Information; Determine whether to display the verification code on the verification code page according to the historical verification information.
  • the historical verification information includes the number of historical visits to the verification code interface in the history of the current device, the historical verification result, and the historical verification time.
  • determining whether to display a verification code on the verification code page according to the historical verification information includes: determining a time window based on the historical verification time and the historical verification result; If the historical verification result in the time window is that the number of passed verifications is greater than the first threshold and less than the second threshold, the verification code is not displayed on the verification code page; wherein the second threshold is greater than the first threshold.
  • determining whether to display a verification code on the verification code page according to the historical verification information further includes: if the historical verification result is the number of times the verification is passed in the time window Or if the number of verification rejections is greater than the second threshold, the verification code is displayed on the verification code page.
  • the method further includes: if the browser environment information of the current device changes, displaying a verification code on the verification code page.
  • the method further includes: displaying a verification code on the verification code page; obtaining operation behavior data; processing the operation behavior data through a machine learning model to obtain a response Describe the verification result of the verification code.
  • acquiring the device identifier of the current device includes: acquiring browser environment information of the current device; and acquiring the device identifier according to the browser environment information.
  • a reverse Turing verification device which includes: a device identification acquisition module configured to acquire the device identification of the current device; and a historical information query module configured to, if the current device accesses the verification code page, Then, the historical verification information of the current device is queried according to the device identifier; the verification display determination module is configured to determine whether to display the verification code on the verification code page according to the historical verification information.
  • a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the reverse Turing verification method described in any one of the above is implemented.
  • an electronic device including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute by executing the executable instructions The reverse Turing verification method described in any one of the above.
  • the current device accesses the verification code page
  • the current device’s history verification can be queried according to the device identifier of the current device Based on the historical verification information, it can be judged whether the verification code needs to be displayed on the verification code page.
  • the verification code is displayed, which can prevent the user from repeatedly performing the interactive operation of reverse Turing verification, allowing the user to pass the verification quickly, reducing the processing capacity of the system, and improving the user experience in the reverse Turing verification process; another On the one hand, if it is determined that the operating environment of the current device and the current device are untrustworthy according to the historical verification information, the verification code can be displayed, that is, the reliability of the reverse Turing verification can be guaranteed at the same time.
  • FIG. 1 schematically shows an architecture diagram of a reverse Turing verification system that fundamentally discloses an exemplary embodiment
  • FIG. 2 schematically shows a flow chart of a reverse Turing verification method of fundamentally disclosed exemplary embodiments
  • FIG. 3 schematically shows a flowchart of step S230 in FIG. 2 in an embodiment
  • FIG. 4 schematically shows a flowchart of another reverse Turing verification method according to the exemplary embodiment of the fundamental disclosure
  • FIG. 5 schematically shows a flowchart of yet another reverse Turing verification method according to an exemplary embodiment of the fundamental disclosure
  • FIG. 6 schematically shows a block diagram of a reverse Turing verification device that basically discloses an exemplary embodiment
  • FIG. 7 schematically shows an electronic device for implementing the above reverse Turing verification method according to an exemplary embodiment of the fundamental disclosure
  • FIG. 8 schematically illustrates a computer-readable storage medium for implementing the above reverse Turing verification method according to an exemplary embodiment of the fundamental disclosure.
  • Turing Test It is a well-known test proposed by Turing in 1950 to determine whether a machine can think. It tests whether a machine can show intelligence equivalent to or indistinguishable from humans.
  • Verification code (Completely Automated Public Turing Test to Tell Computers and Humans Apart, CAPTCHA): that is, the Turing test that automatically distinguishes between computers and humans. It is a reverse Turing test. The user is required to input characters or make a selection of specific graphics, and the test shows that the current operator is human. This is to prevent the website from being abused by automated systems. The reason is that a system that can read finely and accurately recognize graphics does not exist (or is not provided to ordinary users), so any system that can do this may be a human.
  • Verification code challenge A type of question that needs to be answered by humans. Through this question, humans and machines are tested.
  • Fig. 1 schematically shows an architecture diagram of a reverse Turing verification system that fundamentally discloses an exemplary embodiment.
  • the reverse Turing verification system 100 may include a terminal device 110, a verification server 120 and a database 130.
  • the terminal device 110 can communicate with the verification server 120 in both directions, and the verification server 120 can communicate with the database 130 in both directions.
  • the communication method can include any communication methods such as wired and/or wireless, which is not limited in the present disclosure. .
  • the terminal device 110 may be any electronic device among smart phones, tablet computers, notebook computers, personal computers (PCs), wearable smart devices, navigation devices, personal digital assistants (Personal Digital Assistants, PDAs), etc. This disclosure does not limit the equipment.
  • Various clients such as APPs (applications) or browsers, can be installed on the terminal device 110, and various websites, web pages, or pages can be logged in or opened through the installed clients.
  • the verification server 120 may be a server cluster composed of multiple servers, or a cloud server, or a common server.
  • the present disclosure does not limit the number and types of verification servers 120.
  • Fig. 2 schematically shows a flow chart of a reverse Turing verification method of fundamentally disclosed exemplary embodiments.
  • This example embodiment provides a reverse Turing verification method, which can run on servers, server clusters, cloud servers, etc., or on terminal devices; of course, those skilled in the art can also run on other platforms as required
  • the method of running the present disclosure is not particularly limited in this exemplary embodiment.
  • the reverse Turing verification method may include the following steps:
  • step S210 the device identification of the current device is obtained.
  • obtaining the device identification of the current device may include: obtaining browser environment information of the current device; obtaining the device identification according to the browser environment information.
  • the current device may be a mobile terminal such as a smart phone, a tablet computer, etc., or a fixed terminal such as a PC, etc., which is not limited in the present disclosure.
  • the current device is the terminal device 110 in FIG. Take an example for illustration.
  • a JavaScript or WebAssembly program can be pre-written and embedded in a web page.
  • the terminal device 110 may collect the browser environment information of the terminal device 110, and then the terminal device 110 may send the browser environment information of the terminal device 110 to the verification server 120.
  • the verification server 120 receives the browser environment information of the terminal device 110, and generates a string of ID (identification) strings after Hash calculation of the browser environment information, which serves as the "fingerprint" attribute of the terminal device 110, that is, as the terminal device 110
  • the device identifier here can be any identifier that can uniquely distinguish the terminal device 110 from other terminal devices.
  • the browser environment information may include, for example, any one or a combination of the following: UserAgent, font list, browser version, Canvas fingerprint (canvas fingerprint), etc.
  • UserAgent User Agent
  • user agent or UA for short, is a special string header that enables the authentication server 120 to identify the operating system and version, CPU (Central Processing Unit) type, browser and version used by the terminal device 110 , Browser rendering engine, browser language, browser plug-in, etc.
  • CPU Central Processing Unit
  • Canvas is a tag for dynamic drawing in HTML5 (Hyper Text Markup Language 5, Hypertext Markup Language 5).
  • HTML5 Hyper Text Markup Language 5, Hypertext Markup Language 5
  • Each browser uses different image processing engines, different export options, and different compression levels, so the graphics drawn by each computer will be slightly different. These graphics can be used to assign specific numbers to terminal devices ( Fingerprint), which means it can be used to identify different users.
  • the verification server 120 may store the calculated ID string as the device identification of the terminal device 110 in the database 130.
  • the device identities of multiple terminal devices can be stored in the database 130, and the device identities of each terminal device are different.
  • the method may further include: if the current device is accessing the verification code page for the first time, displaying the verification code on the verification code page; and collecting the operation behavior of a machine or a person on the displayed verification code Data such as clicking on the verification code picture or text, inputting the corresponding numbers or text through the mouse or keyboard, touching the screen, etc., according to the obtained operation behavior data, it can be judged whether the operation is performed on the current device is the verification result of a human or a machine, and then The verification result is associated with the device identification of the current device and stored in the database 130. For example, if the device identities and verification results of multiple terminal devices are stored in the database 130, the device identities of the corresponding terminal devices and their verification results are stored in a one-to-one correspondence.
  • step S220 if the current device accesses the verification code page, query the history verification information of the current device according to the device identifier.
  • the verification code page refers to the same website or the same APP.
  • the historical verification information may include the number of historical visits to the verification code interface in the history of the current device, the historical verification result, and the historical verification time.
  • step S230 it is determined whether to display a verification code on the verification code page according to the historical verification information.
  • the terminal device 110 accesses the verification code page again. At this time, the terminal device 110 will send a verification request to the verification server 120. After the verification server 120 receives the verification request, It will first read the corresponding historical verification information from the database 130 according to the device identification of the terminal device 110. It is assumed that the verification result of the first verification stored in the database is verified and the difference between the current time and the verification time of the first verification is less than or equal to For a preset time threshold (for example, 30 minutes, but this disclosure does not limit it), the verification code may not be displayed this time. If the verification result of the first verification is verification rejection, it means that the first verification has not passed.
  • a preset time threshold for example, 30 minutes, but this disclosure does not limit it
  • the verification code needs to be displayed again when the verification code page is accessed again. Or, even if the verification result of the first verification is that the verification is passed, when the verification code page is accessed again, the difference between the current time and the verification time of the first verification is greater than the preset time threshold, and the verification code needs to be displayed again. If the verification code is displayed again, similar to this, the behavior operation data will be obtained again, and according to the behavior operation data, it is judged whether the operation is a human or a machine, and the verification result of the re-verification is associated with the device identification of the terminal device 110 and stored to In the database 130, other verifications are similar to this.
  • the method may further include: if the browser environment information of the current device changes, displaying a verification code on the verification code page.
  • the browser environment information of the terminal device 110 is changed, the historical verification information corresponding to the previous device identification of the current device may be ignored at this time, and the verification code may be directly displayed, because when the browser environment information occurs When changed, the ID string of the terminal device 110 may also be changed, or the previously stored device identification of the terminal device and the changed browser environment information cannot be mapped and associated.
  • the current device accesses the verification code page
  • the current device's historical verification information can be queried according to the device identifier of the current device, and based on the historical verification information, it can be determined whether it is currently required
  • the verification code is displayed on the verification code page.
  • the verification code may not be displayed, which can prevent the user from repeating countermeasures.
  • Turing Verification allows users to pass verification quickly, reduces the processing capacity of the system, and can improve the user experience in the reverse Turing verification process; on the other hand, if the current device is judged based on the historical verification information If the operating environment and the current device are untrustworthy, the verification code can be displayed, that is, the reliability of the reverse Turing verification can be guaranteed at the same time.
  • Fig. 3 schematically shows a flowchart of step S230 in Fig. 2 in an embodiment.
  • step S231 a time window is determined according to the historical verification time and the historical verification result.
  • the verification time that passed the verification closest to the current time is 9:00 am on April 24, 2019, and the timing can be started, assuming that the verification server 120 sets If it is N minutes, the time window is from 9:00 am on April 24, 2019 to 9:00 am on April 24, 2019 + N minutes, and N is a number greater than 0.
  • step S232 if the historical verification result in the time window is that the number of passed verifications is greater than the first threshold and less than the second threshold, the verification code is not displayed on the verification code page.
  • the second threshold is greater than the first threshold.
  • the first threshold may be 0, but the present disclosure is not limited to this, and can be independently set according to specific application scenarios.
  • the second threshold may be designed according to actual requirements, for example, 5 times.
  • the verification code may no longer be displayed within N minutes after the verification time of the first verification. That is, when the terminal device 110 accesses the verification code page again, if the first verification code challenge is passed, the verification server 120 recognizes the person who operated for the first time, and the current time does not exceed the time window, and the browser environment information of the terminal device 110 remains unchanged In this case, the terminal device 110 and the current operation can be regarded as authentic at this time, so there is no need to display the verification code, and there is no visual and interactive interruption during the user operation.
  • step S233 if the historical verification result in the time window is the number of passed verifications or the number of rejected verifications is greater than the second threshold, a verification code is displayed on the verification code page.
  • the verification code will be displayed again. The current operation is deemed untrustworthy, and you need to participate in the verification code challenge.
  • FIG. 4 schematically shows a flow chart of another reverse Turing verification method that fundamentally discloses an example embodiment.
  • step S410 a verification code is displayed on the verification code page.
  • step S420 the operation behavior data is acquired.
  • the verification code interface used to display the verification code may include an area that can record and collect user behavior, and the data collected in this area may include any of mouse movement tracks, keyboard keystrokes records, touch screen events, etc.
  • One or more types, and the collected data can be used as the operation behavior data.
  • the operation behavior data may also be executed automatically by a machine.
  • step S430 the operation behavior data is processed through a machine learning model to obtain a verification result in response to the verification code.
  • the operation behavior data collected by the terminal device 110 may be sent to the verification server 120, and the verification server 120 may predict the input operation behavior data through a pre-trained machine learning model, and calculate the credit of the operation behavior data. According to the calculated credit score, it can distinguish whether the current operation behavior is generated by a human or a machine program. If it is determined that it is generated by a human, a verification result that has passed the verification is generated; if it is determined to be generated by a machine program, then Generate verification results that are rejected by verification.
  • the machine learning model may be, for example, any one or a combination of random forest, XGBoost (eXtreme Gradient Boosting, extreme gradient boosting), etc.
  • XGBoost eXtreme Gradient Boosting, extreme gradient boosting
  • the training data set can be generated first, and then the machine learning model can be trained using the training data set.
  • the training data set can be generated in a variety of ways. For example, white sample data can be manually constructed and a script can be written to generate black sample data, and the training data set includes the white sample data and the black sample data.
  • the black and white sample data in the training data set can also be generated by offline and quasi-real-time data analysis methods, analyzed and extracted from the massive data in the production environment, and the basis for analysis and extraction can be accurate as identified by other strong rule dimensions Black and white sample data, the black and white sample data in the training data set can be used to periodically iterate the machine learning model.
  • FIG. 5 schematically shows a flowchart of yet another reverse Turing verification method according to an exemplary embodiment of the fundamental disclosure.
  • step S501 the page is accessed through the browser of the current device, and the JS (short for JavaScript) code or WebAssembly program contained in the page is executed to collect browser environment information.
  • JS short for JavaScript
  • a user of the terminal device 110 accesses a page or a web page, he can collect browser information by executing a specific JavaScript code or a WebAssembly program, and obtain various attribute information generated in the browser for device identification or user identification.
  • step S502 the browser environment information is hashed to generate an ID string as the device identification of the current device.
  • step S503 the ID string is stored in the database.
  • the terminal device 110 may use HTTP (Hyper Text Transfer Protocol) or HTTPS (Hyper Text Transfer Protocol over Secure Socket Layer or Hypertext Transfer Protocol Secure, Hypertext Transfer Protocol) to connect the browser environment
  • HTTP Hyper Text Transfer Protocol
  • HTTPS Hypertext Transfer Protocol over Secure Socket Layer or Hypertext Transfer Protocol Secure, Hypertext Transfer Protocol
  • step S504 when the current device accesses the verification code page for the first time, the verification code is displayed.
  • step S505 obtain the operation behavior data of the machine or human for the verification code.
  • step S506 a determination is made according to the operation behavior data, and a verification result of whether the current operation behavior is performed by a machine or a person is obtained.
  • the terminal device 110 sends the collected operation behavior data to the verification server 120, and the verification server 120 inputs the received operation behavior data to the trained machine learning model to predict whether the current operation behavior is a machine or a human, so as to generate The corresponding verification result.
  • step S507 the verification result is associated with the ID string and stored in the database.
  • step S508 it is determined whether the browser environment information of the current device has changed; if there is a change, then step S509 is entered; if there is no change, then step S511 is skipped.
  • step S509 the device identification of the current device is regenerated according to the changed browser environment information.
  • step S510 when the current device accesses the verification code page again, the verification code is displayed.
  • the verification code needs to be displayed again regardless of whether the first verification is passed or not.
  • step S511 when the current device accesses the verification code page again, query the historical verification information corresponding to the ID string in the database.
  • step S512 if the verification result in a specific time window is that the number of verification passes is greater than 0 and less than the second threshold, the verification code will not be displayed.
  • the verification server 120 may generate a judgment result of whether the verification code needs to be displayed currently based on the historical verification information queried from the database 130, and may send the judgment result to the terminal device 110 through HTTP or HTTPS.
  • the terminal device 110 may choose whether to display the verification code according to the received judgment result.
  • step S513 if the verification result in the specific time window is that the number of verification passes or the number of verification rejections is greater than the second threshold, a verification code will be displayed.
  • the reverse Turing verification apparatus 600 may include a device identification acquisition module 610, a historical information query module 620, and a verification display determination module 630. among them:
  • the device identification acquiring module 610 may be configured to acquire the device identification of the current device.
  • the historical information query module 620 may be configured to query the historical verification information of the current device according to the device identifier if the current device accesses the verification code page.
  • the verification display determination module 630 may be configured to determine whether to display a verification code on the verification code page according to the historical verification information.
  • the historical verification information may include the number of historical visits to the verification code interface in the history of the current device, the historical verification result, and the historical verification time.
  • the verification display determination module 630 may be configured to: determine a time window according to the historical verification time and the historical verification result; if the historical verification result in the time window is that the number of verification passes is greater than If the first threshold is less than the second threshold, the verification code is not displayed on the verification code page; wherein, the second threshold is greater than the first threshold.
  • the verification display determination module 630 may be further configured to: if the historical verification result in the time window is the number of passes verification or the number of verification rejections is greater than the second threshold, The verification code is displayed on the verification code page.
  • the reverse Turing verification apparatus 600 may also be configured to display a verification code on the verification code page if the browser environment information of the current device changes.
  • the reverse Turing verification device 600 may also be configured to: display a verification code on the verification code page; obtain operation behavior data; process the operation behavior data through a machine learning model to obtain a response The verification result of the verification code.
  • the device identification obtaining module 610 may be configured to: obtain browser environment information of the current device; obtain the device identification according to the browser environment information.
  • the exemplary embodiments described herein can be implemented by software, or can be implemented by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to make a computing device (which may be a personal computer, a server, a mobile terminal, or a network device, etc.) execute the method according to the embodiments of the present disclosure.
  • a computing device which may be a personal computer, a server, a mobile terminal, or a network device, etc.
  • an electronic device capable of implementing the above method is also provided.
  • the electronic device 700 according to this embodiment of the present disclosure will be described below with reference to FIG. 7.
  • the electronic device 700 shown in FIG. 7 is only an example, and should not bring any limitation to the function and scope of use of the embodiments of the present disclosure.
  • the electronic device 700 is represented in the form of a general-purpose computing device.
  • the components of the electronic device 700 may include, but are not limited to: the aforementioned at least one processing unit 710, the aforementioned at least one storage unit 720, and a bus 730 connecting different system components (including the storage unit 720 and the processing unit 710).
  • the storage unit stores program code, and the program code can be executed by the processing unit 710, so that the processing unit 710 executes the various exemplary methods described in the "Exemplary Method" section of this specification.
  • the processing unit 710 may perform step S210 as shown in FIG. 2: obtain the device identification of the current device; step S220: if the current device accesses the verification code page, query the current device according to the device identification Step S230: Determine whether to display the verification code on the verification code page according to the historical verification information.
  • the storage unit 720 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 7201 and/or a cache storage unit 7202, and may further include a read-only storage unit (ROM) 7203.
  • RAM random access storage unit
  • ROM read-only storage unit
  • the storage unit 720 may also include a program/utility tool 7204 having a set (at least one) program module 7205.
  • program module 7205 includes but is not limited to: an operating system, one or more application programs, other program modules, and program data, Each of these examples or some combination may include the implementation of a network environment.
  • the bus 730 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local area using any bus structure among multiple bus structures. bus.
  • the electronic device 700 may also communicate with one or more external devices 770 (such as keyboards, pointing devices, Bluetooth devices, etc.), and may also communicate with one or more devices that enable a user to interact with the electronic device 700, and/or communicate with Any device (such as a router, modem, etc.) that enables the electronic device 700 to communicate with one or more other computing devices. This communication can be performed through an input/output (I/O) interface 750.
  • the electronic device 700 may also communicate with one or more networks (for example, a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet) through the network adapter 760.
  • networks for example, a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet
  • the network adapter 760 communicates with other modules of the electronic device 700 through the bus 730. It should be understood that although not shown in the figure, other hardware and/or software modules can be used in conjunction with the electronic device 700, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives And data backup storage system, etc.
  • the exemplary embodiments described here can be implemented by software, or can be implemented by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to make a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) execute the method according to the embodiments of the present disclosure.
  • a computing device which may be a personal computer, a server, a terminal device, or a network device, etc.
  • a computer-readable storage medium on which is stored a program product capable of implementing the above method in this specification.
  • various aspects of the present disclosure may also be implemented in the form of a program product, which includes program code.
  • the program product runs on a terminal device, the program code is used to enable the The terminal device executes the steps according to various exemplary embodiments of the present disclosure described in the above "Exemplary Method" section of this specification.
  • a program product 800 for implementing the above method according to an embodiment of the present disclosure is described. It can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be installed in a terminal device, For example, running on a personal computer.
  • the program product of the present disclosure is not limited thereto.
  • the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with an instruction execution system, device, or device.
  • the program product can use any combination of one or more readable media.
  • the readable medium may be a readable signal medium or a readable storage medium.
  • the readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or a combination of any of the above. More specific examples (non-exhaustive list) of readable storage media include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read only memory (ROM), erasable Type programmable read only memory (EPROM or flash memory), optical fiber, portable compact disk read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
  • the computer-readable signal medium may include a data signal propagated in baseband or as a part of a carrier wave, and readable program code is carried therein. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with the instruction execution system, apparatus, or device.
  • the program code contained on the readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
  • the program code used to perform the operations of the present disclosure can be written in any combination of one or more programming languages.
  • the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural styles. Programming language-such as "C" language or similar programming language.
  • the program code can be executed entirely on the user's computing device, partly on the user's device, executed as an independent software package, partly on the user's computing device and partly executed on the remote computing device, or entirely on the remote computing device or server Executed on.
  • the remote computing device can be connected to a user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using Internet service providers) Business to connect via the Internet).
  • LAN local area network
  • WAN wide area network
  • Internet service providers Internet service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种反向图灵验证方法及装置、存储介质、电子设备,属于计算机技术领域,该方法包括:获取当前设备的设备标识(S210);若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息(S220);根据所述历史验证信息确定是否在所述验证码页面显示验证码(S230)。该方法通过历史验证信息来确定是否需要在验证码页面显示验证码,提高了反向图灵验证的可靠性和易用性。

Description

反向图灵验证方法及装置、存储介质、电子设备
本公开要求申请日为2019年06月19日、申请号为CN 201910531607.5、发明创造名称为《反向图灵验证方法及装置、存储介质、电子设备》的中国发明专利申请的优先权。
技术领域
本公开实施例涉及计算机技术领域,具体而言,涉及一种反向图灵验证方法、反向图灵验证装置、计算机可读存储介质以及电子设备。
背景技术
当前为了区分执行当前操作(例如下载某文档、进行促销商品的抢购等)的是计算机还是人类,需要生成人类能够通过但计算机却通不过的测试,这种测试叫做反向图灵验证。为了能够将机器与人类区分开来,需要用户对测试进行思考后,再在界面上进行答案的输入,然后才可以继续验证流程。这种方式对用户的体验往往不太友好,随着用户的持续使用,需要用户反复参与大量的交互操作。
因此,需要提供一种新的反向图灵验证方法及装置。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种反向图灵验证方法、反向图灵验证装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的反向图灵验证易用性较差的问题。
根据本公开的一个方面,提供一种反向图灵验证方法,包括:获取当前设备的设备标识;若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息;根据所述历史验证信息确定是否在所述验证码页面显示验证码。
在本公开的一种示例性实施例中,所述历史验证信息包括所述当前设备历史上访问所述验证码界面的历史访问次数、历史验证结果和历史验证时间。
在本公开的一种示例性实施例中,根据所述历史验证信息确定是否在所述验证码页面显示验证码,包括:根据所述历史验证时间和所述历史验证结果确定时间窗口;若在所述时间窗口内所述历史验证结果为验证通过的次数大于第一阈值且小于第二阈值,则不在所述验证码页面显示验证码;其中,所述第二阈值大于所述第一阈值。
在本公开的一种示例性实施例中,根据所述历史验证信息确定是否在所述验证码页面显示验证码,还包括:若在所述时间窗口内所述历史验证结果为验证通过的次数或者为验证拒绝的次数大于所述第二阈值,则在所述验证码页面显示验证码。
在本公开的一种示例性实施例中,所述方法还包括:若所述当前设备的浏览器环境信息发生改变,则在所述验证码页面显示验证码。
在本公开的一种示例性实施例中,所述方法还包括:在所述验证码页面显示验证码;获取操作行为数据;通过机器学习模型对所述操作行为数据进行处理,获得响应于所述验证码的验证结果。
在本公开的一种示例性实施例中,获取当前设备的设备标识,包括:获取所述当前设备的浏览器环境信息;根据所述浏览器环境信息获得所述设备标识。
根据本公开的一个方面,提供一种反向图灵验证装置,包括:设备标识获取模块,配置为获取当前设备的设备标识;历史信息查询模块,配置为若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息;验证显示确定模块,配置为根据所述历史验证信息确定是否在所述验证码页面显示验证码。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的反向图灵验证方法。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的反向图灵验证方法。
本公开某些实施例提供的反向图灵验证方法、装置、计算机可读存储介质以及电子设备,在当前设备访问验证码页面时,可以根据该当前设备的设备标识查询该当前设备的历史验证信息,并基于该历史验证信息可以判断当前是否需要在验证码页面显示验证码,一方面,若根据该历史验证信息可以判断该当前设备的操作环境与该当前设备是可信的,则可以不显示验证码,从而可以避免用户反复多次进行反向图灵验证的交互操作,允许用户快速通过验证,降低了系统的处理量,并能够改善反向图灵验证过程中的用户体验;另一方面,若根据该历史验证信息判断该当前设备的操作环境与该当前设备是不可信的,则可以显示验证码,即同时可以保证反向图灵验证的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根本公开示例实施例的一种反向图灵验证系统的架构图;
图2示意性示出根本公开示例实施例的一种反向图灵验证方法的流程图;
图3示意性示出图2中的步骤S230在一实施例中的流程图;
图4示意性示出根本公开示例实施例的另一种反向图灵验证方法的流程图;
图5示意性示出根本公开示例实施例的又一种反向图灵验证方法的流程图;
图6示意性示出根本公开示例实施例的一种反向图灵验证装置的框图;
图7示意性示出根本公开示例实施例的一种用于实现上述反向图灵验证方法的电子设备;
图8示意性示出根本公开示例实施例的一种用于实现上述反向图灵验证方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
首先对本公开实施例中提及的术语进行释义说明:
图灵测试:是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验,测试某机器是否能表现出与人等价或无法区分的智能。
验证码(Completely Automated Public Turing Test to Tell Computers and Humans Apart,CAPTCHA,):即全自动区分计算机和人类的图灵测试,是一种反向图灵测试。要求用户输入字符或对特定图形作出选择,通过测试说明当前操作者为人类。这是为了防止网站被自动化系统用来滥用。理由是能够精细地阅读和准确地识别图形的系统并不存在(或不提供给普通用户),所以能够做到这一点的任何系统可能是一个人类。
验证码挑战:需要被人类解答的一类问题,通过此问题测试出人和机器。
当前大部分反向图灵验证方式为CAPTCHA这种形态,每次参与验证均需要进行交互 操作,例如使用鼠标、键盘等输入设备,需要用户对验证码挑战进行思考后在界面上进行答案的输入,然后才可以继续验证流程。这种方式对用户的体验往往不太友好,随着用户的持续使用,需要用户反复参与大量的交互操作。
图1示意性示出根本公开示例实施例的一种反向图灵验证系统的架构图。
如图1所示,本公开实施例提供的反向图灵验证系统100可以包括终端设备110、验证服务器120以及数据库130。其中,终端设备110可以与验证服务器120之间双向通信,验证服务器120与数据库130之间可以双向通信,实现通信的方式可以包括有线和/或无线等任意的通讯方式,本公开对此不作限定。
其中,终端设备110可以是智能手机、平板电脑、笔记本电脑、个人计算机(personal computer,PC)、可穿戴智能设备、导航设备、个人数字助理(Personal Digital Assistant,PDA)等中的任意一种电子设备,本公开对此不作限定。可以在终端设备110上安装各种客户端,例如APP(application,应用程序)或者浏览器,可以通过安装的客户端登录或者打开各类网址、网页或者页面。
其中,验证服务器120可以是多台服务器组成的服务器集群,也可以是云端服务器,也可以是一台通常的服务器,本公开对验证服务器120的数量及类型不作限定。
图2示意性示出根本公开示例实施例的一种反向图灵验证方法的流程图。本示例实施方式中提供了一种反向图灵验证方法,该方法可以运行于服务器、服务器集群或云服务器等,也可以运行于终端设备;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。参考图2所示,该反向图灵验证方法可以包括以下步骤:
在步骤S210中,获取当前设备的设备标识。
在示例性实施例中,获取当前设备的设备标识,可以包括:获取所述当前设备的浏览器环境信息;根据所述浏览器环境信息获得所述设备标识。
本公开实施例中,所述当前设备可以是移动终端例如智能手机、平板电脑等,也可以是固定终端例如PC等,本公开对此不作限定,这里以当前设备为图1中的终端设备110为例进行举例说明。
本公开实施例中,可以预先编写JavaScript或WebAssembly程序并将其嵌入至网页中,当用户打开终端设备110上安装的PC浏览器或者移动终端浏览器,并通过打开的浏览器打开任意一个包含嵌入前述JavaScript或WebAssembly程序的页面时,终端设备110可以采集终端设备110的浏览器环境信息,然后,终端设备110可以将终端设备110的浏览器环境信息发送至验证服务器120。
验证服务器120接收到终端设备110的浏览器环境信息,将所述浏览器环境信息经过Hash计算后生成一串ID(identification)字符串,作为终端设备110的“指纹”属性,即作为终端设备110的设备标识,这里的设备标识可以是任意的能够将终端设备110与其他的终端设备唯一区别开来的标识。
具体地,所述浏览器环境信息例如可以包括以下中的任意一种或者多种的组合:UserAgent、字体列表、浏览器版本、Canvas指纹(帆布指纹)等。
其中,UserAgent,用户代理,简称UA,它是一个特殊字符串头,使得验证服务器120能够识别终端设备110使用的操作系统及版本、CPU(Central Processing Unit,中央处理器)类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
Canvas是HTML5(Hyper Text Markup Language 5,超文本标记语言5)中动态绘图的标签。每一种浏览器会使用不同的图像处理引擎,不同的导出选项,不同的压缩等级,所以每一台电脑绘制出的图形都会有些许不同,这些图案可以被用来给终端设备分配特定编号(指纹),也就是说可以用来识别不同用户。
之后,验证服务器120可以将计算获得的ID字符串作为终端设备110的设备标识存储至数据库130中。以此类推,可以在数据库130中存储多个终端设备的设备标识,每个终端设备的设备标识均是不相同的。
在示例性实施例中,所述方法还可以包括:若所述当前设备为首次访问验证码页面,则在所述验证码页面显示验证码;采集机器或者人针对所显示的验证码的操作行为数据例如点击验证码图片或文字,通过鼠标或者键盘输入相应的数字或者文字,触摸屏幕等,根据获得的操作行为数据可以判断对所述当前设备执行操作的是人还是机器的验证结果,然后可以将所述验证结果与该当前设备的设备标识关联存储至数据库130中。例如,若数据库130中存储有多个终端设备的设备标识与验证结果,则相应终端设备的设备标识与其验证结果是一一对应存储的。
在步骤S220中,若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息。
本公开实施例中,所述验证码页面是指针对同一网站或者同一APP而言的。
在示例性实施例中,所述历史验证信息可以包括所述当前设备历史上访问所述验证码界面的历史访问次数、历史验证结果和历史验证时间。
例如,可以将终端设备110每次访问所述验证码界面的时间、每次验证服务器120判断当前操作的是人还是机器的验证结果(若识别是人,则所述验证结果为验证通过;若识别是机器,则所述验证结果为验证拒绝)、每次验证时的验证时间等信息均与终端设备110的设备标识关联存储至数据库130中。统计可以获得所述历史访问次数。
在步骤S230中,根据所述历史验证信息确定是否在所述验证码页面显示验证码。
例如,假设是首次在验证码页面显示验证码后,终端设备110再次访问该验证码页面,此时,终端设备110会向验证服务器120发送验证请求,验证服务器120接收到所述验证请求后,会首先根据该终端设备110的设备标识去数据库130中读取相应的历史验证信息,假设数据库中存储的首次验证的验证结果为验证通过,且当前时间与首次验证的验证时间的差值小于等于预先设定的时间阈值(例如,30分钟,但本公开并不对其进行限定),则本次可以不显示验证码。若首次验证的验证结果为验证拒绝,说明首次验证未通过,此 时再次访问该验证码页面时,还需再显示验证码。或者,即使首次验证的验证结果为验证通过,但再次访问该验证码页面时,当前时间与首次验证的验证时间的差值大于预先设定的时间阈值,也需要重新再显示验证码。若再次显示验证码,与此类似,会再次获取行为操作数据,并根据该行为操作数据判断本次操作的是人还是机器,并将再次验证的验证结果与终端设备110的设备标识关联存储至数据库130中,其他的验证与此类似。
在示例性实施例中,所述方法还可以包括:若所述当前设备的浏览器环境信息发生改变,则在所述验证码页面显示验证码。
在实际情况中,攻击者可以利用技术手段篡改浏览器环境信息。本公开实施例中,若终端设备110的浏览器环境信息发生了改变,则此时可以不考虑该当前设备之前的设备标识对应的历史验证信息,直接显示验证码,因为当浏览器环境信息发生改变时,终端设备110的ID字符串可能也会被更改,或者之前存储的终端设备的设备标识与该变更后的浏览器环境信息之间无法做映射关联。
本公开实施方式提供的反向图灵验证方法,在当前设备访问验证码页面时,可以根据该当前设备的设备标识查询该当前设备的历史验证信息,并基于该历史验证信息可以判断当前是否需要在验证码页面显示验证码,一方面,若根据该历史验证信息可以判断该当前设备的操作环境与该当前设备是可信的,则可以不显示验证码,从而可以避免用户反复多次进行反向图灵验证的交互操作,允许用户快速通过验证,降低了系统的处理量,并能够改善反向图灵验证过程中的用户体验;另一方面,若根据该历史验证信息判断该当前设备的操作环境与该当前设备是不可信的,则可以显示验证码,即同时可以保证反向图灵验证的可靠性。
图3示意性示出图2中的步骤S230在一实施例中的流程图。
在步骤S231中,根据所述历史验证时间和所述历史验证结果确定时间窗口。
例如,根据所述历史验证时间和所述历史验证结果可以获得距离当前时间最近的一次验证通过的验证时间为2019年4月24日上午9:00,则可以开始计时,假设验证服务器120设定为N分钟,则2019年4月24日上午9:00至2019年4月24日上午9:00+N分钟为该时间窗口,N为大于0的数。
在步骤S232中,若在所述时间窗口内所述历史验证结果为验证通过的次数大于第一阈值且小于第二阈值,则不在所述验证码页面显示验证码。
其中,所述第二阈值大于所述第一阈值。例如,所述第一阈值可以为0,但本公开并不限定于此,可以根据具体应用场景进行自主设定。所述第二阈值可以根据实际需求进行设计,例如为5次。
例如,在首次验证通过后,在首次验证通过的验证时间之后的N分钟内,可以不再显示验证码。即终端设备110再次访问验证码页面时,如果首次验证码挑战通过,即验证服务器120识别首次操作的为人,且当前时间未超过该时间窗口,同时终端设备110的浏览器环境信息保持不变的情况下,此时终端设备110和当前操作可以被认定为可信的,故不 需要再显示验证码,用户操作过程中可以无任何视觉与交互上的打搅。
在步骤S233中,若在所述时间窗口内所述历史验证结果为验证通过的次数或者为验证拒绝的次数大于所述第二阈值,则在所述验证码页面显示验证码。
本公开实施例中,若在所述时间窗口内同一设备标识的终端设备110验证通过的次数或验证拒绝的次数大于所述第二阈值,则会再次显示验证码,此时终端设备110上的当前操作被认定为不可信,此时需要参与验证码的挑战。
图4示意性示出根本公开示例实施例的另一种反向图灵验证方法的流程图。
在步骤S410中,在所述验证码页面显示验证码。
在步骤S420中,获取操作行为数据。
本公开实施例中,用于显示验证码的验证码界面可以包括可记录和采集用户行为的区域,该区域所采集的数据可以包括鼠标移动轨迹、键盘击键记录、触摸屏幕事件等中的任意一种或者多种,并可以将采集的数据作为所述操作行为数据,当然,所述操作行为数据也有可能是机器自动执行的。
在步骤S430中,通过机器学习模型对所述操作行为数据进行处理,获得响应于所述验证码的验证结果。
本公开实施例中,终端设备110所采集的操作行为数据可以发送至验证服务器120,验证服务器120可以通过预先训练好的机器学习模型预测输入的操作行为数据,计算出所述操作行为数据的信用分值,并根据计算的信用分值区分出当前操作行为是由人产生的还是由机器程序产生,若判定由人产生的,则生成验证通过的验证结果;若判定由机器程序产生的,则生成验证拒绝的验证结果。
本公开实施例中,所述机器学习模型例如可以是随机森林、XGBoost(eXtreme Gradient Boosting,极端梯度提升)等中的任意一种或者多种的组合。
可以首先生成训练数据集,然后采用该训练数据集训练该机器学习模型。这里可以通过多种方式生成所述训练数据集。例如,可以人工构造白样本数据和编写脚本生成黑样本数据,所述训练数据集包括所述白样本数据和所述黑样本数据。所述训练数据集中的黑、白样本数据还可以由离线和准实时的数据分析方法生成,从生产环境中的海量数据中分析提取,分析提取的依据可以是其他强规则维度识别到的准确的黑、白样本数据,训练数据集中的黑、白样本数据可以用于周期性迭代该机器学习模型。
图5示意性示出根本公开示例实施例的又一种反向图灵验证方法的流程图。
在步骤S501中,通过当前设备的浏览器访问页面,执行页面中所包含的JS(JavaScript的简称)代码或者WebAssembly程序以收集浏览器环境信息。
具体的,终端设备110的用户访问页面或者网页,可以通过执行特定的JavaScript代码或者WebAssembly程序进行浏览器信息的采集,获取产生于浏览器的各类属性信息,以用于设备识别或者用户识别。
在步骤S502中,将所述浏览器环境信息经过哈希计算,生成ID字符串作为该当前设 备的设备标识。
在步骤S503中,将该ID字符串存储至数据库中。
具体的,终端设备110可以使用HTTP(Hyper Text Transfer Protocol,超文本传输协议)或HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer或Hypertext Transfer Protocol Secure,超文本传输安全协议)方式将所述浏览器环境信息发送至验证服务器120,验证服务器120对接收到的浏览器环境信息进行计算生成ID字符串作为终端设备110的设备标识,并将其存储至数据库130中。
在步骤S504中,该当前设备首次访问验证码页面时,显示验证码。
在步骤S505中,获取机器或者人针对该验证码的操作行为数据。
在步骤S506中,根据该操作行为数据进行判定,获得进行当前操作行为的是机器还是人的验证结果。
具体的,终端设备110将采集的操作行为数据发送至验证服务器120,验证服务器120将接收到的操作行为数据输入至训练好的机器学习模型,预测该当前操作行为的是机器还是人,以生成相应的验证结果。
在步骤S507中,将该验证结果与该ID字符串关联存储至该数据库中。
在步骤S508中,判断该当前设备的浏览器环境信息是否发生改变;若发生改变,则进入步骤S509;若未发生改变,则跳转到步骤S511。
在步骤S509中,根据改变后的浏览器环境信息重新生成该当前设备的设备标识。
在步骤S510中,当该当前设备再次访问该验证码页面时,显示验证码。
本公开实施例中,若终端设备110的浏览器环境信息发生改变,此时不管首次验证是否通过,均需要重新显示验证码。
在步骤S511中,当该当前设备再次访问该验证码页面时,查询该数据库中该ID字符串对应的历史验证信息。
在步骤S512中,若在特定的时间窗口内验证结果为验证通过的次数大于0且小于第二阈值,则不会显示验证码。
具体的,验证服务器120根据从数据库130查询到的历史验证信息,可以生成当前是否需要显示验证码的判断结果,可以将所述判断结果通过HTTP或HTTPS方式发送给终端设备110。终端设备110可以根据接收到的判断结果,来选择是否展示验证码。
在步骤S513中,若在该特定的时间窗口内验证结果为验证通过的次数或者为验证拒绝的次数大于第二阈值,则会显示验证码。
本公开实施方式还提供了一种反向图灵验证装置。参考图6所示,该反向图灵验证装置600可以包括设备标识获取模块610、历史信息查询模块620以及验证显示确定模块630。其中:
设备标识获取模块610可以配置为获取当前设备的设备标识。
历史信息查询模块620可以配置为若所述当前设备访问验证码页面,则根据所述设备 标识查询所述当前设备的历史验证信息。
验证显示确定模块630可以配置为根据所述历史验证信息确定是否在所述验证码页面显示验证码。
在示例性实施例中,所述历史验证信息可以包括所述当前设备历史上访问所述验证码界面的历史访问次数、历史验证结果和历史验证时间。
在示例性实施例中,验证显示确定模块630可以配置为:根据所述历史验证时间和所述历史验证结果确定时间窗口;若在所述时间窗口内所述历史验证结果为验证通过的次数大于第一阈值且小于第二阈值,则不在所述验证码页面显示验证码;其中,所述第二阈值大于所述第一阈值。
在示例性实施例中,验证显示确定模块630还可以配置为:若在所述时间窗口内所述历史验证结果为验证通过的次数或者为验证拒绝的次数大于所述第二阈值,则在所述验证码页面显示验证码。
在示例性实施例中,反向图灵验证装置600还可以配置为:若所述当前设备的浏览器环境信息发生改变,则在所述验证码页面显示验证码。
在示例性实施例中,反向图灵验证装置600还可以配置为:在所述验证码页面显示验证码;获取操作行为数据;通过机器学习模型对所述操作行为数据进行处理,获得响应于所述验证码的验证结果。
在示例性实施例中,设备标识获取模块610可以配置为:获取所述当前设备的浏览器环境信息;根据所述浏览器环境信息获得所述设备标识。
上述反向图灵验证装置中各模块的具体细节已经在对应的反向图灵验证方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本公开的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图2中所示的步骤S210:获取当前设备的设备标识;步骤S220:若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息;步骤S230:根据所述历史验证信息确定是否在所述验证码页面显示验证码。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式 可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特 网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (10)

  1. 一种反向图灵验证方法,包括:
    获取当前设备的设备标识;
    若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息;
    根据所述历史验证信息确定是否在所述验证码页面显示验证码。
  2. 根据权利要求1所述的反向图灵验证方法,其中,所述历史验证信息包括所述当前设备历史上访问所述验证码界面的历史访问次数、历史验证结果和历史验证时间。
  3. 根据权利要求2所述的反向图灵验证方法,其中,根据所述历史验证信息确定是否在所述验证码页面显示验证码,包括:
    根据所述历史验证时间和所述历史验证结果确定时间窗口;
    若在所述时间窗口内所述历史验证结果为验证通过的次数大于第一阈值且小于第二阈值,则不在所述验证码页面显示验证码;
    其中,所述第二阈值大于所述第一阈值。
  4. 根据权利要求3所述的反向图灵验证方法,其中,根据所述历史验证信息确定是否在所述验证码页面显示验证码,还包括:
    若在所述时间窗口内所述历史验证结果为验证通过的次数或者为验证拒绝的次数大于所述第二阈值,则在所述验证码页面显示验证码。
  5. 根据权利要求1所述的反向图灵验证方法,其中,还包括:
    若所述当前设备的浏览器环境信息发生改变,则在所述验证码页面显示验证码。
  6. 根据权利要求1所述的反向图灵验证方法,其中,还包括:
    在所述验证码页面显示验证码;
    获取操作行为数据;
    通过机器学习模型对所述操作行为数据进行处理,获得响应于所述验证码的验证结果。
  7. 根据权利要求1所述的反向图灵验证方法,其中,获取当前设备的设备标识,包括:
    获取所述当前设备的浏览器环境信息;
    根据所述浏览器环境信息获得所述设备标识。
  8. 一种反向图灵验证装置,包括:
    设备标识获取模块,配置为获取当前设备的设备标识;
    历史信息查询模块,配置为若所述当前设备访问验证码页面,则根据所述设备标识查询所述当前设备的历史验证信息;
    验证显示确定模块,配置为根据所述历史验证信息确定是否在所述验证码页面显示验证码。
  9. 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的反向图灵验证方法。
  10. 一种电子设备,包括:
    处理器;以及
    存储器,用于存储所述处理器的可执行指令;
    其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的反向图灵验证方法。
PCT/CN2019/101347 2019-06-19 2019-08-19 反向图灵验证方法及装置、存储介质、电子设备 WO2020252880A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910531607.5 2019-06-19
CN201910531607.5A CN110276183B (zh) 2019-06-19 2019-06-19 反向图灵验证方法及装置、存储介质、电子设备

Publications (1)

Publication Number Publication Date
WO2020252880A1 true WO2020252880A1 (zh) 2020-12-24

Family

ID=67961379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/101347 WO2020252880A1 (zh) 2019-06-19 2019-08-19 反向图灵验证方法及装置、存储介质、电子设备

Country Status (2)

Country Link
CN (1) CN110276183B (zh)
WO (1) WO2020252880A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933034A (zh) * 2019-10-28 2020-03-27 深圳市钱海网络技术有限公司 一种基于数字指纹的登录方法及装置
CN113301033B (zh) * 2021-05-14 2023-05-02 杭州顶象科技有限公司 轻量级业务侵入的验证码展示方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140250538A1 (en) * 2011-02-10 2014-09-04 Fireblade Ltd. DISTINGUISH VALID USERS FROM BOTS, OCRs AND THIRD PARTY SOLVERS WHEN PRESENTING CAPTCHA
CN105610806A (zh) * 2015-12-23 2016-05-25 北京奇虎科技有限公司 生成验证码的方法及装置
CN109688109A (zh) * 2018-11-21 2019-04-26 武汉极意网络科技有限公司 基于客户端信息识别的验证码的验证方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025106B (zh) * 2012-01-06 2017-05-10 卡皮公司 验证码提供方法
US9465927B2 (en) * 2012-10-02 2016-10-11 Disney Enterprises, Inc. Validating input by detecting and recognizing human presence
US9977892B2 (en) * 2015-12-08 2018-05-22 Google Llc Dynamically updating CAPTCHA challenges
CN106529269A (zh) * 2016-12-01 2017-03-22 微梦创科网络科技(中国)有限公司 一种安全验证方法及系统
CN109600336B (zh) * 2017-09-30 2021-09-21 武汉极意网络科技有限公司 验证码应用方法、装置和计算机可读存储介质
CN109902459B (zh) * 2017-12-11 2021-04-30 北京京东尚科信息技术有限公司 Web页面的人机识别验证方法、系统、设备和存储介质
CN108462704B (zh) * 2018-02-27 2019-08-06 平安科技(深圳)有限公司 登录验证方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140250538A1 (en) * 2011-02-10 2014-09-04 Fireblade Ltd. DISTINGUISH VALID USERS FROM BOTS, OCRs AND THIRD PARTY SOLVERS WHEN PRESENTING CAPTCHA
CN105610806A (zh) * 2015-12-23 2016-05-25 北京奇虎科技有限公司 生成验证码的方法及装置
CN109688109A (zh) * 2018-11-21 2019-04-26 武汉极意网络科技有限公司 基于客户端信息识别的验证码的验证方法及装置

Also Published As

Publication number Publication date
CN110276183B (zh) 2020-11-03
CN110276183A (zh) 2019-09-24

Similar Documents

Publication Publication Date Title
US20200304550A1 (en) Generic Event Stream Processing for Machine Learning
WO2020164268A1 (zh) 验证码生成方法、装置及存储介质、计算机设备
US20170004415A1 (en) Data extraction and analysis system and tool
US20180115464A1 (en) Systems and methods for monitoring and analyzing computer and network activity
US20210400075A1 (en) Determining risk metrics for access requests in network environments using multivariate modeling
EP4006909B1 (en) Method, apparatus and device for quality control and storage medium
US20210255914A1 (en) Proactive learning of network software problems
US11816584B2 (en) Method, apparatus and computer program products for hierarchical model feature analysis and decision support
WO2020164272A1 (zh) 上网设备的识别方法、装置及存储介质、计算机设备
WO2021196935A1 (zh) 数据校验方法、装置、电子设备和存储介质
WO2020232902A1 (zh) 异常对象识别方法、装置、计算设备和存储介质
WO2020252880A1 (zh) 反向图灵验证方法及装置、存储介质、电子设备
US11055480B2 (en) Crowd-source as a backup to asynchronous identification of a type of form and relevant fields in a credential-seeking web page
WO2016188334A1 (zh) 一种用于处理应用访问数据的方法与设备
US20230034085A1 (en) Score prediction using hierarchical attention
US20180314683A1 (en) Method and device for processing natural language
CN116661936A (zh) 页面数据的处理方法、装置、计算机设备及存储介质
US10726069B2 (en) Classification of log entry types
CN115250200B (zh) 服务授权认证方法及其相关设备
US12032906B2 (en) Method, apparatus and device for quality control and storage medium
US20230132670A1 (en) Metrics-based on-demand anomaly detection
US11671529B2 (en) Cross-channel configurable navigation
US11900110B2 (en) Increasing user interaction with deep learning agent
US20220383129A1 (en) Simulating service performance using machine learning
US20240070188A1 (en) System and method for searching media or data based on contextual weighted keywords

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19934265

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19934265

Country of ref document: EP

Kind code of ref document: A1