什么是验证码?它怎么知道你不是机器人?
为什么网站要使用验证码?这种保护从何而来?为什么这种情况如此普遍?
任何网站都可能成为网络攻击、数字滥用和出于恶意目的收集访问者个人信息的机器人的目标。验证码旨在防止此类滥用和机器人攻击。
即使在编辑部,注册时,计算机也会检查我们是机器人还是人类。有时我们只需要勾选方框,而其他时候我们需要找到屏幕上所有带有消防栓或类似东西的照片。为什么会出现这种差异,您将在下面找到答案。
验证码到底是什么?
CAPTCHA 是“完全自动化公共图灵测试来区分计算机和人类”的缩写。简单地说,这是一个带有挑战的随机测试,以及网站用来防御攻击的特定解决方案。全球所有在线流量中有 40 % 是由“机器人”完成的,因此您可以轻松想象他们可以造成的损害。如果您从一开始就认识到它们并只允许人们访问该网站,您可以为自己省去很多麻烦。
验证码技术是如何发展的?
第一个验证码测试出现在 20 世纪 90 年代末,由字母和数字组合的扭曲图像组成。该技术由几个不同的团体开发,旨在更容易地对抗机器人和黑客。您还记得 AltaVista 搜索引擎吗?他们的开发人员希望防止机器人将恶意网址添加到数据库中。
CAPTCHA 一词本身于 2003 年由卡内基梅隆大学的一组计算机科学研究人员首次使用。当时的巨头雅虎董事的演讲为发展提供了动力,他谈到了创建数百万个虚假电子邮件地址的蜘蛛程序的问题。
一组研究人员创建了一个计算机程序,首先生成随机文本,然后生成该文本的扭曲图像(称为验证码),最后要求用户解决它并单击“我不是机器人”盒子。当时,光学字符识别(OCR)技术无法破解这个简单的难题,因此机器人作为赌注未能通过验证码测试。不久之后,雅虎要求其用户在登录电子邮件地址之前通过验证码测试。机器人数量的下降也促使其他公司实施验证码保护。
然而,黑客不可避免地开发出了能够可靠地规避新保护的算法。这场战斗一直持续到今天。
reCAPTCHA v1 - 未能阻止机器人的升级
2007 年,开发验证码系统的原始团队成员路易斯·冯·安 (Luis von Ahn) 推出了 reCAPTCHA v1,他希望让黑客更难使用该版本,并提高用于数字化印刷文本的光学字符识别的准确性。黑客们发现了更加扭曲的图像,很快这些文字也被划掉了。
它通过用两个不同的 OCR 程序从实际文本扫描的单词的两张乱码图像替换随机生成的乱码文本的一张图像来改进 OCR。第一个单词(或控制字)是两个 OCR 程序都能正确识别的单词;第二个单词是 OCR 程序无法识别的单词。如果用户正确识别了控制字,reCAPTCHA 程序就会假定该用户是人类。
两年后,谷歌介入,购买了这项新技术,并用它来数字化谷歌图书的文本,并将其授权给其他公司。与此同时,OCR 技术的发展对黑客来说是大有裨益的,他们勤奋地利用它来开发先进的算法,开始成功解决新的 reCAPTCHA 挑战。 2012 年,出现了 reCAPTCHA 图像挑战,它可以欺骗 OCR,同时对移动设备更加友好。
reCAPTCHA v2 - 更好但对用户来说具有侵入性
第二个版本(reCAPTCHA v2 或无验证码 reCAPTCHA)完全消除了文本和图像挑战。相反,使用了一个简单的“我不是机器人”复选框,在幕后,reCAPTCHA v2 分析用户与网页的交互、用户键入的速度,并分析 cookie、设备历史记录和 IP 地址。它还跟踪鼠标移动。发现系统可疑的用户会收到验证码挑战,而其他人可以继续浏览。
这种较新的保护有几个缺点。由于它严重依赖 cookie,因此对 Chrome 浏览器用户和使用 Google 帐户登录的用户更加友好。例如:关闭第三方cookie的Firefox用户(或Brave、Opera...)有更高的机会受到验证码的挑战。
然而,随着人工智能的进步,机器人甚至可以解决最先进的 reCAPTCHA 挑战。恶意者还可以通过这些验证码农场来帮助自己,这是一种自动化服务,机器人开发人员可以使用廉价的人力来解决验证码挑战。
很明显,现有的保护还不够。
reCAPTCHA v3 – 更加依赖人工智能
第三次升级完全删除了“我不是机器人”复选框,并且更加依赖人工智能及其分析警报因素的能力。 reCAPTCHA v3 通过 JavaScript API 与网站集成并在后台运行。它根据用户的在线行为对用户进行从 0(机器人)到 1(人类)的评分。网站所有者或管理员可以设置在 reCAPTCHA 识别出潜在机器人时触发的自动操作。例如,在登录个人资料之前可能需要多重身份验证,论坛上的评论必须首先得到版主的批准,等等。
该方法对于甚至不知道这种类型的保护正在后台实施的用户来说更加友好。然而,隐私问题始终存在于此,同时,随着新一代的出现,网络管理员有更多的工作要做,他们必须决定某种响应的阈值在哪里。
验证码有什么用?
- 防止机器人利用系统发送垃圾邮件、恶意代码和其他网络活动的欺诈性注册。
- 验证码在某些地方用于防止可疑交易。几年前,我们经历了一场芯片危机,机器人利用这一危机,例如购买更多的显卡库存,然后以更高的价格出售。
- 在线民意调查、投票站、民意调查往往是机器人想要扭曲结果的目标。
- 欺诈者和网络犯罪分子经常利用评论和产品评论来传播诈骗和恶意软件,或人为地提高某种产品在在线商店(亚马逊、eBay...)中的排名。
使用的例子有很多,但它们的共同点是与机器人的战斗,这些机器人被不法分子利用,因为他们想以牺牲在线访问者的利益为代价来获取利益。验证码并不是万无一失的保护,但它对于网络及其访问者的完整性无疑很重要。