用于多方captcha的方法和设备的制作方法
【专利摘要】根据本发明的一个示例性实施例,一种方法包括:从至少一个器件接收至少一个针对生成挑战的请求;生成具有至少两个组成部分的挑战;把所述挑战的组成部分传送到所述至少一个器件;使得向至少两个用户呈现所述挑战的至少一部分;使得在所述至少两个用户之间进行通信;以及从所述至少一个器件接收至少两个针对所述挑战的响应。此外还描述了有关的设备和计算机程序产品。
【专利说明】用于多方CAPTCHA的方法和设备
【技术领域】
[0001]本申请总体上涉及互联网安全性。
【背景技术】
[0002]对于许多互联网服务来说,自动化软件程序或自动程序(robots,简称为bots)是成问题的。举例来说,自动程序可以被用来自动注册电子邮件地址从而使得所述地址可以被用于垃圾邮件或其他欺诈,或者被用来自动购买大批音乐会或表演的票从而能够以更高价格转售这些票。
[0003]为了区分软件自动程序与人类用户,许多互联网服务依赖于用以区分计算机与人类的完全自动化公共图灵测试,即CAPTCHA。在一个示例性实施例中,CAPTCHA是大多数人可以很容易通过而当前的计算机程序则应当无法通过的测试。举例来说,在线网络邮件服务可以在几次失败的登录尝试之后显示CAPTCHA。有效的人类用户将能够完成CAPTCHA并且再次尝试登录。软件自动程序应当无法继续尝试破解用户的口令。
【发明内容】
[0004]在权利要求书中阐述了本发明的实例的各个方面。
[0005]根据本发明的第一方面,一种方法包括:从至少一个器件接收至少一个针对生成挑战的请求;生成具有至少两个组成部分的挑战;把所述挑战的组成部分传送到所述至少一个器件;使得向至少两个用户呈现所述挑战的至少一部分;使得在所述至少两个用户之间进行通信;以及从所述至少一个器件接收至少两个针对所述挑战的响应。
[0006]根据本发明的第二方面,一种设备包括:至少一个处理器;以及包括计算机程序代码的至少一个存储器;所述至少一个存储器和计算机程序代码被配置成利用所述至少一个处理器使得所述设备至少执行以下步骤:从至少一个器件接收至少一个针对生成挑战的请求;生成具有至少两个组成部分的挑战;把所述挑战的组成部分传送到所述至少一个器件;使得向至少两个用户呈现所述挑战的至少一部分;使得在所述至少两个用户之间进行通信;以及从所述至少一个器件接收至少两个针对所述挑战的响应。
[0007]根据所期望的配置,前面所提到的方面和特征可以被实施在系统、设备、方法和/或制品中。在附图和后面的描述中阐述了这里所描述的主题内容的一个或多个变型的细节。根据该描述和附图以及权利要求书,这里所描述的主题内容的特征和优点将变得显而易见。
【专利附图】
【附图说明】
[0008]为了更加全面地理解本发明的示例性实施例,下面将参照结合附图给出的描述,其中:
[0009]图1描绘出根据本发明的一个示例性实施例的能够验证用户是人类的示例性系统;[0010]图2描绘出根据本发明的一个示例性实施例的服务器的示例性组件;
[0011]图3描绘出根据本发明的一个示例性实施例的用于验证用户的示例性处理;
[0012]图4描绘出根据本发明的一个示例性实施例的用于从用户接收响应并且确定用户是否能够对用以区分计算机与人类的完全自动化公共图灵测试(即CAPTCHA测试)成功做出响应的示例性处理;
[0013]图5描绘出根据本发明的一个示例性实施例的基于多方卡拉OK的分解短语的示例性方法;以及
[0014]图6描绘出根据本发明的一个示例性实施例的可被配置成作为服务器操作的设备。
【具体实施方式】
[0015]通过参照附图当中的图1到图6,将会理解本发明的示例性实施例及其潜在优点。
[0016]图1描绘出根据本发明的一个示例性实施例的能够验证用户是人类的示例性系统100。系统100包括通信网络107、一个或多个用户装备101、一个或多个网络服务器109以及一个或多个服务器113。用户在用户装备101上运行网络应用。网络服务器109是运行网站以提供互联网服务的器件。用户装备101从第三方网络服务器109 (例如Ticketmaster,票务大师)请求服务(例如买票),并且网络服务器109向服务器113发送针对挑战的请求。服务器113将挑战发送回网络服务器109,网络服务器109将挑战转发到用户装备101以便呈现给用户。
[0017]在一个示例性实施例中,所述挑战可以是文字图像,以供用户估计文字图像内的字符。用于用户装备101和网络服务器109的互联网服务提供商通过通信网络107在网络服务器109、服务器113与用户装备101之间中继流量。通信网络107提供对于网络服务器109和在用户装备101中运行网络应用的用户装备101的访问。使用用以区分计算机与人类的完全自动化公共图灵测试CAPTCHA来区分软件自动程序与人类用户的网络服务器109通常从服务器113批准服务。服务器113可以是第三方服务器。此外,服务器113可以是CAPTCHA服务器。
[0018]网络服务器109从第三方服务器113获取挑战。在一个示例性实施例中,服务器113是向网络服务器109供应光学字符识别OCR软件尚不能读取的字图像的系统。当用户在用户装备101上输入一个字符串时,网络服务器109将应答发送到服务器113。服务器113评估应答是否正确,并且将响应发送回网络服务器109。
[0019]图2描绘出根据本发明的一个示例性实施例的服务器的示例性组件。服务器200可以类似于图1的服务器113,其包括用于验证用户是人类的一个或多个组件。这些组件的功能可以被组合在一个或多个组件中,或者由具有等效功能的其他组件执行。在一个实施例中,服务器200至少包括挑战生成器201、一个或多个挑战数据库203、一个或多个存储装置207以及响应评估器205。
[0020]挑战生成器201利用至少一个或多个数据库103生成一项或更多项挑战。挑战生成器201随后把所述挑战传送到一个或多个用户装备101。此外,响应评估器205评估接收自所述一个或多个用户装备101的一个或多个响应。把这些一个或多个响应与所述一个或多个数据库203进行比较。可以把所接收到的一个或多个响应以及/或者来自所述一个或多个响应的数据存储在存储装置207处,以供进一步的和/或后来的处理。
[0021]在一个示例性实施例中,多方CAPTCHA是一个谜题,其需要两个或更多用户协作来解决该谜题。服务器200生成挑战并且将其分解成至少两个组成部分。服务器200将每一个组成部分发送给不同用户,并且在用户之间提供通信信道(比如安全的语音、数据或视频流),从而使其可以协作应答所述挑战。用户可以通过把应答键入到文字输入框中来解决CAPTCHA,或者可以向用户呈现一组图像、音频、动画或视频,并且要求用户选择代表其响应的画面、音频文件、动画或视频。
[0022]为了使得对于自动程序是安全的,所生成的挑战应当是计算机难以解析的挑战。例如可以使用语音,这是因为话音识别系统难以应对较短的短语,此时存在无限数目的可能响应,并且系统并未针对说话者的语言特质受到训练。此外,服务器200可以提供使得用户将其伙伴标记为非人类实体的机制。举例来说,用户接口可以提供用以把伙伴标识为计算机程序的按钮。这样,服务器的用户就可以帮助识别出正在使用系统的自动程序。
[0023]图3描绘出根据本发明的一个示例性实施例的用于验证用户的示例性处理。在一个示例性实施例中,图3描绘出根据本发明的一个示例性实施例的用于接收请求并且生成用于验证用户的一项或更多项CAPTCHA挑战的示例性处理。在方框301处,服务器(例如图2的服务器200)从第一网络服务器接收针对生成第一用户的新挑战的请求。在方框303处,服务器将该第一请求标记为“待定”并且等待第二用户的挑战,从而使得服务器可以把第一和第二请求配对。为了避免第一用户的长时间等待,服务器可以设立一个定时器Tl。服务器启动定时器tl并且等待第二请求。如果在第二请求到达之前定时器tl到期,则可以使用单方替换方案。在单方替换方案中,将第一用户与一个仿真用户配对,从而可以对第一用户进行验证。服务器可以仿真第二用户并且与第一用户配对。
[0024]在方框305处,服务器从第一或第二网络服务器接收针对第二用户的新挑战的请求。在方框307处,服务器检查定时器tl是否激活。如果定时器已经到期,则不再有第一请求待定。在长时间等待之后,第一请求可能已经与一个仿真用户配对。第二请求回到方框303,将其自身标记为第一请求,启动新的定时器tl,并且等待第二用户请求来配对。
[0025]在方框309处,如果定时器tl尚未到期,则服务器把第一请求与第二请求配对,并且生成包括两个组成部分的CAPTCHA挑战。所述CAPTCHA挑战可以包括文本字符串的图像以及通过互联网协议的语音VoIP或者服务器与网络服务器之间的视频流。
[0026]在方框311处,服务器把所述挑战的第一组成部分发送到第一网络服务器,例如图1的网络服务器109。第一网络服务器充当代理,并且把第一挑战组成部分转发给第一用户。在方框313处,服务器把所述两个组成部分的挑战的第二组成部分发送到第二网络服务器。第二网络服务器充当代理,并且把所述挑战转发给第二用户。注意,如果第一用户和第二用户正在访问相同的服务器,则第一网络服务器和第二网络服务器可以是相同的服务器。在方框315处,服务器充当代理以便提供第一用户与第二用户之间的通信。
[0027]在本发明的一个实施例中,预期全部两个用户都会输入针对挑战的完全相同的应答。在本发明的另一个实施例中,每一个用户基于另一个用户的挑战生成应答。图4描绘出根据本发明的一个示例性实施例的用于接收来自用户的响应并且确定用户是否通过CAPTCHA挑战的示例性处理。在方框401处,服务器(例如图2的服务器200)接收来自用户的响应。在方框403处,对用户的响应进行验证。如果全部两个用户都输入了正确的应答,则用户就成功解决了 CAPTCHA挑战。在方框405处,服务器向用户的网络服务器(例如图1的网络服务器109)通知验证状态。
[0028]如果用户未能通过CAPTCHA挑战,则任一个用户都可以请求新的挑战。服务器创建新的请求并且可能把该用户与一个新伙伴配对。虽然在这里仅仅讨论了关于两个组成部分/用户的多方挑战实例,但是所述讨论也适用于多于两个组成部分/用户的情况。
[0029]多方挑战的一个实施例可以是基于分解短语。举例来说,用户A接收到一个短语中的每一个奇数单字,用户B接收到每一个偶数单字。预期全部两个用户都输入完整的短语。这就需要有阅读文本、理解远程说出的一半并且按照合理的顺序输入全部两部分的能力。可以从任何文本语料库中挑选短语,例如牛津英语语料库。
[0030]图5描绘出根据本发明的一个示例性实施例的基于多方卡拉OK的分解短语的示例性方法。卡拉OK是使得服务器显示并高亮显示供用户随之说出的字的活动。服务器从文本语料库中获取一个短语“try on a dress (试穿一条裙子)”。在方框501处,用户A从服务器接收到“try a”,用户B接收到“on dress”。服务器高亮显示单词用于用户按照正确的顺序说出。在方框503处,用户A读出“try”。在方框505处,用户B读出“on”。在方框507处,用户A读出“a”。在方框509处,用户B读出“dress”。通过对于每一个单词进行独立于说话者的话音识别并且随后在有匹配之后进行推进,服务器可以自动推进经过单词。这是有可能的,因为服务器知晓需要被识别的单个单词。
[0031]在方框511处,全部两个用户随后键入应答“try on a dress”。如果来自用户A和用户B的应答是正确的,则服务器向网络服务器返回成功。否则,如果来自用户A和用户B的其中一个或全部两个应答是错误的,则服务器向网络服务器返回失败状态。多方CAPTCHA依赖于用户交互来验证用户是否人类。在一个示例性实施例中,即使仅有一个用户未能通过挑战,所述验证也随之失败。该示例性多方卡拉OK方法将防止自动程序通过搜索语料库来猜测短语,这是因为服务器可以从任何文本语料库生成短语。
[0032]多方挑战的另一个示例实施例是谜语。谜语既需要阅读也需要常识推理。这就使得计算机难以解答谜语。用户A提问谜语“在手指上佩戴什么? ”用户B键入“戒指”。用户B随后提问第二则谜语“晴天的天空是什么颜色? ”用户A键入“蓝色”。用户可能需要向彼此大声读出短语以解决挑战。可以利用常识数据库来生成谜语,并且使用同义词来扩展可能的谜语和应答。
[0033]服务器可以为用户提供用户接口元件,以将伙伴识别为非人类。举例来说,服务器可以提供名为“我的伙伴不是人类”的图形用户接口 GUI按钮,并且该按钮由网络服务器呈现。如果用户点击该按钮,则将为两个用户给出新的多方挑战并且其中包括新的伙伴。此夕卜,所述伙伴被标记为可能不是人类,并且用户的任何概率评估可以将这一点纳入考虑。
[0034]图6描绘出根据本发明的一个示例性实施例的可配置成作为服务器操作的设备。芯片组600被编程来提供CAPTCHA服务,其例如是合并在一个或多个物理包装(例如芯片)中的关于图2描述的处理器和存储器组件。举例来说,一个物理包装包括结构套件(例如基板)上的一种或更多种材料、组件和/或连线的布置,以便提供例如物理强度、尺寸节省和/或电交互限制之类的一项或多项特性。可以设想到在某些实施例中,芯片组600可以被实施在单个芯片中。还可以设想到在某些实施例中,芯片组或芯片600可以被实施为单个“芯片上系统”。还可以设想到在某些实施例中,例如将不使用单独的ASIC,并且这里所公开的所有相关功能都将由一个或多个处理器执行。芯片组或芯片600或者其一部分构成用于执行提供与服务可用性相关联的用户接口导航信息的一个或多个步骤的装置。芯片组或芯片600或者其一部分构成用于执行提供CAPTCHA服务的一个或多个步骤的装置。
[0035]在一个实施例中,芯片组或芯片600包括例如总线601之类的通信机制,以用于在芯片组600的组件之间传递信息。处理器603连接到总线601,以便执行指令并且处理例如存储在存储器605中的信息。处理器603可以包括一个或多个处理核心,其中每一个核心被配置成独立地运转。多核处理器允许在单个物理包装内进行多处理。多核处理器的实例包括两个、四个、八个或者更多数目的处理核心。替换地或附加地,处理器603可以包括通过总线601串联配置的一个或多个微处理器,以便允许独立执行指令、流水线化和多线程。处理器603还可以伴随有一个或多个专用组件以便执行特定处理功能和任务,比如一个或多个数字信号处理器DSP607、一个或多个专用集成电路ASIC609。DSP607通常被配置成独立于处理器603实时地处理真实世界的信号(例如声音)。类似地,ASIC609可以被配置成执行不易由更加通用的处理器执行的专用功能。用以帮助执行这里所描述的本发明的功能的其他专用组件可以包括一个或多个现场可编程门阵列(FPGA)(未示出)、一个或多个控制器(未示出)或者一个或多个其他专用计算机芯片。
[0036]在一个实施例中,芯片组或芯片600仅仅包括一个或多个处理器以及支持和/或关于和/或用于所述一个或多个处理器的一些软件和/或固件。
[0037]处理器603和伴随组件通过总线601连接到存储器605。存储器605包括动态存储器(例如RAM、磁盘、可写光盘等等)和静态存储器(例如ROM、CD-ROM等等)以用于存储可执行指令,当被执行时,所述可执行指令执行这里所描述的本发明的步骤以提供CAPTCHA服务。存储器605还存储与本发明的步骤的执行相关联或者由之生成的数据。
[0038]在不以任何方式限制以下权利要求书的范围、解释或应用的情况下,这里所公开的一个或多个示例性实施例的一项技术效果在于,当语法不受限制并且系统独立于说话者时,话音识别对于自动化软件程序来说是一个困难得多的问题。多方CAPTCHA将迫使任何对抗者的系统支持不受限制的语法并且独立于说话者。这里所公开的一个或多个示例性实施例的另一项技术效果在于,人类可以非常有效地从人类当中识别出非人类。通过强制用户彼此进行交互将有助于识别出自动化软件程序。这里所公开的一个或多个示例性实施例的另一项技术效果在于,多方CAPTCHA依赖于常识推理,众所周知这是自动程序难以解决的问题。
[0039]本发明的实施例可以用软件、硬件、应用逻辑或者软件、硬件和应用逻辑的组合来实施。所述软件、应用逻辑和/或硬件可以驻留在CAPTCHA服务器、互联网服务提供商或用户装备处。如果期望的话,所述软件、应用逻辑和/或硬件的一部分可以驻留在CAPTCHA服务器处,所述软件、应用逻辑和/或硬件的一部分可以驻留在互联网服务提供商处,并且所述软件、应用逻辑和/或硬件的一部分可以驻留在用户装备处。在一个示例性实施例中,所述应用逻辑、软件或指令集被保持在各种传统的计算机可读介质当中的任一种上。在本文献的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令以供例如计算机之类的指令执行系统、设备或器件使用或者与之相结合地使用的任何介质或装置,在图6中描述并描绘出计算机的一个实例。计算机可读介质可以包括计算机可读存储介质,其可以是能够包含或存储指令以供例如计算机之类的指令执行系统、设备或器件使用或者与之相结合地使用的任何介质或装置。
[0040]如果希望的话,这里所讨论的不同功能可以按照不同顺序和/或彼此同时地执行。此外,如果希望的话,前面所描述的其中一项或更多项功能可以是可选的或者可以被组
口 ο
[0041]虽然在独立权利要求中阐述了本发明的各个方面,但是本发明的其他方面包括来自所描述的实施例和/或从属权利要求的特征与独立权利要求的特征的其他组合,而不仅仅是在权利要求书中明确地阐述的组合。
[0042]还应当注意,虽然前面描述了本发明的示例性实施例,但是这些描述不应当被视为进行限制。相反,在不背离如所附权利要求书中限定的本发明的范围的情况下可以有几种变型和修改。
【权利要求】
1.一种方法,其包括: 从至少一个器件接收至少一个针对生成挑战的请求; 生成具有至少两个组成部分的挑战; 把所述挑战的组成部分传送到所述至少一个器件; 使得向至少两个用户呈现所述挑战的至少一部分; 使得在所述至少两个用户之间进行通信;以及 从所述至少一个器件接收至少两个针对所述挑战的响应。
2.权利要求1的方法,其中,所述挑战是利用常识数据库生成的谜语。
3.权利要求1的方法,其中,所述挑战包括短语的至少两个分段。
4.权利要求1的方法,其中,所述至少两个用户之间的通信包括语音、数据和视频流的至少其中之一。
5.权利要求1的方法,其中,所述至少两个组成部分的其中之一被发送给仿真用户。
6.权利要求1的方法,其中,所述至少两个组成部分包括一组图像、音频、动画和视频的至少其中之一。
7.权利要求1的方法,其中,所述至少两个响应当中的一个至少部分地是基于所述至少两个响应当中的另一个。
8.权利要求1的方法,其中,所述至少两个响应的至少其中之一还包括: 表明所述至少两个用户的其中之一是非人类的指示。
9.权利要求1的方法,其还包括: 对所述响应进行验证以确定所述挑战是否被解决; 向所述至少一个器件通知所述至少两个用户是人类还是非人类。
10.一种设备,其包括: 至少一个处理器;以及 包括计算机程序代码的至少一个存储器; 所述至少一个存储器和计算机程序代码被配置成,利用所述至少一个处理器使得所述设备至少执行以下步骤: 从至少一个器件接收至少一个针对生成挑战的请求; 生成具有至少两个组成部分的所述挑战; 把所述挑战的组成部分传送到所述至少一个器件; 使得向至少两个用户呈现所述挑战的至少一部分; 使得在所述至少两个用户之间进行通信;以及 从所述至少一个器件接收至少两个针对所述挑战的响应。
11.权利要求10的设备,其中,所述挑战是利用常识数据库生成的谜语。
12.权利要求10的设备,其中,所述挑战包括短语的至少两个分段。
13.权利要求10的设备,其中,所述至少两个用户之间的通信包括语音、数据和视频流的至少其中之一。
14.权利要求10的设备,其中,所述至少两个组成部分的其中之一被发送给仿真用户。
15.权利要求10的设备,其中,所述至少两个组成部分包括一组图像、音频、动画和视频的至少其中之一。
16.权利要求10的设备,其中,所述至少两个响应当中的一个至少部分地是基于所述至少两个响应当中的另一个。
17.权利要求10的设备,其中,所述至少两个响应的至少其中之一还包括: 表明所述至少两个用户的其中之一是非人类的指示。
18.权利要求9的设备,其中,所述计算机程序代码还被配置成使得所述设备执行以下步骤: 对所述响应进行验证以确定所述挑战是否被解决; 向所述至少一个器件通知所述至少两个用户是人类还是非人类。
19.一种包括计算机可读介质的计算机程序产品,所述计算机可读介质承载有具体实现在其中的与计算机一起使用的计算机程序代码,所述计算机程序代码包括: 被配置成从至少一个器件接收至少一个针对生成挑战的请求的代码; 被配置成生成具有至少两个组成部分的挑战的代码; 被配置成把所述挑战的组成部分传送到所述至少一个器件的代码; 被配置成使得向至少两个用户呈现所述挑战的至少一部分的代码; 被配置成使得在所述至少两个用户之间进行通信的代码;以及 被配置成从所述至少一个器件接收至少两个针对所述挑战的响应的代码。
20.权利要求19的计算机程序产品,其中,所述挑战是利用常识数据库生成的谜语。
21.权利要求19的计算机程序产品,其中,所述挑战包括短语的至少两个分段。
22.权利要求19的计算机程序产品,其中,所述至少两个用户之间的通信包括语音、数据和视频流的至少其中之一。
23.权利要求19的计算机程序产品,其中,所述至少两个组成部分的其中之一被发送给仿真用户。
24.权利要求19的计算机程序产品,其中,所述至少两个组成部分包括一组图像、音频、动画和视频的至少其中之一。
25.权利要求19的计算机程序产品,其中,所述至少两个响应当中的一个至少部分地是基于所述至少两个响应当中的另一个。
26.权利要求19的计算机程序产品,其中,所述至少两个响应的至少其中之一还包括: 表明所述至少两个用户的其中之一是非人类的指示。
27.权利要求19的计算机程序产品,其还包括: 被配置成对所述响应进行验证以确定所述挑战是否被解决的代码; 被配置成向所述至少一个器件通知所述至少两个用户是人类还是非人类的代码。
【文档编号】A63F13/843GK103702725SQ201180065226
【公开日】2014年4月2日 申请日期:2011年2月1日 优先权日:2011年2月1日
【发明者】H·拉夫勒, C·郭 申请人:诺基亚公司