什么是 CAPTCHA?(用途、工作原理、reCAPTCHA、缺点)
什么是 CAPTCHA?
CAPTCHA 是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的公开图灵测试)的缩写。它是一种由计算机使用的技术,用于识别其是否正在与人类或另一台计算机进行通信。随着计算机的普及以及计算机化工作和服务的日益普遍,对改进安全性的需求促使了这种方法的发展,使计算机能够确保在需要人工参与以确保安全的情况下,它们正在与人类打交道。
在线商务交易、网络投票、网络注册、免费电子邮件服务注册和其他自动化服务都容易受到模拟人类行为的软件程序(或机器人)的攻击,这些程序会歪曲自动化任务的结果或执行恶意活动,例如发送垃圾邮件或订购数百张演唱会门票。
CAPTCHA 系统向用户呈现一个扭曲的单词(通常放置在扭曲的背景上)以确认数字交易。要完成此过程,用户必须将单词输入到一个字段中。扭曲的单词对于计算机来说很难解码,而人们可以快速理解语言。
现在有些 CAPTCHA 使用图片而不是文字,其中用户会看到一系列图片,并被要求找出所有图片的共同点。用户通过输入该共同元素来验证交易,而计算机则识别出它正在与人类而不是机器人打交道。“公开”是指使用的算法是公开的,而不是保密的。其理念是,破解 CAPTCHA 的安全性需要人工智能;仅仅找出算法并不能消除安全措施。
CAPTCHA 如何工作?
在传统的 CAPTCHA 中,用户需要识别字母,这些字母至今仍在一些网站上使用。字母是扭曲的,因此机器不太可能识别它们。用户必须破译扭曲的文字,将正确的字符输入表单字段,然后提交表单才能通过测试。如果字母不匹配,则建议用户重试。登录表单、帐户注册表单、在线投票和电子商务结账网站都使用这些测试。
理论上,计算机程序(例如机器人)将无法理解扭曲的字母。相反,习惯于在各种环境中看到和解释字母的人(不同的字体、不同的笔迹等)将能够识别它们。
许多机器人最多只能输入几个随机字母,因此它们通过测试的可能性在统计上很低。因此,机器人会失败测试,并被阻止与网站或服务交互,而人们通常可以使用它。
由于高级机器人可以使用机器学习来识别这些扭曲的字符,因此简单的 CAPTCHA 测试正在被淘汰,取而代之的是更复杂的测试。谷歌 reCAPTCHA 创建的其他测试可以区分人类用户和机器人。
reCAPTCHA 究竟是什么?
reCAPTCHA 是谷歌提供的一个免费工具,作为传统 CAPTCHA 的替代品。2009 年,谷歌从卡内基梅隆大学的五位科学家手中收购了 reCAPTCHA,就在其成立几年后。随着时间的推移,谷歌改进了 reCAPTCHA 测试的用户体验,用户不再需要依赖之前查看模糊或损坏材料的方法。为了整合信息,使用了各种 reCAPTCHA 测试:
接受照片
复选框
一般评估客户端行为(任何方式都不与客户端关联)
reCAPTCHA 测试是传统 CAPTCHA 测试的更复杂变体。在某些 reCAPTCHA(例如 CAPTCHA)中,消费者必须输入电脑难以破译的文本图像。与传统的 CAPTCHA 不同,reCAPTCHA 的材料来自真实的图像,例如街道地址的照片、印刷书籍中的文字和历史报纸中的文字。
CAPTCHA、reCAPTCHA 与人工智能项目之间的关系
随着数百万用户识别难以阅读的文本和区分模糊图像中的对象,数据会被馈送到人工智能计算机系统中,从而提高其性能。
通常情况下,计算机算法难以在不同的情况下识别物体和字母,因为现实世界中的环境几乎可以无限地变化。例如,停车标志是一个带有白色字母“STOP”的红色八边形。计算机程序可能会很容易识别这样的形状和文字组合。但是,根据环境(相机的视角、光线、天气等),照片中的停车标志可能看起来与该基本描述大相径庭。
人工智能算法可以通过机器学习来提高克服这些限制的能力。在停车标志的情况下,程序员会向人工智能程序提供大量关于构成停车标志的内容和不构成停车标志的内容的数据。为了实现这一点,他们将需要大量带有和不带有停车标志的照片实例以及人类用户来识别它们,直到软件拥有足够的数据才能有效工作。
reCAPTCHA 通过要求人类识别项目和句子来填补这一空白,逐渐为人工智能程序提供足够的数据,使其变得更强大。
CAPTCHA 的用途是什么?
当在线应用程序需要用户输入时,通常会使用 CAPTCHA。假设您经营一家互联网企业,并且需要向客户提供在评论部分发布项目调查的选项。目前,您必须确保条目来自您的客户或可能是人类网站访问者。您将花费大量时间检查经常发布的垃圾邮件评论——最糟糕的情况是,您将与您的对手联手。
您可以通过在网站中加入 CAPTCHA 来降低这种情况发生的风险,这需要访问者在发表评论之前证明自己是人类。
目前,几乎在所有需要将人类客户与机器人区分开来的情况下,都使用人工手动测试。这加强了电子邮件关联、警告、关联和社交关联的选择系统,这与在线图表或网络关联(例如网络爬虫关联)不同。
使用 CAPTCHA 的缺点是什么?
我们在此列出使用 CAPTCHA 可能产生的一些缺点:
客户服务糟糕。CAPTCHA 测试可能会阻碍客户执行他们想要的操作,给他们留下对网站的不良印象,并导致他们完全放弃页面。
被阻止的个人无权使用此功能。CAPTCHA 的问题在于它们依赖于视觉感知。这使得它们对于视力确实受损的任何人来说几乎无法理解,即使是那些外表严重残疾的人。
机器人可以欺骗这些测试。CAPTCHA 并非完全防机器人,不应完全依赖它们。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP