CN110892677A - 区分人类用户与软件机器人的系统和方法 - Google Patents

区分人类用户与软件机器人的系统和方法 Download PDF

Info

Publication number
CN110892677A
CN110892677A CN201780091830.1A CN201780091830A CN110892677A CN 110892677 A CN110892677 A CN 110892677A CN 201780091830 A CN201780091830 A CN 201780091830A CN 110892677 A CN110892677 A CN 110892677A
Authority
CN
China
Prior art keywords
image
text
software code
challenge
communication
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.)
Pending
Application number
CN201780091830.1A
Other languages
English (en)
Inventor
C·E·贝利
R·卢卡斯胡克
J·坎宁安
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mastercard Technologies Canada ULC
Original Assignee
Mastercard Technologies Canada ULC
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 Mastercard Technologies Canada ULC filed Critical Mastercard Technologies Canada ULC
Publication of CN110892677A publication Critical patent/CN110892677A/zh
Pending legal-status Critical Current

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
    • G06F21/36User authentication by graphic or iconic representation
    • 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
    • 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
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Numerical Control (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

本公开涉及一种用于区分人类用户与软件机器人的技术。该技术包括:从不同于至少一个计算机的设备接收第一通信;从第一通信中识别访问web资源的请求;向设备传输软件代码和位置信息,其中位置信息指定对质询文本的视觉表示进行编码的多个位置,并且其中软件代码在由互联网浏览器执行时使得多个图形元素在网页中的所述多个位置处被显示,使得网页显示质询文本;从设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。

Description

区分人类用户与软件机器人的系统和方法
背景技术
控制在线资源的实体可能希望允许人类用户访问web资源,同时限制或约束通过编程为模拟人类用户的软件机器人(或“bot”)对web资源的访问。例如,网站发布者(例如,电子商务或金融机构门户的发布者)可能希望约束bot访问网站的网页和/或经由网站进行交易。在bot构成安全威胁的环境中,期望能够约束bot进行的访问,同时继续向人类提供访问。例如,金融机构或电子商务门户网站的运营商可能希望阻止bot创建大量新账户并将这些新账户用于非法或邪恶目的,诸如网络钓鱼、欺骗和/或垃圾邮件。作为另一个示例,网站运营商可能希望阻止bot访问网页,以使该网站不会被bot流量所淹没,这可能会阻止人类用户访问该网站,就像在拒绝服务攻击期间的情况那样。
一种用于区分人类用户与bot的常规方法依赖于称为“CAPTCHA”的质询,这是代表“Completely Automated Public Turing Test to Tell Computers and Humans Apart(全自动区分计算机和人类的公共图灵测试)”的首字母缩写词。在常规的CAPTCHA质询中,表示变形(distorted)的文本串的图像被发送到用户的设备(例如,作为网页的GIF、JPG或PNG文件的一部分),用户的设备显示该图像供用户查看,然后用户输入并提交用户认为由图像表示的文本串(例如,使用网页中的文本字段)。当用户输入的文本串与图像表示的文本串匹配时,该用户被视为人类用户,并被允许访问web资源(例如,访问网页、执行交易、在讨论论坛中发帖等)。
发明内容
发明人已经认识到并且意识到,随着光学字符识别技术的最新改进,恶意实体可以通过使用软件bot下载代表变形的文本串的图像并将OCR技术应用于图像来快速且以高成功概率解答常规的CAPTCHA质询。为了解决这一威胁,发明人开发了新型的CAPTCHA质询,与常规的CAPTCHA质询相比,它更安全地抵御了软件bot的攻击。这些新型的CAPTCHA质询要求恶意实体使用大量计算资源来解答甚至单个CAPTCHA质询,并因此为希望进行大量攻击的恶意实体提供了很大的障碍。
一些实施例针对一种系统,该系统包括:至少一个计算机;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的经混洗的图像,所述生成包括:生成对质询文本进行编码的初始图像;将初始图像划分为图像部分;以及生成经混洗的图像作为所述图像部分的经混洗的布置;生成用于揭示编码在经混洗的图像中的质询文本的解码信息;经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种由至少一个计算机执行的方法,所述方法包括:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的经混洗的图像,所述生成包括:生成对质询文本进行编码的初始图像;将初始图像划分为图像部分;以及生成经混洗的图像作为所述图像部分的经混洗的布置;生成用于揭示编码在经混洗的图像中的质询文本的解码信息;经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的经混洗的图像,所述生成包括:生成对质询文本进行编码的初始图像;将初始图像划分为图像部分;以及生成经混洗的图像作为所述图像部分的经混洗的布置;生成用于揭示编码在经混洗的图像中的质询文本的解码信息;经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种设备,该设备包括:至少一个硬件处理器;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个硬件处理器执行时使得所述至少一个硬件处理器执行:向至少一个计算机并经由至少一个网络传输包括访问web资源的请求的通信;从所述至少一个计算机并经由所述至少一个网络接收对质询文本进行编码的经混洗的图像以及解码信息;使用经混洗的图像和解码信息向所述设备的用户显示质询文本;从所述设备的用户接收指定响应文本的输入;以及向所述至少一个计算机并经由所述至少一个网络传输包括响应文本的通信。
一些实施例针对一种系统,该系统包括:至少一个计算机;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:生成表示质询文本的解码信息;以及将解码信息存储在所述图像的透明通道中;经由所述至少一个网络将生成的图像传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种方法,该方法包括:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:生成表示质询文本的解码信息;以及将解码信息存储在所述图像的透明通道中;经由所述至少一个网络将生成的图像传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:生成表示质询文本的解码信息;以及将解码信息存储在所述图像的透明通道中;经由所述至少一个网络将生成的图像传输到所述设备;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种设备,包括:至少一个硬件处理器;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由至少一个硬件处理器执行时使得至少一个处理器执行:向至少一个计算机并经由至少一个网络传输包括访问web资源的请求的通信;从所述至少一个计算机并经由所述至少一个网络接收在图像的透明通道中对质询文本进行编码的所述图像;使用所述图像的透明通道中的解码信息向所述设备的用户显示质询文本;从所述设备的用户接收指定响应文本的输入;以及向所述至少一个计算机并经由所述至少一个网络传输包括响应文本的通信。
一些实施例针对一种系统,包括:至少一个计算机;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;经由所述至少一个网络将软件代码和位置信息传输到所述设备,其中位置信息指定对质询文本的视觉表示进行编码的多个位置,并且其中软件代码在由互联网浏览器执行时使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种由至少一个计算机执行的方法,所述方法包括:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;经由所述至少一个网络将软件代码和位置信息传输到所述设备,其中位置信息指定对质询文本的视觉表示进行编码的多个位置,并且其中软件代码在由互联网浏览器执行时使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种系统,包括:至少一个计算机;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;经由所述至少一个网络将软件代码传输到所述设备,其中软件代码在由互联网浏览器执行时:生成对质询文本进行编码的多个位置;以及使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;经由所述至少一个网络从所述设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
一些实施例针对一种由被配置为执行互联网浏览器的设备执行的方法,所述方法包括:向至少一个计算机传输访问web资源的请求;从所述至少一个计算机接收软件代码和指定对质询文本进行编码的多个位置的位置信息;使用互联网浏览器:执行软件代码;以及至少部分地通过在网页中的所述多个位置处显示多个图形元素来向所述设备的用户显示质询文本;响应于向用户显示质询文本,从用户接收输入文本;以及将包括输入文本的通信传输到所述至少一个计算机。
一些实施例针对一种系统,该系统包括:至少一个计算机;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码和隐藏的图像;生成用于揭示隐藏在图像中的质询文本的解码信息;经由至少一个网络将图像和解码信息传输到设备;经由至少一个网络从设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。
一些实施例针对一种由至少一个计算机执行的方法,该方法包括:经由至少一个网络从与至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码和隐藏的图像;生成用于揭示隐藏在图像中的质询文本的解码信息;经由至少一个网络将图像和解码信息传输到设备;经由至少一个网络从设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。
一些实施例针对至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:经由至少一个网络从与至少一个计算机不同的设备接收第一通信;从第一通信中识别访问web资源的请求;生成对质询文本进行编码和隐藏的图像;生成用于揭示隐藏在图像中的质询文本的解码信息;经由至少一个网络将图像和解码信息传输到设备;经由至少一个网络从设备接收第二通信;从第二通信中识别响应文本;以及基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。
一些实施例针对一种设备,包括:至少一个硬件处理器;以及至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由至少一个硬件处理器执行时使得至少一个处理器执行:向至少一个计算机传输包括访问web资源的请求的通信;从至少一个计算机接收解码信息以及对质询文本进行编码和隐藏的图像;使用图像和解码信息向设备的用户显示质询文本;从设备的用户接收指定响应文本的输入;以及向至少一个计算机传输包括响应文本的通信。
附图说明
将参考以下附图描述各个方面和实施例。应该认识到的是,附图不一定按比例绘制。
图1示出了其中可以实现本文描述的技术的各方面的说明性环境。
图2A是根据本文描述的技术的一些实施例的由至少一个服务器执行的用于确定设备是否可以访问web资源的说明性处理的流程图。
图2B是根据本文描述的技术的一些实施例的由至少一个服务器执行的用于确定设备是否可以访问web资源的另一个说明性处理的流程图。
图3是根据本文描述的技术的一些实施例的由设备执行的用于访问web资源的说明性处理的流程图。
图4A图示了根据本文描述的技术的一些实施例的示例图像的图像部分。
图4B图示了根据本文描述的技术的一些实施例的图4A中示出的图像部分的经混洗的布置(shuffled arrangement)。
图4C图示了根据本文描述的技术的一些实施例的映射,该映射指示如何重新布置图4B的经混洗的布置以获得图4A所示的图像部分的布置。
图4D图示了根据本文描述的技术的一些实施例的初始图像。
图4E图示了根据本文描述的技术的一些实施例的图4D的初始图像的图像部分的经混洗的布置。
图5A图示了根据本文描述的技术的一些实施例的图像文件数据在包括彩色通道和透明通道的多个通道中的存储。
图5B图示了根据本文描述的技术的一些实施例的示例图像,其表示文本串,被存储在图像文件的彩色通道中。
图5C图示了根据本文描述的技术的一些实施例的另一个示例图像,其表示另一个文本串(与图5B所示的不同),其可以使用存储在图像文件的透明通道中的解码信息来生成。
图6是根据本文描述的技术的一些实施例的由至少一个服务器执行的用于确定设备是否可以访问web资源的另一个说明性处理的流程图。
图7A图示了根据本文描述的技术的一些实施例的要使用网页的图形元素来编码的质询文本。
图7B图示了根据本文描述的技术的一些实施例的位置信息,该位置信息指定对图7A的质询文本的视觉表示进行编码的多个位置。
图7C图示了根据本文描述的技术的一些实施例的多个图形元素,这些图形元素在根据图7B的位置信息将其显示为网页的一部分时形成图7A的质询文本。
图7D图示了根据本文描述的技术的一些实施例的示出图7A的质询文本的网页。
图8图示了根据本文描述的技术的一些实施例的示例软件代码,其可以响应于来自设备的访问web资源的请求而被传输到设备。
图9A图示了根据本文描述的技术的一些实施例随时间改变质询文本。
图9B图示了根据本文描述的技术的一些实施例的质询文本随时间改变颜色。
图9C图示了根据本文描述的技术的一些实施例的质询文本随时间改变位置。
图10是根据本文描述的技术的一些实施例的由设备执行的用于访问web资源的另一个说明性处理的流程图。
图11示意性地示出了可以在其上实现本文描述的技术的任何方面的说明性计算机1100。
具体实施方式
发明人已经认识并意识到克服在线系统上的复杂攻击的各种技术质询。此类系统越来越多地遭受更复杂的攻击和技术漏洞利用。这带来了技术挑战,特别是考虑到现代在线系统处理的数字交互总量大。
发明人已经认识并意识到,依赖于常规CAPTCHA质询以实现安全性(例如,区分人类用户与bot)的系统可以被恶意实体利用,并且可以得到改进。恶意实体可以通过使用软件bot下载表示变形的文本串的图像并应用光学字符识别(OCR)技术来识别变形的文本来解答常规的CAPTCHA质询。作为对广泛使用的OCR技术的持续改进的结果,软件bot可以以很高的成功概率解答常规的CAPTCHA质询(例如,通过正确识别质询中的变形的文本)。依靠常规动画CAPTCHA质询的系统也容易受到软件bot的攻击。动画CAPTCHA质询包含一系列静态图像,这些静态图像用于生成动画效果。软件bot可以下载一系列静态图像,然后使用OCR技术来解答CAPTCHA质询。
发明人还认识并意识到,将OCR技术应用于表示变形的文本串的图像不要求显示图像,更不用说包含图像的网页了,这使得软件bot无需使用大量的计算资源即可解答常规的CAPTCHA质询。例如,从CAPTCHA图像中提取文本而不必实际显示图像文件(例如,通过创建互联网浏览器的实例来显示包含CAPTCHA图像的网页)允许使用计算资源有限的廉价web服务器执行基于OCR的CAPTCHA攻击。而且,可以容易地对市售的OCR技术编写脚本,以执行批量操作,并将其应用于大量常规CAPTCHA图像。这使恶意实体无需投资昂贵的计算资源即可解答大量常规CAPTCHA质询。因此,恶意实体可以使用OCR以低成本执行大量攻击。
因而,发明人已经开发出新型的CAPTCHA质询,与常规的CAPTCHA质询相比,它可以更安全地抵御软件bot的攻击。虽然这些新型的CAPTCHA质询可以由软件bot自动解答,但它们被设计为要求软件bot花费大量计算资源才能做到这一点。例如,发明人开发的一些类型的CAPTCHA质询要求针对要解答的每个CAPTCHA质询启动互联网浏览器的实例。启动互联网浏览器的实例要求比使用OCR解答常规CAPTCHA质询(例如,10兆字节)的软件bot所使用的存储器量大一个数量级(例如,超过100兆字节)的存储器量。作为另一个示例,发明人开发的一些类型的CAPTCHA质询要求使用专用硬件(诸如图形处理单元(GPU))来解答质询。恶意实体通常用来解答常规CAPTCHA质询的廉价web服务器可能不包括任何此类专用硬件。通过要求恶意实体使用相当大量的计算资源来解答甚至单个CAPTCHA质询,本文描述的CAPTCHA技术对希望执行大量攻击的恶意实体提供了重大障碍。
本文描述的一些实施例解决了发明人已经认识到的用于区分人类用户与bot的基于常规CAPTCHA的所有上述问题。但是,应当意识到的是,并非本文描述的每个实施例都解决了这些问题中的每一个。还应当意识到的是,本文描述的技术的实施例可以用于解决除用于区分人类用户与bot的基于常规CAPTCHA的方法的上述问题以外的目的。
因而,与由常规CAPTCHA质询技术所提供的相比,一些实施例涉及提供更高程度的安全性以对抗使用软件bot的恶意实体的攻击的CAPTCHA技术。
在一些实施例中,系统可以通过以下步骤来执行CAPTCHA质询技术:(1)从发出请求的设备接收通信;(2)在通信中识别访问web资源的请求;(3)获得对质询文本进行编码和隐藏的图像,以及发出请求的设备可以用来从图像中提取隐藏的质询文本的解码信息;(4)将图像和解码信息传输到发出请求的设备;(5)从发出请求的设备接收响应通信;(6)从响应通信中识别响应文本;以及(7)如果响应文本与质询文本匹配,那么向发出请求的设备提供对所请求的web资源的访问。
在一些实施例中,仅显示对质询文本进行编码和隐藏的图像将不会揭示质询文本。因此,将常规的OCR技术应用于对质询文本进行编码和隐藏的图像将不会识别隐藏在图像中的质询文本。更确切地说,发出请求的设备需要使用解码信息来处理图像以便提取隐藏的质询文本,这可能要求使用一个或多个应用程序的实例(例如,互联网浏览器的实例)和/或专用硬件(例如,GPU)。
在一些实施例中,执行CAPTCHA质询技术的系统还可以将软件代码传输到发出请求的设备。当由发出请求的设备执行时,软件代码可以使用解码信息来提取和/或促进显示在图像中编码的质询文本。例如,软件代码可以包括当由在被请求设备上运行的互联网浏览器执行时可以提取和/或促进显示在图像中编码的质询文本的软件代码(例如,JAVASCRIPT代码)。
在一些实施例中,解码信息:(1)可以是对质询文本进行编码和隐藏的图像的一部分;(2)可以包括表示质询文本的数据。例如,在一些实施例中,可以在诸如例如彩色通道(例如,红色、绿色和蓝色通道)和透明通道(有时称为“Alpha”通道)之类的多个通道中组织对质询文本进行编码和隐藏的图像中的数据。解码信息可以完全存储在诸如例如透明通道之类的多个通道之一中,并且可以包括表示质询文本的值(例如,像素值)。当在白色背景上显示图像时,不会示出在透明通道中编码和隐藏的质询文本。因而,为了揭示质询文本,在一些实施例中,互联网浏览器可以执行软件代码(例如,JAVASCRIPT)以从透明通道提取数据,并使用这些数据来生成包含质询文本的图像(例如,使用HTML元素和/或OpenGL元素)。
在一些实施例中,在其透明通道中对质询文本进行编码和隐藏的图像还可以在其其它(例如,RGB)通道中存储表示不同的“伪造的”质询文本的信息。以这种方式,当在白色背景上显示图像时,不会示出真正的质询文本,而是示出伪造的质询文本。这个特征对于识别解答CAPTCHA质询的恶意尝试可以是有用的。例如,软件bot可能不知道真正的质询文本隐藏在图像的透明通道中,并且会提取伪造的质询文本并将其发送到尝试访问的系统。当系统检测到伪造的质询文本已发回时,它可以拒绝发出请求的设备的访问。
因而,在一些实施例中,系统可以通过以下步骤来执行CAPTCHA质询技术:(1)经由至少一个网络从设备接收通信;(2)从通信中识别访问web资源的请求;(3)生成对质询文本进行编码的图像,该图像包括存储在包括透明通道的多个通道中的数据,该生成包括:生成表示质询文本的解码信息(例如,解码信息可以包括用于一个或多个像素位置的饱和度值);以及将解码信息存储在图像的透明通道中;(4)经由至少一个网络将生成的图像传输到设备;(5)经由至少一个网络接收来自设备的第二通信;(6)从第二通信中识别响应文本;以及(7)基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。
在一些实施例中,该技术还包括从至少一个计算机向设备发送软件代码。当由在设备上执行的互联网浏览器执行时,该软件代码使用图像的透明通道中的解码信息来使图形元素显示在网页中,使得网页显示质询文本。图形元素可包含一个或多个HTML元素(例如,HTML canvas元素和HTML span元素)和/或一个或多个OpenGL元素。在一些实施例中,软件代码可以包括可以由设备中的至少一个图形处理单元(GPU)执行以渲染图形元素的OpenGL指令。
在一些实施例中,可以以不同于在图像的透明通道中存储质询文本的表示的方式在图像中对质询文本进行编码和隐藏。例如,在一些实施例中,可以在两个步骤中生成对质询文本进行编码和隐藏的图像。首先,可以将对质询文本进行编码的初始图像(例如,质询文本的图片)划分为图像部分。接下来,可以在空间上对图像部分进行混洗以获得对质询文本进行编码和隐藏的图像。以这种方式,对质询文本进行编码和隐藏的图像可以是初始图像的图像部分的经混洗的布置。在此类实施例中,解码信息可以指定如何重新布置(“去混洗(unshuffle)”)图像部分的经混洗的布置,以获得初始图像并显示隐藏的质询文本。
因而,在一些实施例中,系统可以通过以下步骤来执行CAPTCHA质询技术:(1)经由至少一个网络从设备接收通信;(2)从通信中识别访问web资源的请求;(3)生成对质询文本进行编码的经混洗的图像,该生成包括:生成对质询文本进行编码的初始图像;将初始图像划分为图像部分;以及生成经混洗的图像作为图像部分的经混洗的布置(例如,通过随机地重新布置图像部分);(4)生成用于揭示编码在经混洗的图像中的质询文本的解码信息;(5)经由至少一个网络将经混洗的图像和解码信息传输到设备;(6)经由至少一个网络从设备接收另一个通信;(7)从另一个通信中识别响应文本;以及(8)基于质询文本与响应文本之间的比较来给设备提供对web资源的访问。
在一些实施例中,该技术包括将软件代码传输到设备,该软件代码在由设备执行时使用解码信息来促进由设备显示编码在经混洗的图像中的质询文本。该软件代码可以是由设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
在一些实施例中,生成解码信息可以包括生成映射,该映射指定如何重新布置图像部分的经混洗的布置以获得初始图像。例如,生成映射可以包括:生成第一信息,该第一信息为图像部分的经混洗的布置中的第一图像部分指定在初始图像中的第一位置;以及生成第二信息,该第二信息为图像部分的经混洗的布置中的第二图像部分指定在初始图像中的第二位置,其中第一位置不同于第二位置,并且其中第一图像部分不同于第二图像部分。
在一些实施例中,发出请求的设备(例如,用户的客户端设备)可以:(1)向服务器发送访问web资源的请求;(2)从服务器接收对质询文本进行编码和隐藏的图像以及相关联的解码信息;(3)使用解码信息向用户显示质询文本(例如,经由与发出请求的设备耦合的显示器通过使用互联网浏览器向用户显示质询文本);(4)从用户接收响应文本;以及(5)将响应文本传输到服务器。
在一些实施例中,发出请求的设备可以在其透明通道中接收对质询文本进行编码和隐藏的图像。然后,发出请求的设备可以访问透明通道中的数据,并使用这些数据向用户显示质询文本。在一些实施例中,发出请求的设备可以从服务器接收软件代码(例如,JAVASCRIPT),当该软件代码被发出请求的设备上的互联网浏览器执行时,将访问透明通道中的数据并使用这些数据来向用户显示质询文本。例如,透明度通道中的数据可以指示一个或多个像素中的每个像素的饱和度值,并且软件代码可以基于饱和度值在像素处生成图形元素(例如,HTML和/或OpenGL元素)(例如,HTML元素可以在像素的位置处生成,并且HTML元素的颜色可以基于饱和度值指派)。
在一些实施例中,发出请求的设备可以接收:(1)作为表示质询文本的初始图像的图像部分的经混洗的布置的图像;以及(2)指定映射的信息的解码信息,该映射指示如何重新布置经混洗的布置以揭示初始图像。发出请求的设备可以通过根据由解码信息指定的映射重新布置图像部分的经混洗的布置来显示质询文本。在一些实施例中,发出请求的设备可以从服务器接收软件代码(例如,JAVASCRIPT),当该软件代码由发出请求的设备上的互联网浏览器执行时,将重新布置图像部分的经混洗的布置以揭示初始图像和隐藏在其中的质询文本。
在一些实施例中,系统可以在不向请求访问web资源的发出请求的设备发送与质询文本相关联(例如,表示和/或隐藏质询文本)的任何图像的情况下执行CAPTCHA质询技术。代替地,系统可以向发出请求的设备发送软件代码,当该软件代码由在发出请求的设备上执行的互联网浏览器执行时,将使得多个图形元素(例如,span元素、HTML canvas元素;通过执行OpenGL指令而被渲染的元素)在网页上特定位置显示,以使质询文本显示在网页中。在此类实施例中,由于不存在与质询文本相关联的图像,因此软件bot将无法仅通过下载图像并将OCR技术应用于其来识别质询文本。
在一些实施例中,系统可以通过以下步骤来执行CAPTCHA质询技术:(1)从发出请求的设备(例如,用户的客户端设备)接收通信,并从该通信中识别访问web资源的请求;(2)将软件代码和位置信息传输到发出请求的设备,该位置信息指定对质询文本的视觉表示进行编码的多个位置(该位置信息例如可以包括位置坐标),该软件代码在由在发出请求的设备上执行的互联网浏览器执行时使得多个图形元素(例如,span元素、HTML canvas元素、通过使用图形处理单元(例如,通过执行OpenGL指令)生成的元素)显示在网页中的多个位置,从而使得显示质询文字;(3)从发出请求的设备接收第二通信并从第二通信中识别响应文本;以及(4)基于质询文本与响应文本之间的比较来向发出请求的设备提供对所请求的web资源的访问。
在一些实施例中,执行CAPTCHA质询技术的系统可以生成位置信息和软件代码。该系统还可以生成包括位置信息和软件代码的网页,并且可以将生成的网页传输到发出请求的设备。进而,在发出请求的设备上执行的互联网浏览器可以执行网页中的软件代码,使得多个图形元素显示在网页中由位置信息指定的位置处,这进而使得质询文本显示在网页中。软件代码还可以将图形元素的视觉特点(例如,颜色、阴影、不透明度、尺寸等)设置为与网页背景的视觉特点不同,以便在发出请求的设备上显示质询文本。例如,软件代码可以将至少一些(例如,全部)图形元素的颜色设置为与网页的背景颜色不同。
在一些实施例中,软件代码可以被配置为当由互联网浏览器执行时在不同的时间将图形元素的颜色设置为不同的颜色。在一些实施例中,当由互联网浏览器执行时,软件代码可以使网页最初显示与质询文本不同的第一文本,并且随后在阈值时间量之后显示质询文本。
在一些实施例中,执行CAPTCHA质询的系统可以使用质询令牌(例如,单次使用质询令牌)来验证从与向其发送CAPTCHA质询的设备相同的设备接收到的响应。例如,在从发出请求的设备接收到第二通信后,系统可以在第二通信中识别质询令牌并且使用识别出的质询令牌来验证第二通信。在一些实施例中,质询令牌可以包括特定于质询文本的通信的时间戳和/或安全密钥。系统可以核实通信的时间戳在将CAPTCHA质询发送到发出请求的设备的时间的有效时间范围内。附加地或可替代地,系统可以核实安全密钥与和质询文本相关联的密钥相匹配。
在一些实施例中,不是将软件代码和位置信息发送到发出请求的设备,系统可以发送被配置为在位置集合处显示图形元素以示出质询文本的软件代码。该软件代码可以包括指定位置集合的信息(例如,作为参数、配置数据、程序指令等),并且系统不需要与软件代码分开传输位置信息。
在一些实施例中,软件代码可以被配置为在由互联网浏览器执行时在初始时间生成位置坐标并且随后改变位置坐标。位置坐标可以例如在初始时间之后不定期地改变。以这种方式,质询文本的位置、外观和/或内容可以以非重复的方式随时间变化。
在一些实施例中,发出请求的设备(例如,用户的客户端设备)可以:(1)向服务器发送访问web资源的请求;(2)从服务器接收软件代码并且,在一些实施例中,接收位置信息;(3)使用互联网浏览器执行软件代码(例如,在接收位置信息的实施例中,通过向软件代码提供位置信息)向用户显示质询文本,例如通过在使用软件代码以及可选地使用位置信息确定的多个位置处显示图形元素(例如,span元素、HTML canvas元素、通过使用软件代码中的解释OpenGL指令的GPU而生成的元素);(4)从用户接收响应文本;以及(5)将响应文本传输到给服务器。
应当意识到的是,可以以多种方式中的任何一种来实现上面介绍的和下面更详细讨论的技术,因为该技术不限于任何特定的实现方式。本文仅出于说明目的提供实施方式的细节的示例。此外,由于本文描述的技术的各方面不限于使用任何特定技术或技术组合,因此本文公开的技术可以单独使用或以任何合适的组合使用。
图1图示了其中可以实现本文描述的技术的各方面的说明性环境100。说明性环境100包括系统110和经由网络130通信地耦合到系统110的客户端设备120。系统110包括质询文本系统112和服务器114。网络130可以是互联网、局域网、广域网和/或任何其它合适类型的通信网络,因为本文描述的技术的方面在这方面不受限制。
在一些实施例中,用户可以使用客户端设备120来参与与服务器114的一个或多个数字交互。在一些实例中,在与服务器114的数字交互期间,用户可以请求访问web资源。例如,用户可以请求访问由服务器114托管和/或可通过服务器114访问的网页。作为另一个示例,用户可以请求在由服务器114托管和/或通过其可访问的网站上执行交易(例如,进行购买、创建账户、将钱从一个账户转到另一个账户等)。作为另一个示例,用户可以至少部分地通过使用服务器114来请求检查电子邮件、下载多媒体内容(例如,图像、视频、音乐文件)、流式传输多媒体内容和/或参与在线游戏。114。应当意识到的是,除了上面提到的那些资源之外,或者作为其代替,用户还可以请求访问任何其它合适类型的web资源,因为本文描述的技术的各方面不限于任何(一个或多个)特定类型的web资源。
还应当意识到的是,除了上面提到的那些之外或者作为其代替,客户端设备120的用户还可以参与其它类型的数字交互,因为本文描述的技术的各方面不限于对任何特定类型的数字交互的分析。而且,数字交互不限于经由互联网连接进行的交互。例如,数字交互可以涉及通过租用的电话线的ATM交易。
在一些实施例中,在客户端设备120与服务器114之间的数字交互期间,客户端设备120可以向服务器114发送通信,以请求访问web资源的许可。在一些实施例中,可以从在客户端设备120上执行的应用程序和/或操作系统发送通信。例如,在一些实施例中,响应于客户端设备120的用户点击由互联网浏览器显示的网页中的链接,可以由在客户端设备120上执行的互联网浏览器将请求访问web资源的许可的通信发送到服务器114。但是,应当意识到的是,访问web资源的请求不限于通过用户点击链接来触发,并且可以以任何其它合适的方式来触发。
如本文所讨论的,在一些实施例中,可能期望允许人类用户访问一个或多个web资源并限制非人类行动者(诸如软件bot和/或脚本)对这些web资源的访问。因而,在一些实施例中,响应于从客户端设备120接收到包括访问web资源的请求的通信,系统114可以向客户端设备120发送质询以努力确定是否是人类用户正在尝试访问web资源或通信是否是由(例如,恶意的)软件bot生成。在一些实施例中,系统114可以在将质询传输到客户端设备120之前从质询文本系统112获得质询。随后,服务器114可以从客户端设备120接收对质询的响应。基于接收到的对质询的响应,服务器114可以允许客户端设备120访问所请求的web资源。
在一些实施例中,质询可以是任何合适类型的CAPTCHA质询,包括本文描述的任何类型的CAPTCHA质询。例如,CAPTCHA质询可以包括对质询文本进行编码和隐藏的图像以及用于揭示隐藏在图像中的质询文本的解码信息。根据本文描述的技术的一些实施例,在接收到图像和解码信息后,客户端设备120可以使用解码信息来揭示隐藏在图像中的质询文本。作为另一个示例,可以在不使用对质询文本进行编码的图像的情况下将CAPTCHA质询传送到客户端设备120。更确切地说,在一些实施例中,服务器114可以向客户端设备120发送软件代码,当该软件代码由客户端设备120上的互联网浏览器执行时,使得互联网浏览器显示质询文本。例如,在一些实施例中,当软件代码由互联网浏览器执行时,其可以被配置为在网页中的指定位置集合处显示多个图形元素(例如,span元素、HTML canvas元素、OpenGL元素),使得网页显示质询文本。
在一些实施例中,服务器114可以生成CAPTCHA质询、将CAPTCHA质询发送到客户端设备120、从客户端设备120接收对CAPTCHA质询的响应,并确定该响应是否包括对CAPTCHA质询的正确回应。在一些实施例中,服务器114可以自己执行所有这些动作。在其它实施例中,服务器114可以与质询文本系统112交互以执行这些动作中的一个或多个。例如,在一些实施例中,质询文本系统112可以生成CAPTCHA质询和/或核实对CAPTCHA质询的响应是否正确。
因而,在一些实施例中,响应于从客户端设备120接收到访问web资源的请求,服务器114可以从质询文本系统112请求质询(例如,CAPTCHA质询)。(在其它实施例中,质询文本系统112可以已经向服务器114提供了一个或多个质询以供后续使用,并在服务器114从客户端设备接收访问web资源的请求之前完成了此操作)。服务器114可以:(1)将由质询文本系统112生成的质询提供给客户端设备120;(2)从客户端设备120接收对质询的响应;(3)将接收到的响应发送到质询文本系统112进行验证;以及(4)从质询文本系统112接收指示对质询文本的响应是否有效的信息。例如,如果响应包括与质询文本的文本匹配的文本,那么质询文本系统112可以确定对质询的响应是有效的。当服务器114从质询文本系统112接收到指示对质询的响应是有效的信息时,服务器114可以向客户端设备120提供对所请求的web资源的访问。
在其它实施例中,不是将质询转发到服务器114并验证由客户端设备向服务器114提供的响应,而是质询文本系统112可以直接与客户端设备120交互。例如,在一些实施例中,响应于从服务器114接收到客户端设备120已请求访问web资源的通知,质询文本系统112可以:(1)向客户端设备120传输质询;(2)从客户端设备120接收对质询的响应;以及(3)验证响应。在此类实施例中,当质询文本系统112确定对质询的响应是正确的时,质询文本系统112可以向服务器114提供客户端设备已经通过验证的指示。作为响应,服务器114可以向客户端设备120提供对所请求的web资源的访问。
在一些实施例中,质询文本系统112可以包括一个或多个计算设备(例如,一个或多个服务器)。(一个或多个)计算设备可以被配置为执行被配置为生成本文所述类型的一个或多个CAPTCHA质询和/或验证对CAPTCHA质询的响应的软件。
在一些实施例中,服务器114可以包括一个或多个计算设备(例如,一个或多个服务器)。因此,服务器114可以被配置为在单个或多个设备上托管一个或多个服务和/或应用。在一些实施例中,服务器114可以托管和/或提供对任何合适类型的一个或多个网站的访问。例如,网站可以包括静态内容(例如,静态网页、图像、文件)和/或动态内容(例如,流式传输的内容、与时间相关的内容)。作为另一个示例,网站可以允许用户参与交易(例如,开设账户、进行购买、转账等)。
在一些实施例中,客户端设备120可以是便携式设备。例如,客户端设备120可以是膝上型计算机、台式计算机、智能电话、个人数字助理、智能手表和/或能够请求访问web资源的任何其它类型的便携式设备。在其它实施例中,客户端设备120可以是固定设备。例如,客户端设备120可以是台式计算机、机架式计算机和/或能够请求访问web资源的任何其它类型的便携式设备。
图2A是用于确定设备是否可以访问web资源的说明性处理200的流程图。处理200可以由任何合适的系统和/或(一个或多个)计算设备执行,并且例如可以由参考图1描述的系统110执行。
处理200开始于动作202,其中执行处理200的系统经由至少一个网络从发出请求的设备(例如,参考图1描述的客户端设备120)接收通信。在一些实施例中,通信可以由在发出请求的设备上执行的应用程序和/或操作系统生成。例如,通信可以由任何适当类型的互联网浏览器生成。在一些实施例中,可以响应于用户点击由互联网浏览器显示的网页中的链接或者响应于任何其它合适的触发而由在发出请求的设备上执行的互联网浏览器来生成通信。通信可以包括访问web资源的请求。本文提供了web资源的示例。通信可以符合任何合适的通信协议并且可以是任何合适的格式,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理200前进到动作204,其中执行处理200的系统从通信中识别访问web资源的请求。在一些实施例中,系统可以分析在动作202处接收到的通信并且检测到用户已经请求访问具体的web资源。例如,通信可以包括与用户已经在网站上选择的对象相关联的信息。该对象可以是统一资源定位符(URL)。基于所选择的URL,系统可以识别访问特定web资源的请求。但是,应当意识到的是,可以以任何其它合适的方式从通信中识别访问web资源的请求,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理200前进到动作206、208和210,其中执行处理200的系统生成CAPTCHA质询并将生成的质询传输到发出请求的设备。特别地,在动作206处,系统通过生成对质询文本进行编码的经混洗的图像来生成对质询文本进行编码和隐藏的图像。在动作208处,系统生成可以被发出请求的设备用来揭示隐藏在经混洗的图像中的质询文本的解码信息。在动作210处,将生成的经混洗的图像和解码信息传输到发出请求的设备。
在一些实施例中,在动作206处,可以将对质询文本进行编码的经混洗的图像生成为表示质询文本的初始图像的图像部分的经混洗的布置(例如,初始图像可以是质询文本的图片)并且解码信息可以指定如何重新布置图像的各部分以恢复初始图像,使得可以揭示质询文本。
例如,在一些实施例中,可以通过以下步骤生成对质询文本进行编码的经混洗的图像:(1)获得表示(但不隐藏)质询文本的初始图像;(2)将初始图像划分为多个图像部分;(3)将图像部分相对于彼此在空间上重新布置,以便隐藏由初始图像表示的质询文本。例如,如图4A和4B中所示,初始图像402可以被划分为10个部分(布置为2×5网格),并且这些部分可以相对于彼此在空间上重新布置以获得经混洗的布置404。作为另一个示例,如图4E中所示,图4D中所示并且表示质询文本“APWW”的初始图像408可以被划分为图像部分,并且这些部分可以相对于彼此在空间上重新布置以获得经混洗的布置410。如从图4E的说明性示例可以看出的,生成诸如图像410之类的加扰图像有效地防止自动软件bot仅使用原始图像就识别质询文本。初始图像可以被划分为任何合适数量的部分,因为本文描述的技术的各方面在这方面不受限制。初始图像的图像部分可以以随机次序(例如,通过使用来自随机数生成器和/或伪随机数生成器的输出)或以任何其它合适的方式重新布置,因为本文描述的技术是不受限于重新布置初始图像的部分以获得对质询文本进行编码的经混洗的图像的方式。
在一些实施例中,在动作208处生成的解码信息可以指定用于如何重新布置经混洗的布置的部分以恢复表示质询文本的初始图像的映射。这样的映射406的说明性示例在图4C中示出,其可以用于重新布置经混洗的布置404中的图像部分以获得初始图像402。可以创建类似的映射以从图4E中所示的经混洗的布置410还原为图4D中所示的初始图像408。虽然图4C中示出的映射是表格,但是应当意识到的是,可以使用任何合适的(一个或多个)数据结构和/或以任何合适的格式来实现这种映射,因为本文描述的技术的各方面在这方面不受限制。例如,在一些实施例中,映射406可以包括一系列指令(例如,“将块1向左移动3个位置,将块2向下方移动1个位置,等等”)。指令可以是任何合适的格式,并且被配置为处理指令以重新布置经混洗的布置以便揭示质询文本的软件可以被配置为解析该指令。
在动作210处,可以将对质询文本进行编码的经混洗的图像(在动作206处生成)和解码信息(在动作208处生成)传输到发出请求的设备。在一些实施例中,执行处理200的系统可以附加地向发出请求的设备发送软件代码,该软件代码在被发出请求的设备(例如,通过在发出请求的设备上执行的互联网浏览器或其它应用程序)执行时可以通过使用解码信息从经混洗的图像中产生初始图像。例如,软件代码在被执行时可以通过使用解码信息中的映射来重新布置经混洗的图像的部分。在一些实施例中,软件代码可以作为网页的一部分被传输到发出请求的设备,但这不是对本文描述的技术的各方面的限制。在一些实施例中,软件代码可以是脚本(例如,以JAVASCRIPT编写的)或应用程序(例如,Java applet),和/或以任何合适的脚本和/或编程语言编写的任何其它合适类型的软件代码。
在动作210将CAPTCHA质询传输到发出请求的设备之后,执行处理200的系统可以在动作212处从发出请求的设备接收响应通信。通信可以包括响应文本,该响应文本声称是对CAPTCHA质询的解答。例如,响应文本可以是响应于发出请求的设备被呈现有质询文本的图像而由发出请求的设备的人类用户输入的文本。在一些实施例中,通信还可以包括与CAPTCHA质询相关联的令牌。令牌可以包括时间戳(例如,指示生成响应的时间的时间戳)和/或特定于质询文本的安全密钥。系统可以使用令牌来核实对CAPTCHA质询的响应是对所传输的CAPTCHA质询的响应(与某个其它CAPTCHA质询相对)并且它是在将CAPTCHA质询发送到发出请求的设备的阈值时间内生成的。
接下来,在动作214处,从在动作212处接收的通信中识别响应文本。可以将响应文本与质询文本进行比较,以确定响应文本是否与质询文本匹配。在一些实施例中,当响应文本与质询文本完全匹配时,执行处理200的系统可以准许发出请求的设备访问所请求的web资源,而当响应文本与质询文本不完全匹配时,拒绝访问。在其它实施例中,不需要完全匹配,并且可以指定错误的阈值数量。例如,当响应文本与质询文本之间的错误数量低于错误的阈值数量(例如,一个错误、两个错误或三个错误)时,执行处理200的系统可以允许发出请求的设备访问所请求的web资源,而当响应文本和质询文本之间的错误数量大于(或大于或等于)错误的阈值数量时,拒绝访问。
应当意识到的是,处理200是说明性的,并且存在变化。例如,虽然在图2A所示的实施例中对质询文本进行编码的经混洗的图像和相关联的解码信息是在处理200期间生成的,但是在其它实施例中,经混洗的图像和相关联的解码信息可以在开始执行处理200之前生成。在此类实施例中,在处理200期间,在动作206和208处访问先前生成的图像和解码信息。
图2B是用于确定设备是否可以访问web资源的说明性处理250的流程图。处理250可以由任何合适的系统和/或(一个或多个)计算设备执行,并且例如可以由参考图1描述的系统110执行。
处理250开始于动作252,其中执行处理250的系统经由至少一个网络从发出请求的设备(例如,参考图1描述的客户端设备120)接收通信。通信可以由在发出请求的设备上执行的应用程序和/或操作系统生成。例如,通信可以由任何合适类型的互联网浏览器生成。在一些实施例中,可以响应于用户点击由互联网浏览器显示的网页中的链接或者响应于任何其它合适的触发而由在发出请求的设备上执行的互联网浏览器来生成通信。通信可以包括访问web资源的请求。本文提供了web资源的示例。通信可以符合任何合适的通信协议,并且可以是任何合适的格式,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理250前进到动作254,其中执行处理250的系统从通信中识别访问web资源的请求。在一些实施例中,系统可以分析在动作252处接收到的通信并且检测到用户已经请求访问具体的web资源。例如,通信可以包括与用户已经在网站上选择的对象相关联的信息。该对象可以是统一资源定位符(URL)。基于所选择的URL,系统可以识别访问特定web资源的请求。但是,应当意识到的是,可以以任何其它合适的方式从通信中识别访问web资源的请求,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理250前进到动作255和260,其中执行处理250的系统生成CAPTCHA质询并将生成的质询传输到发出请求的设备。特别地,在动作255处,系统生成将质询文本编码为存储在图像的透明通道中的元数据的图像。在动作260处,生成的图像被传输到发出请求的设备。发出请求的设备可以从生成并传输的图像的透明通道中提取元数据,以揭示质询文本。
在一些实施例中,在动作255处生成对质询文本进行编码的图像包括:(1)在动作256处生成表示质询文本的解码信息;以及(2)在动作258处将生成的解码信息存储在多通道图像的透明通道中。解码信息可以为图像像素中的至少一些(例如,全部)中的每一个存储饱和度值(例如,介于0和255之间的值)。多通道图像可以在生成的图像的颜色通道中存储表示与质询文本不同的文本的图像的数据。
例如,在一些实施例中,在动作255处生成对质询文本进行编码的图像包括:(1)在动作256处生成表示质询文本的解码信息;(2)创建包括多个数据通道的多通道图像,这些数据通道包括一个或多个彩色通道(例如,红色、绿色和蓝色通道)和透明通道(有时称为“alpha”通道);(3)将解码信息存储在多通道图像的透明通道中;以及(4)在多通道图像的(一个或多个)彩色通道中存储另一个图像。
例如,可以将表示质询文本“PARP”的解码信息存储在图5A中所示的多通道图像的alpha通道510中。包含伪造的质询文本“RRZC”的不同图像可以存储在这个多通道图像的彩色通道520、530和540中。因此,如图5B中所示,当在白色背景上显示图5A的多通道图像(透明度无关紧要)时,包含伪造的质询文本“RRZC”552的图像550被显示。另一方面,可以提取存储在多通道图像的alpha通道中的元数据并将其用于显示实际的质询文本“PARP”,如图5C的显示580中所示。所显示的质询文本的分辨率可以低于伪造的质询文本的分辨率,因为用于存储表示伪造的质询文本的数据的通道数量(例如,三个通道)大于存储表示质询文本的数据所使用的通道数(例如,一个通道)。
如从前述示例中可以意识到的,多通道图像可以存储表示两个不同质询文本的数据:表示质询文本的数据可以存储在其透明通道中,而表示伪造的质询文本的数据可以存储在另外的(一个或多个)通道中。如以上所讨论的,这个特征对于识别解答CAPTCHA质询的恶意尝试可以是有用的。例如,软件bot可能不知道真正的质询文本隐藏在图像的透明通道中,并且会提取伪造的质询文本并将其发送到尝试访问的系统。当系统检测到伪造的质询文本已发回时,它可以拒绝发出请求的设备的访问。但是,应当意识到的是,多通道图像不需要在其(一个或多个)彩色通道中存储带有伪造的质询文本的图像,并且可以在其中存储任何其它合适的图像,包括例如其中没有任何文本的图像。
接下来,在动作260处,将在动作255处生成的图像传输到发出请求的设备。执行处理250的系统可以附加地向发出请求的设备发送软件代码,该软件代码在被发出请求的设备(例如,在发出请求的设备上执行的互联网浏览器或其它应用程序)执行时可以访问存储在多通道图像的透明通道中的数据并使用所访问的数据生成质询文本的图像以显示给发出请求的设备的用户。该软件可以本文描述的任何方式传输并且可以是任何合适的类型,本文提供了其示例。
在动作260处将CAPTCHA质询传输到发出请求的设备之后,执行处理250的系统可以在动作262处从发出请求的设备接收响应通信。通信可以包括响应文本,该响应文本声称是对CAPTCHA质询的解答。例如,响应文本可以是响应于发出请求的设备被呈现有质询文本的图像而由发出请求的设备的人类用户输入的文本。在一些实施例中,通信还可以包括与CAPTCHA质询相关联的令牌。令牌可以包括时间戳(例如,指示生成响应的时间的时间戳)和/或特定于质询文本的安全密钥。系统可以使用令牌来核实对CAPTCHA质询的响应是对所传输的CAPTCHA质询的响应(与某个其它CAPTCHA质询相对)并且它是在将CAPTCHA质询发送到发出请求的设备的阈值时间内生成的。
接下来,在动作264处,从在动作262处接收的通信中识别响应文本。可以将响应文本与质询文本进行比较,以确定响应文本是否与质询文本匹配。在一些实施例中,当响应文本与质询文本完全匹配时,执行处理250的系统可以准许发出请求的设备访问所请求的web资源,而当响应文本与质询文本不完全匹配时,拒绝访问。在其它实施例中,不需要完全匹配,并且可以指定错误的阈值数量。例如,当响应文本与质询文本之间的错误数量低于错误的阈值数量(例如,一个错误、两个错误或三个错误)时,执行处理250的系统可以允许发出请求的设备访问所请求的web资源,而当响应文本和质询文本之间的错误数量大于(或大于或等于)错误的阈值数量时,拒绝访问。
图3是根据本文描述的技术的一些实施例的用于访问web资源的说明性处理300的流程图。处理300可以由任何合适的系统和/或(一个或多个)计算设备执行,并且例如可以由参考图1描述的客户端设备120执行。
处理300开始于动作310,其中执行处理300的设备(例如,客户端设备120)向远程系统(例如,系统110、服务器114)发送包括访问web资源的请求的通信。在一些实施例中,通信可以由在设备上执行的应用程序(例如,互联网浏览器)和/或操作系统生成。例如,可以响应于用户点击由互联网浏览器显示的网页中的链接或者响应于任何其它合适的触发而由在发出请求的设备上执行的互联网浏览器来生成通信。本文提供了web资源的示例。通信可以符合任何合适的通信协议,并且可以是任何合适的格式,因为本文描述的技术的各方面在这方面不受限制。
接下来,在动作320处,设备从远程系统接收对质询文本进行编码的图像以及解码信息。在一些实施例中,图像可以是使用本文描述的技术(包括参考图2A描述的)生成的经混洗的图像。在其它实施例中,图像可以是在其透明通道中存储解码信息的并且是使用本文所述的技术(包括参考图2B描述的)生成的图像。此外,设备可以从远程系统接收软件代码,该软件代码在由设备(例如,由在设备上执行的应用程序,诸如例如互联网浏览器)执行时使用解码信息从图像中揭示质询文本。
接下来,在动作330处,设备可以向用户显示质询文本。这可以以任何合适的方式来完成。例如,在一些实施例中,接收到的图像可以通过重新布置表示质询文本的初始图像的部分来生成。在此类实施例中,应用程序可以使用解码信息来重新布置接收到的图像的部分以获得初始图像并将初始图像显示给设备的用户。例如,互联网浏览器可以执行在动作320处接收到的软件代码,并且该软件代码可以通过使用解码信息重新布置接收到的图像的部分来生成初始图像。作为另一个示例,在一些实施例中,接收到的图像可以包括在其透明通道中的表示质询文本的数据。在此类实施例中,应用程序可以访问接收到的图像的透明通道中的表示质询文本的数据、基于这些数据生成图像,并将生成的图像显示给用户。例如,互联网浏览器可以执行在动作320处接收到的软件代码,并且该软件代码可以访问接收到的图像的透明通道中的数据并使用这些数据向用户显示质询文本。
在向用户呈现质询文本之后,在动作330处,设备在动作340处从用户接收输入文本。该文本可以表示用户输入质询文本的尝试。用户可以使用键盘(物理的或虚拟的)、鼠标、通过口述(并且设备可以通过使用自动语音识别将用户口述的响应转换成文本)或以任何其它合适的方式来键入输入文本。
接下来,在动作350处,设备将包括输入文本的表示的通信发送到远程系统。这可以以任何合适的方式来完成。在一些实施例中,设备可以响应于用户这么做的指示而发送通信。例如,设备可以响应于用户点击网页(例如,在其上向用户呈现质询文本的网页)上指示要提交输入文本的按钮而向远程系统发送通信。在一些实施例中,由设备传输到远程系统的通信还可以包括可以由远程系统用来验证响应的附加信息。例如,附加信息可以包括与响应相关联的时间戳或与质询文本相关联的安全令牌。
如以上所讨论的,远程系统可以基于输入文本(表示用户对CAPTCHA质询的解答)与质询文本之间的比较来向设备准予对所请求的web资源的访问。当远程系统基于该比较确定设备可以访问所请求的web资源时,远程系统可以向该设备发送它可以访问web资源的指示和/或直接提供web资源。例如,可以允许在设备上执行的互联网浏览器访问所请求的网页、在网站上执行所请求的动作(例如,促成诸如金融交易之类的交易的动作)和/或下载内容。另一方面,当远程系统基于比较确定设备不能访问所请求的web资源时,远程系统可以向设备发送拒绝访问的指示。在一些实例中,远程系统可以向该设备发送另一个CAPTCHA质询,以给予用户获得访问权限的另一个机会。
在参考图2A-2B、3、4A-E和5A-5E描述的实施例中,CAPTCHA质询被编码在图像中(例如,在图像的透明通道中或作为图像部分的经混洗的布置)。但是,在其它实施例中,可以将CAPTCHA质询提供给设备(例如,客户端设备120),而不向该设备发送对质询文本进行编码的任何图像。例如,在一些实施例中,可以向设备提供实施CAPTCHA质询的软件代码。当由设备(例如,由在设备上执行的应用程序,例如互联网浏览器)执行时,软件代码可以显示和/或操纵网页上的图形元素以改变其外观,使得质询文本显示在网页上。作为具体的非限制性示例,当由设备上的互联网浏览器执行时,软件代码可以使多个图形元素显示在网页中的位置集合处,并将图形元素的颜色设置为黑色,以便图形元素在网页的白色背景下看起来为黑色。可以基于质询文本来设置网页位置,使得当图形元素的颜色设置为黑色时,图形元素形成质询文本的视觉表示。在一些实施例中,可以使用超文本标记语言(HTML)、级联样式表(CSS)和/或OpenGL来创建、显示和/或操纵图形元素。在一些实施例中,图形元素可以包括HTML span元素、HTML canvas元素和/或OpenGL元素。
图6是根据本文描述的技术的一些实施例的用于确定设备是否可以访问web资源的说明性处理600的流程图。处理600可以由任何合适的系统和/或计算设备执行,并且例如可以由参考图1描述的系统110执行。
处理600开始于动作610,其中执行处理600的系统从发出请求的设备(例如,参考图1描述的客户端设备120)接收通信。在一些实施例中,通信可以由在发出请求的设备上执行的应用程序和/或操作系统生成。例如,通信可以由任何合适类型的互联网浏览器生成。在一些实施例中,可以响应于用户点击由互联网浏览器显示的网页中的链接或者响应于任何其它合适的触发而由在发出请求的设备上执行的互联网浏览器来生成通信。通信可以包括访问web资源的请求。本文提供了web资源的示例。通信可以符合任何合适的通信协议,并且可以是任何合适的格式,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理600前进到动作620,其中执行处理600的系统从通信中识别访问web资源的请求。在一些实施例中,系统可以分析在动作610处接收到的通信并且检测到用户已经请求访问具体的web资源。例如,通信可以包括与用户已经在网站上选择的对象相关联的信息。该对象可以是统一资源定位符(URL)。基于所选择的URL,系统可以识别访问特定web资源的请求。但是,应当意识到的是,可以以任何其它合适的方式从通信中识别访问web资源的请求,因为本文描述的技术的各方面在这方面不受限制。
接下来,处理600前进到动作630、640和650,其中执行处理600的系统生成CAPTCHA质询并将生成的CAPTCHA质询传输到发出请求的设备。在动作630处,系统访问对质询文本进行编码的位置信息。在一些实施例中,位置信息可以指定网页上的多个位置(例如,坐标)。多个位置可以对质询文本进行编码,使得当具有一种视觉外观(例如,特定颜色或特定类型的阴影)的图形元素显示在这多个位置并且网页的背景具有不同的视觉外观(例如,另一种颜色或另一种类型的阴影)时,当在网页中显示图形元素时,网页可以显示质询文本。在一些实施例中,多个位置可以指定质询文本中字母的像素位置。例如,多个位置中的每一个可以指定单个像素或一组像素的位置。位置信息可以以任何合适的方式(例如,使用一个或多个数值、使用代码指令、配置文件等)并且以任何合适的格式来指定多个位置,因为本文描述的技术的各方面在这方面不受限制。
在图7A-7D中提供了说明性示例。如图7A中所示,网页720可以被表示为单元格的网格。单元格的网格可以包括任何合适数量的单元格,并且每个网格单元格可以具有任何合适的尺寸。每个网格单元格可以表示单个像素或一组像素。在这个示例中,位置信息可以通过指定在其中放置具有特定视觉外观(例如,具有特定颜色或具有特定阴影)的图形元素的网格单元格的位置来对质询文本进行编码。只要这种特定的视觉外观与网页的背景不同,这些位置处的图形元素的集合就可以提供文本的视觉表示。
例如,质询文本“HOOP”710可以由图7B中所示的位置信息730表示。位置信息730指定在其上放置具有与网页背景不同的视觉外观的图形元素的网格单元格。例如,如图7C中所示,具有对角阴影的图形元素可以被放置在位置信息730中识别出的网格单元格的位置处。因此,相对于网页的背景,网页在位置730处识别出的网格单元格处的外观改变。因而,在这个示例中,一旦网页在网格单元格的位置处显示有图形元素,结果所得的网页750就显示质询文本“HOOP”752,如图7D中所示。
在动作640处,执行处理600的系统访问软件代码,该软件代码在由发出请求的设备(例如,由在发出请求的设备上执行的互联网浏览器)执行时,使得多个图形元素显示在由在步骤630处访问的位置信息指定的多个位置处。在一些实施例中,当执行软件代码时,软件代码可以:(1)使得多个HTML元素显示在网页中的多个位置处(例如,多个HTML span元素或多个HTML canvas元素);以及(2)将多个HTML元素的视觉外观设置为与网页的一个或多个部分(例如,网页的背景)的视觉外观不同,使得当包含图形元素的网页显示在多个位置处时,网页显示质询文本。
接下来,在动作650处,将在动作630处访问的位置信息和在动作640处访问的软件代码传输到发出请求的设备。在一些实施例中,软件代码和位置信息可以作为网页的一部分被发送到发出请求的设备。在此类实施例中,执行处理600的系统可以生成包括软件代码(例如,作为JAVASCRIPT代码)和位置信息的网页。这种网页的一个说明性示例是图8中所示的网页800。网页800包括canvas元素830,其指定整个CAPTCHA质询在网页800中的位置。此外,网页800包括出现在<script>和</script>标签之间的JAVASCRIPT软件代码。该软件代码包括指定多个位置的位置信息810以及包括使互联网浏览器在由位置信息810指定的多个位置上显示多个图形元素的一个或多个指令的程序逻辑820。在这个示例中,程序逻辑820包括对JAVASCRIPT代码的JAVASCRIPT函数调用,该JAVASCRIPT代码可以与网页一起提供或与网页分开。但是,应当意识到的是,在一些实施例中,可以将软件代码和位置信息与网页分开地提供给发出请求的设备,因为本文描述的技术的各方面在这方面不受限制。
在动作650处将CAPTCHA质询传输到发出请求的设备之后,执行处理600的系统可以在动作660处从发出请求的设备接收响应通信。通信可以包括个响应文本,该响应文本声称是对CAPTCHA质询的解答。例如,响应文本可以是响应于发出请求的设备被呈现有质询文本的图像而由发出请求的设备的人类用户输入的文本。在一些实施例中,通信还可以包括与CAPTCHA质询相关联的令牌。令牌可以包括时间戳(例如,指示生成响应的时间的时间戳)和/或特定于质询文本的安全密钥。系统可以使用令牌来核实对CAPTCHA质询的响应是对所传输的CAPTCHA质询的响应(与某个其它CAPTCHA质询相对)并且它是在将CAPTCHA质询发送到发出请求的设备的时间的阈值时间内生成的。
接下来,在动作670处,从在动作660处接收的通信中识别响应文本。可以将响应文本与质询文本进行比较,以确定响应文本是否与质询文本匹配。在一些实施例中,当响应文本与质询文本完全匹配时,执行处理600的系统可以准许发出请求的设备访问所请求的web资源,而当响应文本与质询文本不完全匹配时,拒绝访问。在其它实施例中,不需要完全匹配,并且可以指定错误的阈值数量。例如,当响应文本与质询文本之间的错误数量低于错误的阈值数量(例如,一个错误、两个错误或三个错误)时,执行处理600的系统可以允许发出请求的设备访问所请求的web资源,而当响应文本和质询文本之间的错误数量大于(或大于或等于)错误的阈值数量时,拒绝访问。响应文本与质询文本之间的错误可以是任何合适的类型。例如,当质询文本中的某个字符在响应文本中丢失时、当响应文本包括质询文本中没有的字符时,和/或当响应文本在一位置处包括与在质询文本中相同位置处的字符不同的字符时,响应文本与质询文本之间的错误可以发生。
应当意识到的是,处理600是说明性的,并且存在变化。例如,虽然在图6所示的实施例中在动作630处访问指定质询文本的位置信息,但是在其它实施例中,可以替代地作为动作630的一部分而生成指定质询文本的位置信息。这可以以任何合适的方式来完成。例如,可以选择质询文本及其外观(例如,字体、大小、颜色等),并且可以从质询文本中导出位置信息(例如,通过将质询文本表示为像素的网格并在位置信息中包括质询文本内像素的位置)。作为另一个示例,虽然在图6所示的实施例中在动作640处访问软件代码,但是在其它实施例中,可以在执行处理600期间动态地生成软件代码。
而且,在一些实施例中,软件代码和位置信息可以彼此分开地发送到发出请求的设备。在其它实施例中,软件代码可以包括位置信息作为一个或多个参数和/或任何合适类型的配置数据(例如,如图8的说明性示例中所示)。在还有其它实施例中,软件代码可以被配置为通过执行一个或多个这样做的程序指令来动态地生成位置信息。
在一些实施例中,软件代码可以被配置为随时间而改变由位置信息指定的多个位置。以这种方式,网页内的多个图形元素的位置可以随时间变化(例如,周期性地变化以产生循环效果,或者非周期性地变化以产生自然、非重复移动的效果)。附加地或可替代地,图形元素在多个位置的视觉外观可以随时间变化。因此,图形元素的位置和/或视觉外观(其被用于提供质询文本的视觉表示)可以随时间在网页中变化。以这种方式,质询文本在网页中的内容、外观和/或位置可以随时间变化。
例如,在一些实施例中,当由互联网浏览器执行时,软件代码可以使网页最初显示与质询文本不同的第一文本,并且随后在阈值时间量之后显示质询文本。例如,如图9A所示,软件代码可以相对于时间改变质询文本的内容。如图9A中所示,执行软件代码的互联网浏览器可以最初在网页910中显示伪造的质询文本“HOOP”912,然后在稍后的时间(例如,三秒后)显示真正的质询文本“LOST”922。真正的质询文本的延迟显示可以有助于阻止软件bot解答CAPTCHA质询的尝试。例如,软件bot可能不知道真正的质询文本不是首先显示的文本,并且可能会花费大量计算资源(例如,通过启动互联网浏览器的实例)来自动识别伪造的质询中的文本(例如,文本“HOOP”)。但是,当系统检测到发出请求的设备发回伪造的质询文本时,系统可以拒绝该设备访问所请求的资源。即使将软件bot编程为一直等到真正的质询文本显示出来,附加的延迟也使其更加占用资源,并且难以发起大量的自动攻击。
作为另一个示例,在一些实施例中,当软件代码由互联网浏览器执行时,其可以引起质询文本的视觉外观随时间变化。例如,如图9B中所示,软件代码可以相对于时间改变质询文本的视觉外观。如图9B中所示,执行软件代码的互联网浏览器可以首先使用一种类型的阴影(和/或颜色)在网页930中显示质询文本“HOOP”932,然后在随后的时间使用另一种类型的阴影(和/或颜色)显示相同的质询文本,如质询文本“HOOP”942所示。这可以以任何合适的方式来完成。例如,在一些实施例中,软件代码可以包括随时间修改图形元素的视觉特征的程序指令。例如,软件代码可以包括JAVASCRIPT函数,这些函数被配置为一次设置HTML span或canvas元素的CSS颜色特性,然后在另一个时间改变CSS颜色特性。改变质询文本的视觉外观(例如,颜色、尺寸、透明度、阴影等)可以使自动软件bot更加难以识别质询文本。
作为又一个示例,在一些实施例中,当软件代码由互联网浏览器执行时,其可以改变质询文本在网页中显示的位置。例如,如图9C中所示,软件代码可以相对于时间改变质询文本在网页中的位置。如图9C中所示,网页950中的质询文本最初显示在位置952处,然后显示在位置962处,最后显示在位置972处。在一些实施例中,质询文本的移动可以是周期性的或循环的。在其它实施例中,质询文本的移动可以是非周期性的,并且可以不具有任何可辨别的重复移动模式。这种非周期性移动使得软件bot更加难于解答CAPTCHA质询,而软件bot可以能够预测质询文本的周期性移动并利用这种循环来增加正确解答CAPTCHA质询的可能性。
图10是根据本文描述的技术的一些实施例的用于访问web资源的说明性处理1000的流程图。处理1000可以由任何合适的系统和/或(一个或多个)计算设备执行,并且例如可以由参考图1描述的客户端设备120执行。
处理1000开始于动作1010,其中,执行处理1000的设备(例如,客户端设备120)向远程系统(例如,系统110、服务器114)发送包括访问web资源的请求的通信。在一些实施例中,通信可以由在设备上执行的应用程序(例如,互联网浏览器)和/或操作系统生成。例如,可以响应于用户点击由互联网浏览器显示的网页中的链接或者响应于任何其它合适的触发而由在发出请求的设备上执行的互联网浏览器来生成通信。本文提供了web资源的示例。通信可以符合任何合适的通信协议,并且可以是任何合适的格式,因为本文描述的技术的各方面在这方面不受限制。
接下来,在动作1020处,设备从远程系统接收指定多个位置并表示质询文本的位置信息。设备还接收软件代码,当该软件代码由该设备(例如,由在设备上执行的应用程序(诸如例如互联网浏览器))执行时,使得多个图形元素显示在网页中的多个位置处,并设置图形元素的视觉外观,使得它们在网页中可见(例如,通过将其一个或多个视觉特征设置为与网页中的视觉特征不同),从而使得质询文本显示在网页中。在一些实施例中,软件代码可以是脚本(例如,用JAVASCRIPT编写的)或应用程序(例如,Java applet),和/或以任何合适形式的脚本和/或编程语言编写的任何其它合适类型的软件代码。
接下来,在动作1030处,设备可以向用户显示质询文本。这可以以任何合适的方式来完成。例如,在设备上执行的应用程序(例如,互联网浏览器)可以使用软件代码和在动作1020处接收到的指定多个位置的位置信息来:(1)在网页中的多个位置处显示多个图形元素;(2)将图形元素的视觉外观设置为与网页(例如,背景)的视觉外观不同;以及(3)向用户显示网页,从而向用户示出质询文本。如以上讨论的,在一些实施例中,软件代码可以改变质询文本在网页中的内容、外观和/或位置。在一些实施例中,软件代码可以向用户呈现伪造的质询文本并且在阈值时间量之后,将伪造的质询文本替换为实际质询的文本。
在向用户呈现质询文本之后,在动作1040处,设备从用户接收输入文本。该文本可以表示用户键入质询文本的尝试。用户可以使用键盘(物理的或虚拟的)、鼠标、通过口述(并且设备可以通过使用自动语音识别将用户口述的响应转换成文本)或以任何其它合适的方式来键入输入文本。
接下来,在动作1050处,设备将包括输入文本的通信发送到远程系统。这可以以任何合适的方式来完成。在一些实施例中,设备可以响应于用户这么做的指示而发送通信。例如,设备可以响应于用户点击网页(例如,在其上向用户呈现质询文本的网页)上指示要提交输入文本的按钮而向远程系统发送通信。在一些实施例中,由设备传输到远程系统的通信还可以包括可以由远程系统用来验证响应的附加信息。例如,附加信息可以包括与响应相关联的时间戳或与质询文本相关联的安全令牌。
如以上所讨论的,远程系统可以基于输入文本(表示用户对CAPTCHA质询的解答)与质询文本之间的比较来向设备准予对所请求的web资源的访问。当远程系统基于该比较确定设备可以访问所请求的web资源时,远程系统可以向该设备发送它可以访问web资源的指示和/或直接提供web资源。例如,可以允许在设备上执行的互联网浏览器访问所请求的网页、在网站上执行所请求的动作(例如,促成诸如金融交易之类的交易的动作)和/或下载内容。另一方面,当远程系统基于比较确定设备不能访问所请求的web资源时,远程系统可以向设备发送拒绝访问的指示。在一些实例中,远程系统可以向该设备发送另一个CAPTCHA质询,以给予用户获得访问权限的另一个机会。
应当意识到的是,处理1000是说明性的,并且存在变化。例如,在一些实施例中,在动作1020处,执行处理1000的设备可以与在由位置信息指定的位置处生成多个图形元素的软件代码分开地接收位置信息。在其它实施例中,软件代码可以包括位置信息作为一个或多个参数、一个或多个变量和/或任何合适类型的配置数据。在其它实施例中,软件代码可以被配置为通过执行一个或多个这样做的程序指令来动态地生成位置信息。
还应当意识到的是,上述特征和技术的各方面不仅限于所描述的功能。本文讨论的一个或多个实施例可以被组合。附图是示例实施例的图示。应当意识到的是,所示示例实施例的几种变型是可能的。
在图11所示的实施例中,计算机1100包括具有一个或多个处理器的处理单元1101和可以包括例如易失性和/或非易失性存储器的非暂态计算机可读存储介质1102。存储器1102可以存储一个或多个指令以对处理单元1101进行编程以执行本文描述的任何功能。除了系统存储器1102之外,计算机1100还可以包括其它类型的非暂态计算机可读介质,诸如存储装置1105(例如,一个或多个盘驱动器)。存储装置1105还可以存储一个或多个应用程序和/或由应用程序使用的资源(例如,软件库),其可以被加载到存储器1102中。
计算机1100可以具有一个或多个输入设备和/或输出设备,诸如图11所示的(一个或多个)输出设备1106和(一个或多个)输入设备1107。这些设备尤其可以用于呈现用户接口。可以用于提供用户接口的输出设备的示例包括用于输出的视觉呈现的打印机或显示屏,以及用于输出的听觉呈现的扬声器或其它声音生成设备。可以用于用户接口的输入设备的示例包括键盘和定点设备,诸如鼠标、触摸板和数字化平板电脑。作为另一个示例,(一个或多个)输入设备1107可以包括用于捕获音频信号的麦克风,并且(一个或多个)输出设备1106可以包括用于显示识别出的文本的显示屏和/或用于以听觉方式渲染识别出的文本的扬声器。
如图11中所示,计算机1100还可以包括一个或多个网络接口(例如,网络接口1108),以使得能够经由各种网络(例如,网络1110)进行通信。网络的示例包括局域网或广域网,诸如企业网络或互联网。此类网络可以基于任何核实的技术并且可以根据任何合适的协议进行操作,并且可以包括无线网络、有线网络和/或光纤网络。
因此,已经描述了至少一个实施例的几个方面,应当意识到的是,本领域技术人员将容易想到各种更改、修改和改进。此类更改、修改和改进意图在本公开的精神和范围内。因而,前面的描述和附图仅作为示例。
可以以多种方式中的任何一种来实现本公开的上述实施例。例如,可以使用硬件、软件或其组合来实现实施例。当以软件实现时,软件代码可以在任何合适的处理器或处理器集合上执行,无论是在单个计算机中提供还是在多个计算机中分布。
而且,本文概述的各种方法或处理可以被编码为可在采用多种操作系统或平台中的任何一种的一个或多个处理器上执行的软件。此外,可以使用多种合适的编程语言和/或编程或脚本工具中的任何一种来编写这种软件,并且还可以将其编译为可执行的机器语言代码或者在框架或虚拟机上执行的中间代码。
在这方面,本文公开的概念可以被实施为用一个或多个程序编码的非暂态计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带、闪存、现场可编程门阵列或其它半导体设备中的电路配置,或其它非暂态的有形计算机存储介质),这些程序在一个或多个计算机或其它处理器上执行时,将执行实现以上讨论的本公开的各种实施例的方法。一个或多个计算机可读介质可以是可运输的,使得可以将存储在其上的一个或多个程序加载到一个或多个不同的计算机或其它处理器上,以实现如以上公开的本公开的各个方面。
术语“程序”或“软件”在本文中用于指可以用来对计算机或其它处理器进行编程以实现如以上讨论的本公开的各个方面的任何类型的计算机代码或计算机可执行指令集。此外,应当意识到的是,根据这个实施例的一方面,当执行本公开的方法时,一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化的方式分布在多个不同的计算机或处理器中,以实现本公开的各个方面。
计算机可执行指令可以以许多形式(诸如程序模块)由一个或多个计算机或其它设备执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。在各种实施例中,可以根据期望组合或分布程序模块的功能。
而且,数据结构可以以任何合适的形式存储在计算机可读介质中。为了简化说明,可以将数据结构示为具有通过数据结构中的位置相关的字段。此类关系同样可以通过利用计算机可读介质中的位置为字段指派存储空间来实现,这传达字段之间的关系。但是,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包括通过使用指针、标签或在数据元素之间建立关系的其它机制。
本公开的各种特征和方面可以单独使用、以两个或更多个的任意组合使用,或者以在前述实施例中未具体讨论的各种布置使用,因此,本公开的应用不限于在前面的描述中阐述的或在附图中示出的组件的细节和布置。例如,在一个实施例中描述的方面可以以任何方式与其它实施例中描述的方面组合。
而且,本文公开的概念可以被实施为方法,已经提供了其示例。作为方法的一部分执行的动作可以以任何合适的方式排序。因而,可以构造其中以与所示出的次序不同的次序来执行动作的实施例,这可以包括同时执行一些动作,尽管在说明性实施例中被示为顺序动作。
在权利要求中使用诸如“第一”、“第二”、“第三”等序数术语来修改权利要求元素本身并不表示一个权利要求元素相对于另一个权利要求元素具有任何优先权、优先或次序或者执行方法的动作的时间次序,而是仅用作区分具有某个名称的一个权利要求元素与具有相同名称的另一个权利要求元素(但使用序数词)以区分权利要求元素的标记。
而且,本文所使用的措词和术语是出于描述的目的,并且不应当被视为限制。本文中“包括”、“包含”、“具有”、“涉及”及其变体的使用意在涵盖其后列出的项目及其等同物以及附加项目。

Claims (90)

1.一种系统,包括:
至少一个计算机;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的经混洗的图像,所述生成包括:
生成对质询文本进行编码的初始图像;
将初始图像划分为图像部分;以及
生成经混洗的图像作为所述图像部分的经混洗的布置;
生成用于揭示编码在经混洗的图像中的质询文本的解码信息;
经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
2.如权利要求1所述的系统,其中处理器可执行指令还使得所述至少一个计算机向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备显示编码在经混洗的图像中的质询文本。
3.如权利要求2或任一其它前述权利要求所述的系统,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
4.如权利要求2或任一其它前述权利要求所述的系统,其中处理器可执行指令在被执行时还使得所述至少一个计算机执行:
生成包括软件代码和经混洗的图像的网页,
其中将经混洗的图像和解码信息传输到所述设备包括将网页传输到所述设备。
5.如权利要求1或任一其它前述权利要求所述的系统,其中生成解码信息包括:
生成指定如何重新布置所述图像部分的经混洗的布置以获得初始图像的映射。
6.如权利要求4或任一其它前述权利要求所述的系统,其中生成所述映射包括:
生成第一信息,所述第一信息指定在所述图像部分的经混洗的布置中的第一图像部分在初始图像中的第一位置;以及
生成第二信息,所述第二信息指定在所述图像部分的经混洗的布置中的第二图像部分在初始图像中的第二位置,其中第一位置不同于第二位置,并且其中第一图像部分不同于第二图像部分。
7.如权利要求1或任一其它前述权利要求所述的系统,其中生成经混洗的图像作为图像部分的经混洗的布置包括随机地重新布置所述图像部分。
8.如权利要求1或任一其它前述权利要求所述的系统,其中处理器可执行指令还使得所述至少一个计算机执行:
从第二通信中识别质询令牌;以及
使用质询令牌来验证第二通信。
9.一种由至少一个计算机执行的方法,所述方法包括:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的经混洗的图像,所述生成包括:
生成对质询文本进行编码的初始图像;
将初始图像划分为图像部分;以及
生成经混洗的图像作为所述图像部分的经混洗的布置;
生成用于揭示编码在经混洗的图像中的质询文本的解码信息;
经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
10.如权利要求9所述的方法,还包括:
向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备显示编码在经混洗的图像中的质询文本。
11.如权利要求10或任一其它前述权利要求所述的方法,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
12.如权利要求10或任一其它前述权利要求所述的方法,还包括:
生成包括软件代码和经混洗的图像的网页,
其中将经混洗的图像和解码信息传输到所述设备包括将网页传输到所述设备。
13.如权利要求9或任一其它前述权利要求所述的方法,其中生成解码信息包括:
生成指定如何重新布置所述图像部分的经混洗的布置以获得初始图像的映射。
14.如权利要求13或任一其它前述权利要求所述的方法,其中生成所述映射包括:
生成第一信息,所述第一信息指定在所述图像部分的经混洗的布置中的第一图像部分在初始图像中的第一位置;以及
生成第二信息,所述第二信息指定在所述图像部分的经混洗的布置中的第二图像部分在初始图像中的第二位置,其中第一位置不同于第二位置,并且其中第一图像部分不同于第二图像部分。
15.如权利要求9或任一其它前述权利要求所述的方法,其中生成经混洗的图像作为图像部分的经混洗的布置包括随机地重新布置所述图像部分。
16.如权利要求9或任一其它前述权利要求所述的方法,还包括:
从第二通信中识别质询令牌;以及
使用质询令牌来验证第二通信。
17.至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的经混洗的图像,所述生成包括:
生成对质询文本进行编码的初始图像;
将初始图像划分为图像部分;以及
生成经混洗的图像作为所述图像部分的经混洗的布置;
生成用于揭示编码在经混洗的图像中的质询文本的解码信息;
经由所述至少一个网络将经混洗的图像和解码信息传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
18.如权利要求17所述的至少一个非暂态计算机可读存储介质,其中处理器可执行指令还使得所述至少一个计算机执行:
向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备显示编码在经混洗的图像中的质询文本。
19.如权利要求18或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
20.如权利要求18或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中处理器可执行指令还使得所述至少一个计算机执行:
生成包括软件代码和经混洗的图像的网页,
其中将经混洗的图像和解码信息传输到所述设备包括将网页传输到所述设备。
21.如权利要求17或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中生成解码信息包括:
生成指定如何重新布置所述图像部分的经混洗的布置以获得初始图像的映射。
22.如权利要求21或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中生成所述映射包括:
生成第一信息,所述第一信息指定在所述图像部分的经混洗的布置中的第一图像部分在初始图像中的第一位置;以及
生成第二信息,所述第二信息指定在所述图像部分的经混洗的布置中的第二图像部分在初始图像中的第二位置,其中第一位置不同于第二位置,并且其中第一图像部分不同于第二图像部分。
23.如权利要求17或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中生成经混洗的图像作为图像部分的经混洗的布置包括随机地重新布置所述图像部分。
24.如权利要求17或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中处理器可执行指令还使得所述至少一个计算机执行:
从第二通信中识别质询令牌;以及
使用质询令牌来验证第二通信。
25.一种设备,包括:
至少一个硬件处理器;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个硬件处理器执行时使得所述至少一个硬件处理器执行:
向至少一个计算机并经由至少一个网络传输包括访问web资源的请求的通信;
从所述至少一个计算机并经由所述至少一个网络接收对质询文本进行编码的经混洗的图像以及解码信息;
使用经混洗的图像和解码信息向所述设备的用户显示质询文本;
从所述设备的用户接收指定响应文本的输入;以及
向所述至少一个计算机并经由所述至少一个网络传输包括响应文本的通信。
26.如权利要求25所述的设备,其中处理器可执行指令还使得所述至少一个硬件处理器执行:
从所述至少一个计算机接收软件代码,所述软件被配置为至少部分地通过使用解码信息从经混洗的图像中恢复去混洗的图像。
27.如权利要求26或任一其它前述权利要求所述的设备,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
28.如权利要求27或任一其它前述权利要求所述的设备,其中显示包括:
使用在所述设备上执行的互联网浏览器来执行软件代码。
29.如权利要求25或任一其它前述权利要求所述的设备,其中经混洗的图像包括去混洗的图像的图像部分的经混洗的布置,并且其中解码信息指定映射,所述映射指示如何重新布置所述图像部分的经混洗的布置以获得去混洗的图像。
30.如权利要求29或任一其它前述权利要求所述的设备,其中显示质询文本包括:
通过根据映射重新布置所述图像部分的经混洗的布置来生成去混洗的图像;以及
显示去混洗的图像。
31.一种系统,包括:
至少一个计算机;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:
生成表示质询文本的解码信息;以及
将解码信息存储在所述图像的透明通道中;
经由所述至少一个网络将生成的图像传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
32.如权利要求31所述的系统,其中处理器可执行指令还使得所述至少一个计算机向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备对所述质询文本的显示。
33.如权利要求32或任一其它前述权利要求所述的系统,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
34.如权利要求32或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时使用解码信息来使多个图形元素显示在网页中,使得网页显示所述质询文本。
35.如权利要求34或任一其它前述权利要求所述的系统,其中所述多个图形元素包括一个或多个HTML元素和/或一个或多个OpenGL元素。
36.如权利要求34或任一其它前述权利要求所述的系统,其中软件代码包括OpenGL指令,并且其中软件代码在由互联网浏览器执行时使得通过使用至少一个图形处理单元(GPU)来显示所述多个图形元素以执行渲染所述多个图形元素的OpenGL指令。
37.如权利要求31或任一其它前述权利要求所述的系统,其中当所述设备在白色背景下显示图像时,所述图像对显示给用户的另一个文本进行编码,其中所述另一个文本不同于质询文本。
38.如权利要求37或任一其它前述权利要求所述的系统,其中所述另一个文本被编码在存储在所述多个通道中的至少一个通道中的数据中,所述至少一个通道不包括透明通道。
39.如权利要求31或任一其它前述权利要求所述的系统,其中解码信息包括用于一个或多个像素位置的饱和度值。
40.一种方法,包括:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:
生成表示质询文本的解码信息;以及
将解码信息存储在所述图像的透明通道中;
经由所述至少一个网络将生成的图像传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
41.如权利要求40所述的方法,还包括:
向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备对所述质询文本的显示。
42.如权利要求41或任一其它前述权利要求所述的方法,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
43.如权利要求41或任一其它前述权利要求所述的方法,其中软件代码在由互联网浏览器执行时使用解码信息来使多个图形元素显示在网页中,使得网页显示所述质询文本。
44.如权利要求43或任一其它前述权利要求所述的方法,其中所述多个图形元素包括一个或多个HTML元素和/或一个或多个OpenGL元素。
45.如权利要求43或任一其它前述权利要求所述的方法,其中软件代码包括OpenGL指令,并且其中软件代码在由互联网浏览器执行时使得通过使用至少一个图形处理单元(GPU)来显示所述多个图形元素以执行渲染所述多个图形元素的OpenGL指令。
46.如权利要求40或任一其它前述权利要求所述的方法,其中当所述设备在白色背景下显示图像时,所述图像对显示给用户的另一个文本进行编码,其中所述另一个文本不同于质询文本。
47.如权利要求46或任一其它前述权利要求所述的方法,其中所述另一个文本被编码在存储在所述多个通道中的至少一个通道中的数据中,所述至少一个通道不包括透明通道。
48.如权利要求40或任一其它前述权利要求所述的方法,其中解码信息包括用于一个或多个像素位置的饱和度值。
49.至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
生成对质询文本进行编码的图像,所述图像包括存储在包括透明通道的多个通道中的数据,所述生成包括:
生成表示质询文本的解码信息;以及
将解码信息存储在所述图像的透明通道中;
经由所述至少一个网络将生成的图像传输到所述设备;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
50.如权利要求49所述的至少一个非暂态计算机可读存储介质,其中处理器可执行指令还使得所述至少一个计算机执行:
向所述设备传输软件代码,所述软件代码在由所述设备执行时使用解码信息来促进由所述设备对所述质询文本的显示。
51.如权利要求50或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码。
52.如权利要求50或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中软件代码在由互联网浏览器执行时使用解码信息来使多个图形元素显示在网页中,使得网页显示所述质询文本。
53.如权利要求52或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中所述多个图形元素包括一个或多个HTML元素和/或一个或多个OpenGL元素。
54.如权利要求52或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中软件代码包括OpenGL指令,并且其中软件代码在由互联网浏览器执行时使得通过使用至少一个图形处理单元(GPU)来显示所述多个图形元素以执行渲染所述多个图形元素的OpenGL指令。
55.如权利要求49或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中当所述设备在白色背景下显示图像时,所述图像对显示给用户的另一个文本进行编码,其中所述另一个文本不同于质询文本。
56.如权利要求55或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中所述另一个文本被编码在存储在所述多个通道中的至少一个通道中的数据中,所述至少一个通道不包括透明通道。
57.如权利要求49或任一其它前述权利要求所述的至少一个非暂态计算机可读存储介质,其中解码信息包括用于一个或多个像素位置的饱和度值。
58.一种设备,包括:
至少一个硬件处理器;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由至少一个硬件处理器执行时使得至少一个处理器执行:
向至少一个计算机并经由至少一个网络传输包括访问web资源的请求的通信;
从所述至少一个计算机并经由所述至少一个网络接收在图像的透明通道中对质询文本进行编码的所述图像;
使用所述图像的透明通道中的解码信息向所述设备的用户显示质询文本;
从所述设备的用户接收指定响应文本的输入;以及
向所述至少一个计算机并经由所述至少一个网络传输包括响应文本的通信。
59.如权利要求58所述的设备,其中处理器可执行指令还使得所述至少一个硬件处理器执行:
从所述至少一个计算机接收软件代码,所述软件被配置为使用所述图像的透明通道中的解码信息来使多个图形元素显示在网页中,以使得所述网页显示质询文本。
60.如权利要求59或任一其它前述权利要求所述的设备,其中软件代码包括要由在所述设备上执行的互联网浏览器执行的JAVASCRIPT软件代码,并且其中所述显示包括使用互联网浏览器执行所述软件代码。
61.一种系统,包括:
至少一个计算机;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
经由所述至少一个网络将软件代码和位置信息传输到所述设备,其中位置信息指定对质询文本的视觉表示进行编码的多个位置,并且其中软件代码在由互联网浏览器执行时使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
62.如权利要求61所述的系统,其中位置信息包括网页中所述多个位置中的至少一些位置的坐标。
63.如权利要求61或任一其它前述权利要求所述的系统,其中位置信息不包括图像文件。
64.如权利要求61或任一其它前述权利要求所述的系统,其中处理器可执行指令在被执行时还使得所述至少一个计算机执行:
生成软件代码和位置信息。
65.如权利要求61或任一其它前述权利要求所述的系统,其中处理器可执行指令在被执行时还使得所述至少一个计算机执行:
生成所述网页以包括软件代码和位置信息,
其中传输软件代码和位置信息包括向所述设备传输网页。
66.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时使得通过使多个span元素显示在所述多个位置处来显示所述多个图形元素。
67.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时使得通过使多个HTML canvas元素显示在所述多个位置处来显示所述多个图形元素。
68.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码包括OpenGL指令,并且其中软件代码在由互联网浏览器执行时使得通过使用至少一个图形处理单元(GPU)执行渲染所述多个图形元素的OpenGL指令来将所述多个图形元素显示在所述多个位置处。
69.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时将所述多个图形元素中的至少一个图形元素的颜色设置为与网页的背景颜色不同的颜色。
70.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时在第一时间将所述多个图形元素中的至少一个图形元素的颜色设置为第一颜色,并且在不同于第一时间的第二时间将所述多个图形元素中的所述至少一个图形元素的颜色设置为第二颜色,其中第一颜色不同于第二颜色。
71.如权利要求61或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时最初显示第一文本,并且随后在阈值时间量之后显示质询文本,其中第一文本不同于质询文本。
72.如权利要求61或任一其它前述权利要求所述的系统,其中处理器可执行指令还使得所述至少一个计算机执行:
从第二通信中识别质询令牌;以及
使用质询令牌来验证第二通信。
73.一种由至少一个计算机执行的方法,所述方法包括:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
经由所述至少一个网络将软件代码和位置信息传输到所述设备,其中位置信息指定对质询文本的视觉表示进行编码的多个位置,并且其中软件代码在由互联网浏览器执行时使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
74.如权利要求73所述的方法,其中位置信息包括网页中所述多个位置中的至少一些位置的坐标。
75.如权利要求73或任一其它前述权利要求所述的方法,还包括:
生成软件代码和位置信息。
76.如权利要求73或任一其它前述权利要求所述的方法,还包括:
生成所述网页以包括软件代码和位置信息,
其中传输软件代码和位置信息包括向所述设备传输网页。
77.如权利要求73或任一其它前述权利要求所述的方法,其中软件代码在由互联网浏览器执行时使得通过使多个span元素显示在所述多个位置处来显示所述多个图形元素。
78.如权利要求73或任一其它前述权利要求所述的方法,其中软件代码在由互联网浏览器执行时使得通过使多个HTML canvas元素显示在所述多个位置处来显示所述多个图形元素。
79.如权利要求73或任一其它前述权利要求所述的方法,其中软件代码包括OpenGL指令,并且其中软件代码在由互联网浏览器执行时使得通过使用至少一个图形处理单元(GPU)执行渲染所述多个图形元素的OpenGL指令来将所述多个图形元素显示在所述多个位置处。
80.如权利要求73或任一其它前述权利要求所述的方法,其中软件代码在由互联网浏览器执行时使得网页最初显示第一文本,并且随后在阈值时间量之后显示质询文本,其中第一文本不同于质询文本。
81.一种系统,包括:
至少一个计算机;以及
至少一个非暂态计算机可读存储介质,其存储处理器可执行指令,所述指令在由所述至少一个计算机执行时使得所述至少一个计算机执行:
经由至少一个网络从与所述至少一个计算机不同的设备接收第一通信;
从第一通信中识别访问web资源的请求;
经由所述至少一个网络将软件代码传输到所述设备,其中软件代码在由互联网浏览器执行时:
生成对质询文本进行编码的多个位置;以及
使得多个图形元素被显示在网页中的多个位置处以便所述网页显示质询文本;
经由所述至少一个网络从所述设备接收第二通信;
从第二通信中识别响应文本;以及
基于质询文本与响应文本之间的比较来给所述设备提供对web资源的访问。
82.如权利要求81所述的系统,其中处理器可执行指令在被执行时还使得所述至少一个计算机执行:
生成软件代码。
83.如权利要求81或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时在第一时间生成所述多个位置,并且在第一时间之后的第二时间改变所述多个位置中的位置的值。
84.如权利要求81或任一其它前述权利要求所述的系统,其中处理器可执行指令还使得所述至少一个计算机执行:
生成所述网页以包括软件代码,
其中将软件代码传输到所述设备包括将网页传输到所述设备。
85.如权利要求81或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时使得通过使多个HTML canvas元素显示在所述网页中的多个位置处来显示所述多个图形元素。
86.如权利要求81或任一其它前述权利要求所述的系统,其中软件代码在由互联网浏览器执行时最初显示第一文本,并且随后在阈值时间量之后显示质询文本,其中第一文本不同于质询文本。
87.一种由被配置为执行互联网浏览器的设备执行的方法,所述方法包括:
向至少一个计算机传输访问web资源的请求;
从所述至少一个计算机接收软件代码和指定对质询文本进行编码的多个位置的位置信息;
使用互联网浏览器:
执行软件代码;以及
至少部分地通过在网页中的所述多个位置处显示多个图形元素来向所述设备的用户显示质询文本;
响应于向用户显示质询文本,从用户接收输入文本;以及将包括输入文本的通信传输到所述至少一个计算机。
88.如权利要求87或任一其它前述权利要求所述的方法,其中执行软件代码使得互联网浏览器在所述多个位置处显示多个span元素。
89.如权利要求87或任一其它前述权利要求所述的方法,其中执行软件代码使得互联网浏览器在所述多个位置处显示多个HTMLcanvas。
90.如权利要求87或任一其它前述权利要求所述的方法,其中执行软件代码使得互联网浏览器将所述多个图形元素中的至少一个图形元素的颜色设置为与所述网页的背景颜色不同的颜色。
CN201780091830.1A 2017-05-05 2017-05-05 区分人类用户与软件机器人的系统和方法 Pending CN110892677A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2017/000640 WO2018203098A1 (en) 2017-05-05 2017-05-05 Systems and methods for distinguishing among human users and software robots

Publications (1)

Publication Number Publication Date
CN110892677A true CN110892677A (zh) 2020-03-17

Family

ID=64015989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780091830.1A Pending CN110892677A (zh) 2017-05-05 2017-05-05 区分人类用户与软件机器人的系统和方法

Country Status (7)

Country Link
EP (3) EP3754903B1 (zh)
CN (1) CN110892677A (zh)
AU (1) AU2017412612B2 (zh)
CA (1) CA3063188A1 (zh)
IL (1) IL270319B2 (zh)
SG (1) SG11201909789YA (zh)
WO (1) WO2018203098A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460206B (zh) * 2020-04-03 2023-06-23 百度在线网络技术(北京)有限公司 图像处理方法、装置、电子设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209743B1 (en) * 2010-03-09 2012-06-26 Facebook, Inc. CAPTCHA image scramble
CN104516898A (zh) * 2013-09-29 2015-04-15 国际商业机器公司 由服务器使用captcha来提供信息的方法和系统
CN104519044A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 经由不可解captcha进行阻挡

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2757290C (en) * 2008-04-01 2020-12-15 Leap Marketing Technologies Inc. Systems and methods for implementing and tracking identification tests
US20100162357A1 (en) * 2008-12-19 2010-06-24 Microsoft Corporation Image-based human interactive proofs
US8397275B1 (en) * 2009-02-05 2013-03-12 Google Inc. Time-varying sequenced image overlays for CAPTCHA
AU2010258278A1 (en) * 2009-06-10 2012-01-12 Site Black Box Ltd Identifying bots
US20130145441A1 (en) * 2011-06-03 2013-06-06 Dhawal Mujumdar Captcha authentication processes and systems using visual object identification
GB2507315A (en) * 2012-10-25 2014-04-30 Christopher Douglas Blair Authentication of messages using dynamic tokens
US8584225B1 (en) * 2012-12-21 2013-11-12 Live Nation Entertainment, Inc. Push channel authentication for mobile computing devices
US9223997B2 (en) * 2014-01-03 2015-12-29 Juniper Networks, Inc. Detecting and breaking CAPTCHA automation scripts and preventing image scraping
US9600678B1 (en) * 2014-12-05 2017-03-21 Ca, Inc. Image-based completely automated public turing test to tell computers and humans apart (CAPTCHA)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209743B1 (en) * 2010-03-09 2012-06-26 Facebook, Inc. CAPTCHA image scramble
CN104516898A (zh) * 2013-09-29 2015-04-15 国际商业机器公司 由服务器使用captcha来提供信息的方法和系统
CN104519044A (zh) * 2013-09-30 2015-04-15 瞻博网络公司 经由不可解captcha进行阻挡

Also Published As

Publication number Publication date
EP3754903B1 (en) 2022-09-21
EP3619890A4 (en) 2020-08-26
AU2017412612A1 (en) 2019-11-07
AU2017412612B2 (en) 2022-07-14
SG11201909789YA (en) 2019-11-28
EP3619890A1 (en) 2020-03-11
CA3063188A1 (en) 2018-11-08
IL270319A (zh) 2019-12-31
WO2018203098A1 (en) 2018-11-08
EP3619890B1 (en) 2021-11-03
EP3754903A1 (en) 2020-12-23
EP3754943A1 (en) 2020-12-23
IL270319B1 (en) 2023-05-01
IL270319B2 (en) 2023-09-01

Similar Documents

Publication Publication Date Title
US10007776B1 (en) Systems and methods for distinguishing among human users and software robots
US10127373B1 (en) Systems and methods for distinguishing among human users and software robots
US11943255B2 (en) Methods and apparatus for detecting a presence of a malicious application
US10218506B1 (en) Cross-device authentication
US9990487B1 (en) Systems and methods for distinguishing among human users and software robots
US9411958B2 (en) Polymorphic treatment of data entered at clients
WO2017101865A1 (zh) 一种数据处理方法和装置
US11063963B2 (en) Methods and apparatus for detecting remote control of a client device
US8893034B2 (en) Motion enabled multi-frame challenge-response test
US20150143481A1 (en) Application security verification method, application server, application client and system
US20160044025A1 (en) System and method for security enhancement
US20130106916A1 (en) Drag and drop human authentication
CN103647652B (zh) 一种实现数据传输的方法、装置和服务器
KR101027228B1 (ko) 인터넷 보안을 위한 본인인증 장치, 그 방법 및 이를 기록한 기록매체
US20230208878A1 (en) Systems and Methods for Tracking and Identifying Phishing Website Authors
AU2017412612B2 (en) Systems and methods for distinguishing among human users and software robots
CN111860482A (zh) 动态图形码验证方法及装置、电子设备和存储介质
CN112836186A (zh) 一种页面控制方法及装置
TWI426764B (zh) Randomly generate methods for verifying graphics and questionnaires
CN114629955A (zh) 一种身份认证方法、设备及计算机可读存储介质
CN105530260B (zh) 一种用于网站的安全性标识信息的设置方法和装置
JP2016224510A (ja) 情報処理装置、及びコンピュータプログラム
Sluganovic et al. IntegriScreen: Visually Supervising Remote User Interactions on Compromised Clients
US20240236146A1 (en) Methods and apparatus for detecting a presence of a malicious application
Shuang Using Context to Verify User Intentions

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200317