什么是验证码?
CAPTCHA 是一种挑战-响应测试,作为网站、搜索引擎和 Web 应用程序的身份验证机制,以确保用户(有或没有基于密码的凭据)是人类,而不是试图挤满系统并导致网络攻击。
今天,访问 Internet 的海量信息已成为所有用户的必需。互联网服务包括免费电子邮件帐户创建、在线投票、在线支付、电子转账和其他数字社交和商业活动。
此外,这些站点经常受到机器人程序的攻击,机器人程序是自动计算机程序。为了解决这个问题,创建了区分计算机和人类的全自动公共图灵测试(通常缩写为 CAPTCHA)以区分机器人和人类。
术语“图灵测试”是验证码的核心。图灵测试评估计算机模拟人类行为的能力。1950 年,计算和人工智能 (AI)的早期先驱 Alan Turing创建了图灵测试。如果计算机程序在整个测试过程中的行为无法与人的行为区分开来,即如果它的行为与人类相同,则该计算机程序“通过”了图灵测试。图灵测试不是基于正确回答问题;相反,它关心的是反应看起来有多“人性化”,而不管它们是否准确。
有趣的是,虽然它被称为“公共图灵测试”,但验证码实际上是图灵测试的逆过程。它识别据称的人类操作员是否是计算机程序(机器人),而不是试图确定计算机是否是人类。现在让我们探索这种广泛使用的唯一安全方法背后的基本原理。
理解验证码的含义
CAPTCHA 是一种防止机器人访问在线服务的安全措施。它们的功能是为用户提供解释信息。传统的验证码由扭曲或重叠的数字和字母组成,用户必须将这些数字和字母输入到表格或框中。字母失真使机器人无法理解文本,从而阻止访问,直到字母和数字得到验证。
这种类型的验证码侧重于个人根据不同的先前经验概括和检测不熟悉模式的能力。相比之下,机器人通常只能遵循预先确定的模式或输入随机字符。此限制降低了机器人准确预测正确组合的可能性。
自从引入 CAPTCHA 以来,恶意玩家开发了基于学习的机器人(类似于机器人过程自动化或 RPA 中使用的机器人) 。使用经过模式识别训练的算法,机器人可以识别传统的验证码。作为这一进步的结果,现代验证码技术基于越来越复杂的测试。例如,reCAPTCHA 要求用户点击屏幕的特定区域并等待超时。
reCAPTCHA 是比标准 CAPTCHA 验证更高级的 CAPTCHA 验证。一些 reCAPTCHA,类似于 CAPTCHA,要求用户提交难以理解的文本图像。reCAPTCHA 与标准 CAPTCHA 不同,它从现实世界的材料中获取内容,例如街道地址的照片、印刷书籍中的文字等。
卡内基梅隆大学的研究人员开发了 reCAPTCHA 技术,谷歌于 2009 年收购了该技术。
验证码的演变
1997 年,搜索引擎 Alta-Vista 寻求一种技术来防止自动统一资源定位器 (URL)输入到其搜索引擎。这是第一次使用类似 CAPTCHA 的东西。
Alta Vista 的首席科学家安德烈·布罗德 (Andrei Broder) 开发了一个系统,可以随机生成一张文字图片,这是验证码方法的第一个例子。计算机无法识别它,但人们可以相对轻松地读取并将其写入文本字段。此后,大多数在线服务提供商都采用了这种创新技术。
2000 年,卡内基梅隆大学的专家进一步开发了该算法,并将由此产生的技术命名为 CAPTCHA。2001 年 4 月,Andrei Broder 和他的同事获得了一项专利。从那时起,该领域一直在进行持续而深入的努力,但仍然需要新技术或对现有技术进行改进。
验证码的应用
所有希望防止自动访问的网站都使用验证码。CAPTCHA 的一些常见插图包括:
保护在线民意调查:通过验证每张选票是否由个人投票,CAPTCHA 有助于防止民意调查出现偏差。虽然这不会限制投票总数,但会增加每次投票所需的时间,从而阻止重复投票。
将注册限制为真实用户:服务可以使用验证码来防止机器人淹没注册系统并生成虚假帐户。限制帐户的创建可以避免服务资源的浪费并降低欺诈风险。
保护基于需求的定价系统:使用验证码,票务系统可能会禁止黄牛获取大量的通行证或门票进行转售,从而导致价格上涨。它还可以用于防止欺诈性事件注册。
验证评论:CAPTCHA 可以防止机器人充斥互联网论坛、反馈表和评论站点。CAPTCHA 所需的附加元素还可以通过给此类网络威胁参与者带来不便来帮助遏制在线滥用。
验证码的缺点
使用 CAPTCHA 时还应考虑一些陷阱。首先,CAPTCHA 评估可能会阻止用户尝试执行的操作,给他们留下对他们在在线域中的交互的不良印象,并且在某些情况下,迫使他们完全离开网页。
大多数验证码对视障用户不可用,因为它们需要视觉处理。这使得它们对于有视力障碍的人和任何视力严重受损的人来说几乎是不可能的。但是有一些解决方法,我们稍后会讨论。最后,CAPTCHA 并非万无一失,由于一些固有的安全漏洞,不应依赖它来提供全面的机器人保护。