CN102947837B - 人机交互证明引擎的自动构造 - Google Patents

人机交互证明引擎的自动构造 Download PDF

Info

Publication number
CN102947837B
CN102947837B CN201180030808.9A CN201180030808A CN102947837B CN 102947837 B CN102947837 B CN 102947837B CN 201180030808 A CN201180030808 A CN 201180030808A CN 102947837 B CN102947837 B CN 102947837B
Authority
CN
China
Prior art keywords
identifying code
symbol
complicated
man
machine interaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180030808.9A
Other languages
English (en)
Other versions
CN102947837A (zh
Inventor
G.J.胡尔滕
P.Y.西玛
D.基罗夫斯基
J.B.林德
C.A.米克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102947837A publication Critical patent/CN102947837A/zh
Application granted granted Critical
Publication of CN102947837B publication Critical patent/CN102947837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Debugging And Monitoring (AREA)

Abstract

人机交互证明(“HIP”,有时被称为“验证码”)可以自动地生成。验证码规范语言可以被定义,其允许验证码方案根据符号将如何被选取和绘制以及如何使那些符号模糊来定义。该语言可提供指定使符号模糊的各种方式的机制。新的验证码方案可以通过使用结合来自已经成功的现有验证码方案的特征的遗传算法而根据现有规范生成。并且,验证码方案已被攻击者破解的可能性可以通过收集关于破解现有验证码方案所花费的时间的数据并且使用回归来根据验证码特征或其测量的质量估计破解时间来估计。

Description

人机交互证明引擎的自动构造
背景技术
人机交互证明(HIP),有时也被称为“验证码”,是被用来区分用户和机器人的机制。在web上可获得的许多服务(例如电子邮件、博客、社交网络、对专利数据库的访问等)通过验证码设置门槛。在典型的验证码方案中,字母和数字以某种被设计成使这些字母和数字模糊的方式而作为图形被显示在屏幕上。用户必须将这些字母和数字键入框中作为一种该用户是人类的证明的形式。验证码背后的理论是识别已被有意地使其模糊的符号是需要人脑灵活性的难题。因此,验证码有时类似于应用的图灵测试。
验证码带来的问题是它们可以以各种方式被破解。一旦特定的验证码方案已经被使用了一定量的时间,在光学字符识别(OCR)系统可被训练以识别它们的意义上,经模糊的符号变得可识别。OCR因此是破解验证码的一种自动化方式,并且只要有训练OCR的足够数据,它就能够工作。训练数据可由人类验证码求解器(solver)来生成,或者甚至可仅通过猜测解和分析哪些猜测成功以及哪些猜测失败来生成。由于验证码自身可被用作训练数据,只要验证码方案在使用中,它就继续生成可被用来破解该方案的训练数据。因此,验证码方案一般具有有限的保存期限,在该期限后它们有可能被破解。除了OCR之外,另一种破解验证码方案的方式是使用廉价的人类劳动力来求解验证码。验证码可在世界的任何地方(包括劳动力廉价的地方)被电子地传输,并且若干团队的人可被雇佣来求解验证码。经求解的验证码可实时地得以使用,或者这些解可被存储并被用作OCR系统的训练数据,从而允许人类破解馈入自动化破解的过程。
由于验证码被用来概率性地确保服务正被人类而不是机器使用,为了验证码继续为它们的预期目的服务,验证码方案经常不得不被改变。但是改变验证码方案涉及设计和测试新的方案,这可能是劳动密集型的。因此,一般地,新的验证码方案不像它们可能被设计和部署的情况那样频繁地被设计和部署。
发明内容
验证码可使用简化描述方案的元素和参数的过程的系统来指定。并且,通过使用遗传算法来改变验证码方案的元素和参数,验证码方案可随时间得以改变和增强。此外,验证码方案的有效性可被监控以确定何时现有方案已被攻击者破解或者可能已被破解。
验证码规范语言可被用来指定验证码方案。该语言可包括允许验证码的各种元素得以指定的特征。例如,验证码典型地包括构成对验证码挑战的正确回答的字母和/或数字的一些序列。为了创建作为挑战的一部分展示给用户的图形,符号(例如字母和数字)可以以某种字体来打印。可通过歪曲、倾斜、模糊等来使符号失真。被设计来干扰OCR系统的干扰项(例如各种不同角度的线、形状、各种不同对比度水平的背景等)可与符号一起得以显示。该语言可允许符号和干扰项的参数被指定—例如,歪曲、倾斜、模糊到什么程度;干扰项的类型、大小和形状;等。在一个示例中,参数可被指定为概率分布—例如,参数可被指定为具有某种均值和方差的正态分布随机变量,使得用于验证码的特定实例的实际参数值将通过具有指定分布的随机过程来选取。
使用验证码规范语言的一个方面是它使人们相对容易地指定新的验证码方案。然而,使用这样的语言的另一个方面是它使自动化生成新方案的过程成为可能。例如,遗传算法可被用来组合来自已经被发现是有效的验证码方案的元素,以便创建新的方案。并且,验证码方案的有效性可以被监控,并且统计技术可被用来判断验证码方案的特定特征或特征组合的有效性。特别地,回归分析可被用来根据新方案对现有OCR的抵抗力的测量水平或基于新方案和现有方案的特征之间的差异的水平,来预测破解新的验证码方案将花多长时间。
该发明内容被提供来以简化的形式引入在下文具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识要求保护的主题的关键特征或本质特征,也不旨在被用来限制要求保护的主题的范围。
附图说明
图1是可出现在验证码中的一些示例符号的框图。
图2是可在验证码规范中指定的各种示例特征的框图。
图3是创建新验证码方案的示例过程的流程图。
图4是可被用来访问程序质量的示例过程的流程图。
图5是可结合在此描述的主题的实现方式使用的示例组件的框图。
具体实施方式
人机交互证明(HIP)通常被用来设置访问服务的门槛。HIP被用来概率性地区分人类用户和机器人。例如,诸如电子邮件、博客、社交网络等之类的一些web服务在用户尝试注册该服务时呈现HIP挑战。如果用户没有通过该HIP挑战,则不允许该用户注册账户。作为另一个示例,人们在web上执行的诸如在博客上发帖、下载公共记录等之类的的某些动作通过HIP挑战设置门槛,使得基于用户是否正确地回答该HIP来允许或不允许服务。HIP有时被称为验证码。
验证码带来的一个问题是它们可被破解。有效的验证码一般取决于能够显示出人类将觉得相对容易地识别的、但机器将觉得难以识别的符号的某种集合。普通的、朴素的字母形成差的验证码,因为光学字符识别(OCR)技术可以相对轻松地识别普通字母。因此,验证码方案一般着眼于以某种方式使字母和数字模糊—足以扰乱OCR算法,但是不会模糊到使得字符对人类而言是不可读的程度。
存在使字符模糊的各种不同的方式。例如,符号可被歪曲、倾斜、模糊或以某种其它方式变换。或者,可向这些符号增加干扰项。干扰项的示例包括:以被设计来扰乱验证码分段成它的离散符号的各种角度的直线或曲线;被设计来扰乱区分符号和其背景的对比度检测技术的各种颜色或图案的背景;或其它类型的干扰项。在另一个示例中,验证码方案可涉及使不同的符号以某种程度相互交叉,这(如上述直线或曲线干扰项那样)也被设计来扰乱验证码图像分段成它的构成符号。
然而,无论如何精心设计验证码方案,它最终可能被破解。验证码方案的使用提供了连续的训练数据源。呈现的每一个验证码提供了人类验证码求解器可求解以便生成训练数据的示例。并且,每当呈现验证码时,即使机器人简单地对回答做出有根据的猜测,呈现该验证码挑战的系统也要用成功或失败来响应。关于哪些猜测成功和哪些猜测失败的信息本身可被用作一种形式的训练数据。换句话说,在以下意义上验证码方案具有保存期限:在验证码方案首先被部署后一定量时间,足够的数据将是可获得的以使得具有机器学习算法的OCR可被训练以便以某种可靠性水平求解验证码(可能伴有对机器学习算法、训练数据和/或该算法产生的结果的一些人为调整)。并且,即使训练在特殊验证码方案上的OCR算法被证明是困难的,世界提供了可被用来求解验证码的廉价劳动力的源。由于验证码可以由图像数据(或者甚至音频数据)构成,数据可在劳动力成本低的世界的任意地方被发送。在世界的这些低成本地区中的一些中存在按数百验证码一美元的比率使用人类劳动力求解验证码的生意。
因此,验证码的有效使用可取决于频繁地改变验证码方案以混淆OCR求解器。在此的主题提供了用于指定验证码方案以便允许这些方案容易并快速地改变的技术。并且,在此的主题提供了用于通过组合来自现有验证码方案的有效特征来创建新的验证码方案的技术。此外,在此描述的技术可被用来监控已部署的验证码方案保持有效多长时间,以便预测何时新的验证码方案可能已被破解。
为了有效地创建验证码方案,可使用验证码规范语言。验证码规范语言的一个示例是XAML的变形,其可被称为HXAML。XAML(可扩展应用标记语言)是被用来定义包括图形元素的用户界面(UI)的元素的语言。HXAML是对XAML的扩展,其可被用来指定UI的HIP元素。HXAML提供与使符号模糊(例如模糊、倾斜等)问题相关的原语(primitive)。HXAML仅是可被用来指定验证码的语言的一个示例;也可使用其它机制。不管使用的特定验证码规范语言如何,该语言可提供用于为验证码指定答案(即构成针对验证码挑战的正确答案的字母、数字或其它符号)以及这些符号将被绘制和失真的方式的机制。例如,该语言可允许用户指定符号的字体;被应用于符号的倾斜、歪曲、模糊等的量;与符号一起绘制的干扰项(例如外来的直线或曲线)的存在和性质;在其上绘制符号的背景的性质;动画显示符号的方式;符号交叉的程度;或者验证码外观的任何其它特征。该语言可允许该方案具有一些内置可变性。因此,在一个示例(无可变性)中,方案可指定字母被顺时针倾斜30度。但是,在另一个示例中,倾斜的量可被指定为随机变量,比如均值为30度且方差为100(即10度的标准差)的正态变量。
由于验证码规范语言允许验证码被指定为特征的组合,因此使用诸如遗传算法之类的技术自动地修改验证码方案是可能的。遗传算法允许现有方案的特征以新的方式组合以产生新的方案。在一个示例中,来自特别有效的验证码方案的特征可被组合,以便生成具有高成功可能性的方案。
并且,当新的验证码方案被部署时,监控这些方案以确定它们何时被破解是可能的。并且,来自该监控的数据可与统计方法一起被用来确定新方案被破解可能将花费的时间量。给定具有特征的某个集合的验证码方案的某个集合,直到验证码方案被破解所花费时间量可被映射到该验证码方案的特征。然后,可以使用回归来基于特定验证码方案所包含的特征预测破解它将花费多长时间。
现在回到附图,图1示出了可在验证码中出现的一些示例符号。这些符号以多种特征出现。图102是字母A的图。图102包括字母A自身的表示104。此外,图102在背景106上示出了字母A。背景106在图1的图中被表示为打点的点画(dottedstipple)图案,尽管在现实生活的验证码中背景106可具有颜色和/或更复杂的图案。背景106被设计来扰乱OCR算法。由于OCR算法一般包括通过寻找发生鲜明对比度的区域来区分符号与背景的过程,因此复杂背景的使用被设计来扰乱OCR算法检测对比度的能力。此外,图102包含线108,其交叉切割字母A的表示104。OCR中的一个困难的问题是图像的各部分分段成符号。通过在符号上绘制外来的直线或曲线,对可以被用来破解验证码方案的OCR算法而言,使分段问题更复杂。
图110包含字母A另一个表示112。在图110中,字母A逆时针旋转了大概45度。符号表示的旋转旨在通过使确定要被识别的符号的取向的问题复杂化来扰乱OCR算法。
图114包含字母A的另一个表示116。在图114中,字母A是模糊的(如由虚线呈现那样)。符号的模糊是能被用来扰乱OCR算法的另一种方式。
图102、110和114示出了使正被绘制的符号模糊的各种方式。(这些图是模糊技术的简化表示;在现实世界的验证码方案中,将使用更复杂的技术)。在这些图中使用的每一种模糊技术以及应用它们的程度可构成验证码方案的特征。(出于在此讨论的目的,倾向于使验证码的解模糊的特征可被称为“复杂化”。干扰项、失真、背景等是复杂化的示例)。因此,符号被倾斜的事实(如在图110中那样)可以是特定验证码方案的特征。此外,符号倾斜的量(例如45度)或者选取随机倾斜的特定方式(例如具有45度均值和10度标准差的正态随机变量)也可以是验证码方案的特征。在图102中示出的背景和干扰项线以及图114中的模糊也可以是验证码方案的特征,如同描述这些特征被应用的程度的参数可以是验证码方案的特征那样。可配置的验证码生成器118可被用来生成具有特定特征的验证码。可配置的验证码生成器118可基于在诸如HXAML之类的验证码规范语言中所写的规范来生成验证码。
存在各种方式来设计验证码规范语言。在一个示例中,该语言提供指定验证码的各种元素和指定将如何绘制那些元素的参数的机制。图2示出了可在验证码规范200中指定的各种示例特征。
可在验证码规范中指定的一种类型的特征是基本视觉元素202。这些元素的示例包括要被再现的文本204(例如诸如A、B、C、1、2、3之类的符号等)。视觉元素的另一个示例是干扰项206。在某种程度上,验证码中的许多特征(例如倾斜的角度、背景的颜色或图案等)被设计成扰乱OCR算法。干扰项206是通过绘制特定视觉元素(例如直线、曲线、污迹等)来创建该扰乱的一个特定方式。在语义上,文本204和干扰项206之间的区别在于,虽然两者都是将被绘制的对象,但是文本204是针对验证码挑战的答案的一部分,而干扰项206不是。即,如果文本204包含字母A,则字母A是针对挑战的答案的一部分。然而,如果干扰项206是直线或曲线,该直线或曲线不是答案的一部分,而是使该答案模糊的特定方式。
各种视觉元素可以以某种方式而被参数化。参数208是可在验证码规范语言中指定的一些示例参数。一个示例参数是位置210。字体中的符号一般具有相对于左上角的经定义的四边形边界。默认地,符号的左上角被绘制在与被指定来绘制该符号的区域的左上角相同的位置。然而,位置210可被指定为从该默认位置的某种垂直和/或水平的偏移。
参数的另一个示例是切线布局212,其涉及元素相互交叉的程度。例如,默认地,符号相互紧邻地被绘制,以便不交叉。然而,符号间的交叉可以是用于验证码的相关属性,因为交叉的符号倾向于扰乱视觉分段算法。因此,给定要被绘制经定义的对象的某个集合,切线布局212可指定将使其相互交叉的像素数量。(定义“要被绘制的对象集合”的一种方式是将这些对象放到容器中。因此,切线布局参数可指定在该参数应用于的容器中所有对象间的交叉像素的数量。在验证码规范语言中容器的使用在下文将进一步地描述)。
参数的另一个示例是动画214。动画涉及用户(或OCR引擎)为了求解验证码必须观看的验证码的整个视图可能在单一的瞬时不是可获得的思想。换句话说,获取求解验证码将利用的视觉信息的全部量可能不但涉及空间,还涉及时间。在一个简单的示例中,动画指定图改变的速率。用于描述视觉元素的许多格式允许某种简单形式的动画。例如,XAML和图形交换格式(GIF)允许对象通过行进遍历(proceedingthrough)或循环遍历有限数目的图而被动画显示。在一个示例中,动画可如下地得以指定。参数可被指定为将从概率分布得出的随机变量。(概率分布作为参数的使用在下文将更详细地得以描述)。因此,在该示例中,动画参数可取两个自变量,N和x,其对于每个随机化参数指定N个值将根据随机参数的概率分布来选取,并且这N个值在x秒的计时器上将循环。因此,如果一个参数是要被绘制的直线的角度,并且该参数选自正态分布,则动画显示:具有N=5和x=2的直线将从角度的分布选取N个值并且将每两秒改变该直线的角度。该图案将在5个角度改变后重复。然而,前述仅是动画的一个示例。动画可采取跨越验证码的字母和数字移动“焦点”的形式,使得验证码的不同部分在不同的时间成为关注的焦点。或者,动画可涉及使相互靠近的验证码像素在相同的时间位于它们的正确的相对位置,但是使相互远离的像素在不同的时间位于它们的正确的相对位置,从而通过确保在显示整个验证码的时间不存在单个点而使在验证码上执行简单图像捕获的过程复杂化。一个或多个参数可定义该动画如何得以执行—即验证码在持续时间上将被显示的方式,而不是一次性全部显示。
参数的另一个示例是失真216。失真可采取各种形式。例如,失真可采取模糊、歪曲、倾斜、其它类型的变形或其任意组合的形式。失真的每一个不同形式可由单独的参数来指定,因此失真实际上可以被指定为参数集合。例如,倾斜角度可以是一个参数,模糊的量可以被指定为另一个参数等等。
我们现在转到指定参数的各种不同方式218。例如,如果特定的验证码方案指定验证码的元素将以某个角度倾斜,则存在各种方式来指定该角度。参数可被指定为固定值20。然而,如上所述,参数可被指定为从某个概率分布选取的随机变量。这样的概率分布的一个示例是高斯(或“正态”)分布222。高斯分布可通过它们的均值和方差(或标准差)来指定。因此,参数可被指定为“G10,1”,指示将从均值为10且方差/标准差为1的正态分布得出一个数。类似地,参数可被指定为从均匀分布224得出。因此,参数可被指定为“U10,100”,指示将从分别具有100和10的上限和下限的均匀分布得出参数。可以定义其它分布(例如指数、二项、泊松、卡方等)。一般来说,指定特定失真或其它类型的复杂化的程度的值将被应用于验证码。例如,如果模糊参数的值是U10,100,则可以说模糊将以从具有10到100范围的均匀随机变量选取的程度得以应用。
组织验证码的元素和应用于它们的参数的一个方式是定义容器。例如,容器可包含字母和它的干扰项,或字母序列。可为容器定义参数,使得容器的参数将被应用于该容器中的任意元素。因此,如果容器包括符号和干扰项两者,并且在该容器上设置了模糊参数,则该模糊将被应用于该符号和其干扰项二者。或者,如果容器包含3个字母和一个倾斜参数,则在该容器中的所有字母将根据该参数得以倾斜。或者,作为另一个示例,如果容器包含3个字母并且为该容器定义了一个切线布局参数,则将使这3个字母根据该切线布局参数相互交叉。
使用上述特征创建的验证码生成程序可由验证码生成系统使用,该验证码生成系统根据其接收的规范创建验证码。例如,可能存在基于HXAML规范生成验证码的HAXML引擎。
如上所述,可能存在频繁改变验证码方案的理由。由于验证码规范语言使通过改变方案的特征和/或参数来定义新的验证码方案相对容易,因此新的验证码方案可能被相对快速地设计。然而,一些方案比另一些更有效。以下是用于创建新验证码方案的过程的描述。虽然验证码方案可以用手工设计,但是下面描述的过程的一个方面是它允许生成验证码方案的过程自动化。该过程在图3中示出。
在转到图3的描述之前,应当注意的是,通过示例方式参考在图1和2中示出的组件描述了在此包含的流程图(在图3和图4中),虽然这些过程可在任意系统中实施并且不限于在图1和2中示出的场景。此外,图3和4中的流程图中的每一个示出了其中过程的各阶段以如由连接方框的线指示的特定顺序实施的示例,但是在这些图中所示的各种阶段可以任何顺序或任意组合或子组合方式来执行。
在302处,评估HIP生成程序的有效性。HIP生成程序是根据某个验证码方案生成验证码的程序。(例如“选取字母表的5个字母,将第一个字母倾斜从均值为10和标准差为1的高斯随机变量选取的角度,将第二个字母模糊从具有边界10和100的均匀随机变量选取的量,…”是验证码方案的一个示例。这样的验证码方案可在诸如HXAML之类的语言中得以指定)。判断HIP生成程序(或该程序实现的验证码方案)的有效性可涉及各种考虑。一些示例考虑是:合法用户可以多快地求解由该方案生成的验证码实例;对合法用户而言求解该验证码多难;或者该方案的某个组合对OCR而言是困难的,并且对人类而言也是困难的(但不是过分地难)。(人类解决的困难对雇用人类来求解验证码的人而言驱使成本增加,而且阻碍合法用户。因此,人们可能希望找到非常抗OCR并且也花费人类适度时间量(例如15秒)求解的验证码方案)。由于许多验证码方案可能最终被破解,对非法用户而言的困难一般通过在部署方案之后在OCR算法能够以某百分比的机会求解出验证码之前将花费多长时间来测量。给定失败的成本相对较低(即该系统可能必须再次尝试,并且可能使IP地址被阻断一段时间),可以以5%的机会求解出验证码的OCR可被认为已破解了该验证码方案,因为使用具有5%成功率的基于OCR的求解器的成本可能没有高到足以阻碍这样的求解器的使用。此外,如果数据显示非法用户在求解验证码方面具有类似于或高于合法用户的成功率,该事实可指示非法用户正在使用人类劳动力(这一般比OCR更精确)来求解验证码。即使在人类劳动力廉价的地方,它一般地仍然比OCR解决方案更昂贵,因此验证码正通过人类劳动力求解的任意指示倾向于指示用OCR来破解该方案的尝试失败。
因此,基于前述讨论,HIP生成程序的质量可通过破解它所花费的时间量(或通过它还未被破解的事实,如果事实上情况就是这样)来判断。无论判断HIP质量的方式如何,程序的某个集合可以以偏向质量的方式来选取(在304处)。即,给定程序的某个集合P的质量已被评估,那些程序的子集可以以如下方式来选取:该方式是随机的,但如果程序被判断为高质量的则给予该程序更高被选取的概率。通过该过程被实际选取的程序的子集可被称为P’。
在选取了程序P’后,来自程序对的特征可以以某种方式组合(在306处)。程序的特征可以是符号被选取和/或使其模糊的特定方式。因此,从其选取符号的特定字母表是程序的特征。使符号失真的方式也是如此,包括在失真时使用的任意参数。例如,验证码方案可定义字母以Arial字体得以绘制,并且干扰项与该字母一起得以绘制。在该情况下,根据Arial字体绘制字母可以是一个特征,并且将直线作为干扰项使用(以及选取该直线的长度和位置的方式)可以是另一个特征。
在308处,所得的程序可以某种方式变异。例如,变异可改变参数(在310处)、减少特征(在312处)或添加特征(在314处)。例如,如果这些程序之一的特征使用均值为10及标准差为1的正态随机变量来选取,则该程序可通过将均值改变为11以及将标准差改变为2来变异。添加和/或减少特征可包括添加或移除干扰项、添加或移除特定类型的失真、添加或移除从其选取验证码文本的符号、或对现有HIP生成程序的任意其它类型的改变。各种形式的变异可具有分配给它们的概率,使得特定的变异具有发生(或不发生)的某种可能。例如,可执行变异过程,使得有例如25%的概率参数将被改变;换句话说,变异过程将实际上仅改变四分之一的参数。(百分之零的概率将意味着绝对肯定改变将不发生,并且百分之一百的概率将意味着绝对肯定改变将发生。因此,为了将某种随机性引入到该过程中,改变发生的概率可被设置在百分之零和百分之一百之间的某处,可以是唯一的)。由于为P’选取程序偏向支持高质量程序,可以有理由避免将在P’中的程序的特征改变太多。然而,该考虑相对于向还未被OCR引擎看见的验证码方案添加特征的值而被平衡。因此,某种程度但不过分程度地变异成功程序的组合可能是有效的。这些考虑可通过适当地选取特定类型的变异将发生的概率而得以平衡。
在程序的组合和/或那些程序的变异后,结果是创建了HIP生成程序的新集合(在316处)。所得的程序可组合一般地被发现成功的程序的特征(由于选取程序的过程偏向支持高质量程序),并且还可包含通过变异过程的一些新的特征(或旧特征的新版本)。该结果是实现新验证码方案的程序集合。这些验证码方案可被部署,并且它们的有效性可被判断。当这些验证码被部署时(可能在一些确保这些验证码不太难和/或不太容易求解的测试量之后),并且在它们的有效性得以判断之后,可重复该过程。即,新创建的程序然后可被馈入图3所示的过程中,使得高质量的程序可被组合和/或变异以创建下一代的验证码方案。
当新的程序被创建时,可以有理由尝试估计该程序的保存期限——即破解由该程序实现的验证码方案将花费多长时间。图4示出了可用来基于估计在被破解前程序可使用多长时间来评估新程序的质量的示例过程。
在图4的过程中,假设在攻击者已在程序实现的验证码方案上成功训练OCR算法的意义上,存在已知已被破解的HIP生成程序的某个集合。对于每个这样的经破解的程序,想要测量新程序的质量的实体在402处训练OCR分类器。(假设想要测量新程序质量的实体没有访问攻击者训练的OCR,因此必须通过在经破解的程序上训练它自己的OCR来开始)。在经破解的验证码方案上训练OCR算法是相对容易的。每个程序被用来生成验证码集合及其答案。验证码及其答案然后被用作针对机器学习算法的训练数据。
针对每个经破解的程序,重复在402处训练OCR的过程。因此,如果已知经破解的程序的数量是B,则402的重复将导致B个经训练的OCR。
在已为经破解的程序的每一个训练了OCR之后,OCR可被应用于由新程序生成的验证码(在404处)。新的程序实现我们想评估其质量的验证码方案。将OCR应用于由新程序生成的验证码背后的思想是已在经破解的程序上训练的OCR是对攻击者当前破解新程序他们可支配的工具的合理估计。
当OCR已被应用于由新程序生成的验证码时,关于该新程序在针对OCR执行得多好的统计量可被计算(在406处)。例如,每个OCR成功破解验证码的百分比可得以计算。使用这些平均值,统计量可基于在所有OCR上的平均百分比、OCR间的最大百分比等而被计算。一般而言,该统计量测量在生成抵制由各种训练的OCR引擎进行的识别的验证码时的新程序的成功。然后可使用被选取来表示质量的任何统计量向程序分配质量Q。
程序然后可被部署(在408处)。即,程序可被用来生成真实的验证码。其使用由新程序生成的验证码设置门槛的服务然后可被监控以确定该新程序何时被破解。然后进行关于在部署该程序时与在宣布该程序被破解时之间花费了多长时间的测量(在410处)。该测量结果是时间量T。因此,对于每个新程序,可能计算两个值,Q和T,其分别表示该程序的质量和破解时间。因此回归分析可被用来确定质量与破解时间之间的关系(在412处)。即,在Q上T的回归可得以计算,从而对任意给定质量水平给出平均破解时间。因此,当新程序被创建时,它的质量可以以上述方式来测量(例如通过在已知经破解的验证码方案上训练OCR,将那些OCR应用于新程序,以及测量新程序对OCR的抵抗力)。一旦已测量了该质量,破解时间(即该程序的保存期限)可使用由回归分析产生的函数来估计。
评估新程序的可替换方式是测量它离现有程序的距离。基于攻击者的工具已在现有验证码方案上得以训练的思想,合理的是,假设这些工具在类似于现有验证码方案的新验证码方案上将更有效,并且在与现有验证码方案非常不同的验证码方案上不那么有效。因此,两个验证码方案之间的距离度量可被定义。例如,如果两个HIP生成程序在特定参数的值方面不同,则这两个参数之间的距离可被定义为它们的值的数值差。或者,当全体元素在一个程序中呈现并且在另一个程序中没有时(例如,在一个程序包括特定的干扰项并且另一个不包含该特定干扰项的情况下),则该距离可类似于Levenshtein距离(即变换验证码方案A使得它具有与验证码方案B相同的特征所采取的插入、删除和替换操作的数量)来定义。前述是一些示例,尽管可以定义任意适当的距离度量。
一旦定义了距离度量,就可能基于新程序与每个现有经破解的程序之间的距离来计算统计量。例如该统计量可以是到经破解程序的平均距离、最小距离或任意其它适当的统计量。因此,每个程序可被分配统计量D,其表示它到已知的经破解的程序的距离。如上文结合图4所述,也可以测量新程序被破解所花费的时间T。因此,任意新程序可与两个值D和T相关联。通过计算在D上T的回归,可能识别根据新程序与现有程序之间的距离预测破解新程序所花费的时间(即其存放期限)的函数。
图5示出了其中可以部署在此描述的主题的各方面的示例环境。
计算机500包括一个或多个处理器502和一个或多个数据记忆组件504。处理器502典型地是微处理器,比如在个人台式或膝上型计算机、服务器、手持计算机或其它种类的计算设备中找到的那些微处理器。数据记忆组件504是能够短期或长期存储数据的组件。数据记忆组件504的示例包括硬盘、可移除盘(包括光盘和磁盘)、易失和非易失随机存取存储器(RAM)、只读存储器(ROM)、闪存、磁带等。数据记忆组件是计算机可读存储介质的示例。计算机500可包括或可关联于可以是阴极射线管(CRT)监视器、液晶显示(LCD)监视器或任意其它类型的监视器的显示器512。
软件可被存储在数据记忆组件504中,并且可在一个或多个处理器502上执行。这样的软件的示例是验证码生成软件506,其可实现以上结合图1-4描述的功能中的一些或所有,虽然可使用任意类型的软件。软件506例如可通过可以是在分布式系统、分离文件、分离功能、分离对象、分离代码行等中的组件的一个或多个组件来实现。在其中程序被存储在硬盘上、加载到RAM中并在计算机的处理器上得以执行的计算机(例如个人计算机、服务器计算机、手持计算机等)作为在图5描绘的场景的典型,尽管在此描述的主题不限于该示例。
在此描述的主题可被实现为存储在数据记忆组件504的一个或多个中并在处理器502的一个或多个上执行的软件。作为另一个示例,主题可被实现为存储在一个或多个计算机可读存储介质上的指令。诸如光盘或磁盘之类的有形介质是存储介质的示例。指令可存在于非有形介质上。这样的指令在由计算机或其它机器执行时可引起计算机或其它机器执行方法的一个或多个动作。执行动作的指令可存储在一个介质上,或者可分布在多个介质间,使得指令可共同地出现在一个或多个计算机可读存储介质上,无论所有指令是否恰好在相同的介质上。
此外,在此描述的任何动作(无论是否在图中得以示出)可作为方法的一部分由处理器(例如处理器502中的一个或多个)来执行。因此,如果在此描述了动作A、B和C,则可执行包括动作A、B和C的方法。并且,如果在此描述了动作A、B和C,则可执行包括使用处理器执行动作A、B、C的方法。
在一个示例环境中,计算机500可通过网络508通信地与一个或多个其它设备相连接。可能在结构方面类似于计算机500的计算机510是可与计算机500相连接的设备的示例,虽然也可这样连接其它类型的设备。
虽然主题已以特定于结构特征和/或方法动作的语言得以描述,但应理解在附加权利要求中定义的主题不必受限于上述具体的特征或动作。相反,上述具体的特征和动作作为实现这些权利要求的示例形式得以公开。

Claims (12)

1.一种生成人机交互证明的方法,该方法包括:
在验证码规范语言中接收人机交互证明方案的定义,其限定了:
字母表,从该字母表中多个符号将被选择为人机交互证明的答案;
多个复杂化,其可被选择用来生成人机交互证明;
多个值,其分别限定了所述多个复杂化中的各个复杂化将被应用到字母表的符号的程度,其中所述多个值的第一值限定了所述多个复杂化的第一复杂化的应用的固定程度,并且其中所述多个值的第二值限定了所述多个复杂化的第二复杂化的应用的随机程度;
根据所述字母表和所述多个复杂化通过按所述固定程度将至少第一复杂化应用到第一符号并且按所述随机程度将第二复杂化应用到第二符号来生成人机交互证明的图形表示;以及
使用所述图形表示选择性地控制对服务的访问。
2.权利要求1的方法,其中所述多个复杂化包括干扰项,其构成将与所述多个符号中至少一个一起绘制的视觉元素。
3.权利要求1的方法,其中所述多个复杂化包括所述多个符号中至少一个将在其上被绘制的背景。
4.权利要求1的方法,其中所述多个复杂化包括将应用于所述多个符号中至少一个的倾斜的量。
5.权利要求1的方法,其中所述多个复杂化包括将应用于所述多个符号中至少一个的模糊的量。
6.权利要求1的方法,其中所述多个复杂化包括将应用于所述多个符号中至少一个的歪曲的量。
7.权利要求1的方法,其中所述多个复杂化的第一个由参数参数化,其中所述参数指定所述多个复杂化的所述第一个将被应用的程度,其中所述参数在所述人机交互证明方案中被指定为高斯随机变量,其包括所述高斯随机变量的均值和所述高斯随机变量的方差或标准差,并且其中生成所述图形表示包括:
从由所述高斯随机变量定义的分布中选取所述参数的值。
8.权利要求1的方法,其中所述多个复杂化的第一个由参数参数化,其中所述参数指定所述复杂化的所述第一个将被应用的程度,其中所述参数在所述人机交互证明方案中被指定为均匀随机变量,其包括所述均匀随机变量的上限和下限,并且其中生成所述图形表示包括:
从由所述均匀随机变量定义的分布选取所述参数的值。
9.权利要求1的方法,其中所述多个复杂化包括在所述人机交互证明中的所述多个符号中的两个或更多个之间的交叉量,并且其中所述交叉量由将交叉的所述两个或更多个符号的像素的数量来指定。
10.权利要求1的方法,其中所述多个复杂化包括所述人机交互证明中的所述多个符号中的一个或多个的动画,并且其中所述动画指定所述人机交互证明将随持续时间显示的方式。
11.权利要求1的方法,其中所述接收的定义进一步包括:
容器,其包括所述多个符号的第一个和所述多个复杂化的第一个,其中所述多个复杂化的所述第一个被应用于在所述容器中的每一个符号。
12.一种用于生成人机交互证明的设备,该设备包括:
用于在验证码规范语言中接收人机交互证明方案的定义的装置,所述人机交互方案定义限定了:
字母表,从该字母表中多个符号将被选择为人机交互证明的答案;
多个复杂化,其可被选择用来生成人机交互证明;
多个值,其分别限定了所述多个复杂化中的各个复杂化将被应用到字母表的符号的程度,其中所述多个值的第一值限定了所述多个复杂化的第一复杂化的应用的固定程度,并且其中所述多个值的第二值限定了所述多个复杂化的第二复杂化的应用的随机程度;
用于根据所述字母表和所述多个复杂化通过按所述固定程度将至少第一复杂化应用到第一符号并且按所述随机程度将第二复杂化应用到第二符号来生成人机交互证明的图形表示的装置;以及
用于使用所述图形表示选择性地控制对服务的访问的装置。
CN201180030808.9A 2010-06-22 2011-06-19 人机交互证明引擎的自动构造 Active CN102947837B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/821,124 US8739276B2 (en) 2010-06-22 2010-06-22 Automatic construction of human interaction proof engines
US12/821124 2010-06-22
PCT/US2011/041016 WO2011163098A2 (en) 2010-06-22 2011-06-19 Automatic construction of human interaction proof engines

Publications (2)

Publication Number Publication Date
CN102947837A CN102947837A (zh) 2013-02-27
CN102947837B true CN102947837B (zh) 2016-03-02

Family

ID=45329879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180030808.9A Active CN102947837B (zh) 2010-06-22 2011-06-19 人机交互证明引擎的自动构造

Country Status (4)

Country Link
US (3) US8739276B2 (zh)
EP (1) EP2585971B1 (zh)
CN (1) CN102947837B (zh)
WO (1) WO2011163098A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885931B2 (en) * 2011-01-26 2014-11-11 Microsoft Corporation Mitigating use of machine solvable HIPs
US8776173B2 (en) 2011-03-24 2014-07-08 AYAH, Inc. Method for generating a human likeness score
US8621564B2 (en) * 2011-06-03 2013-12-31 Ebay, Inc. Focus-based challenge-response authentication
CN102710635A (zh) * 2012-05-30 2012-10-03 无锡德思普科技有限公司 一种基于循环趋稳动态验证码图片的验证方法
US20130339245A1 (en) * 2012-06-13 2013-12-19 Sri International Method for Performing Transaction Authorization to an Online System from an Untrusted Computer System
CN103731403B (zh) * 2012-10-12 2017-06-23 阿里巴巴集团控股有限公司 一种验证码生成系统及方法
US9679124B2 (en) * 2014-09-05 2017-06-13 Disney Enterprises, Inc. Smart CAPTCHAs
US9465928B2 (en) * 2014-12-31 2016-10-11 Verizon Patent And Licensing Inc. No-CAPTCHA CAPTCHA
US9762597B2 (en) * 2015-08-26 2017-09-12 International Business Machines Corporation Method and system to detect and interrupt a robot data aggregator ability to access a website
US9710637B2 (en) * 2015-08-28 2017-07-18 Salesforce.Com, Inc. Unicode-based image generation and testing
US9710638B2 (en) * 2015-08-28 2017-07-18 Salesforce.Com, Inc. Unicode-based image generation and testing
US9760700B2 (en) * 2015-12-03 2017-09-12 Google Inc. Image based CAPTCHA challenges
CN105763319A (zh) * 2016-02-02 2016-07-13 南京云创大数据科技股份有限公司 一种随机多态验证码生成方法
CN106204559B (zh) * 2016-06-30 2019-03-12 北京奇艺世纪科技有限公司 图像处理方法和装置
CN106355072B (zh) * 2016-08-19 2019-02-22 沈建国 三维模型验证码的实现方法及其装置
CN107844696B (zh) * 2016-09-20 2021-07-27 腾讯科技(深圳)有限公司 一种验证码干扰方法及服务器
CN111406249B (zh) * 2017-06-05 2023-09-22 平衡媒体技术有限责任公司 用于协作处理计算任务的平台
US10614207B1 (en) * 2019-07-09 2020-04-07 Capital One Services, Llc Generating captcha images using variations of the same object
US10496809B1 (en) 2019-07-09 2019-12-03 Capital One Services, Llc Generating a challenge-response for authentication using relations among objects
US11074340B2 (en) * 2019-11-06 2021-07-27 Capital One Services, Llc Systems and methods for distorting CAPTCHA images with generative adversarial networks
WO2024091140A1 (ru) 2022-10-26 2024-05-02 Общество С Ограниченной Ответственностью "Капча Солюшнз" Способ проведения аутентификации

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571977A (zh) * 2001-10-15 2005-01-26 西尔弗布鲁克研究有限公司 字符识别

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7624277B1 (en) * 2003-02-25 2009-11-24 Microsoft Corporation Content alteration for prevention of unauthorized scripts
US7725395B2 (en) 2003-09-19 2010-05-25 Microsoft Corp. System and method for devising a human interactive proof that determines whether a remote client is a human or a computer program
US7533411B2 (en) * 2003-09-23 2009-05-12 Microsoft Corporation Order-based human interactive proofs (HIPs) and automatic difficulty rating of HIPs
US7523499B2 (en) 2004-03-25 2009-04-21 Microsoft Corporation Security attack detection and defense
US7505946B2 (en) 2004-03-31 2009-03-17 Microsoft Corporation High performance content alteration architecture and techniques
US7533419B2 (en) 2004-10-29 2009-05-12 Microsoft Corporation Human interactive proof service
US7552467B2 (en) 2006-04-24 2009-06-23 Jeffrey Dean Lindsay Security systems for protecting an asset
US8601538B2 (en) * 2006-08-22 2013-12-03 Fuji Xerox Co., Ltd. Motion and interaction based CAPTCHA
EP2109837B1 (en) * 2007-01-23 2012-11-21 Carnegie Mellon University Controlling access to computer systems and for annotating media files
US20080209223A1 (en) * 2007-02-27 2008-08-28 Ebay Inc. Transactional visual challenge image for user verification
US20090150983A1 (en) * 2007-08-27 2009-06-11 Infosys Technologies Limited System and method for monitoring human interaction
US8104070B2 (en) 2007-09-17 2012-01-24 Microsoft Corporation Interest aligned manual image categorization for human interactive proofs
WO2010008722A1 (en) * 2008-06-23 2010-01-21 John Nicholas Gross Captcha system optimized for distinguishing between humans and machines
US20100077209A1 (en) * 2008-09-24 2010-03-25 Yahoo! Inc Generating hard instances of captchas
US20100077210A1 (en) * 2008-09-24 2010-03-25 Yahoo! Inc Captcha image generation
US8217800B2 (en) * 2009-02-06 2012-07-10 Research In Motion Limited Motion-based disabling of messaging on a wireless communications device
US20100306055A1 (en) * 2009-05-26 2010-12-02 Knowledge Probe, Inc. Compelled user interaction with advertisement with dynamically generated challenge
US20100302255A1 (en) * 2009-05-26 2010-12-02 Dynamic Representation Systems, LLC-Part VII Method and system for generating a contextual segmentation challenge for an automated agent
US20110197268A1 (en) * 2010-02-05 2011-08-11 Yahoo! Inc. Captchas that include overlapped characters, projections on virtual 3d surfaces, and/or virtual 3d objects
US8483518B2 (en) * 2010-02-19 2013-07-09 Microsoft Corporation Image-based CAPTCHA exploiting context in object recognition
US8990959B2 (en) * 2010-05-28 2015-03-24 Microsoft Corporation Manipulable human interactive proofs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1571977A (zh) * 2001-10-15 2005-01-26 西尔弗布鲁克研究有限公司 字符识别

Also Published As

Publication number Publication date
EP2585971A2 (en) 2013-05-01
US20140259104A1 (en) 2014-09-11
US20150161365A1 (en) 2015-06-11
EP2585971A4 (en) 2018-01-17
WO2011163098A3 (en) 2012-02-23
US8739276B2 (en) 2014-05-27
CN102947837A (zh) 2013-02-27
EP2585971B1 (en) 2022-03-23
WO2011163098A2 (en) 2011-12-29
US8978144B2 (en) 2015-03-10
US20110314537A1 (en) 2011-12-22

Similar Documents

Publication Publication Date Title
CN102947837B (zh) 人机交互证明引擎的自动构造
US20210407308A1 (en) Prompting Users To Annotate Simulated Phishing Emails In Cybersecurity Training
US9317676B2 (en) Image-based CAPTCHA exploiting context in object recognition
Chiasson et al. User interface design affects security: Patterns in click-based graphical passwords
CN100363978C (zh) 文本字符的词干位置的自动优化
EP2410450A1 (en) Method for providing a challenge based on a content
CN108399510A (zh) 一种合同风险管控方法和设备
CN105511791A (zh) 一种试验质检电子记录表手写处理方法及装置
CN110321895A (zh) 证件识别方法和装置、电子设备、计算机可读存储介质
CN109478219A (zh) 用于显示网络分析的用户界面
CN109814958A (zh) 经营状况显示方法、装置、计算机装置与存储介质
CN112163400B (zh) 信息处理方法及装置
CN113190310A (zh) 基于随机位置对象语义识别的验证码设计方法
US20190205777A1 (en) Method and apparatus for evaluating a user-specified path in an activity
CN112215693A (zh) 一种凭证生成方法以及相关装置
GB2518897A (en) Test for distinguishing between a human and a computer program
JP2014021336A (ja) 採点支援装置、採点支援プログラム及びデータ構造
CN112819925B (zh) 病灶标注的处理方法、装置、电子设备和介质
JP4607943B2 (ja) セキュリティレベル評価装置およびセキュリティレベル評価プログラム
JP2019046224A (ja) 応募者情報収集システムの管理装置および管理用プログラム
CN105518703A (zh) 行为学生物计量签名认证系统和方法
Jones What's working, what's not: the Monitoring and Reporting System for Tasmania's national parks and reserves
JP2013254468A (ja) 反転チューリングテスト方法およびアクセス認証方法
JP2013101425A (ja) 評価支援装置、評価支援方法、評価支援プログラム
CN105912230A (zh) 便签中时间信息的生成方法及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150604

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150604

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant