自从个人电脑在消费电子市场获得发展势头以来,区分计算机和人类的全自动公共图灵测试 (CAPTCHA) 已在互联网浏览中根深蒂固。几乎自从人们上网以来,网络开发人员就一直在寻找阻止垃圾邮件机器人的方法。 CAPTCHA 服务区分人类活动和机器人活动,以将机器人拒之门外。不幸的是,它的方法不够精确。为了保护人类,开发人员让残疾人无法访问大部分网络。
验证码等身份验证方法通常使用图像分类、谜题、音频样本或基于点击的测试来确定用户是否是人类。虽然挑战的类型有详细记录,但其逻辑并非公众所知。人们只能猜测如何“证明”他们是人类。
什么是验证码? 验证码是一种反向图灵测试,采用挑战-响应测试的形式。例如,如果它指示用户“选择所有带有楼梯的图像”,他们必须从栏杆、车道和人行横道中挑选出楼梯。或者,他们可能会被要求输入他们看到的文本,添加骰子面的总和,或完成滑动拼图。 基于图像的验证码造成了互联网用户最令人沮丧的共享体验——当其中只有一小部分有问题的对象时,决定是否选择一个正方形。
无论采用哪种方法,计算机或算法最终都会确定考生是人还是机器。这种身份验证服务已经衍生出许多分支,包括 reCAPTCHA 和 hCAPTCHA。它甚至导致了整个公司的创建,例如 GeeTest 和 Arkose Labs。谷歌拥有的自动化系统 reCAPTCHA 要求用户点击标有“我不是机器人”的复选框进行身份验证。它在后台运行自适应分析来分配风险评分。 hCAPTCHA 是一种基于图像分类的替代方案。 其他身份验证方法包括多重身份验证 (MFA)、QR 码、临时个人识别码 (PIN) 和生物识别。它们不遵循挑战-响应公式,但具有基本相似的目的。 这些分支的目的是比原来的更好,但它们往往无法满足现代的可访问性标准。以 hCaptcha 为例,它使用 cookie 让您完全绕过质询响应测试。从理论上讲这是一个好主意,但在实践中行不通。 您应该通过电子邮件收到一次性代码,并通过短信发送到特定号码。用户报告收到无穷无尽的错误消息,迫使他们完成标准文本验证码。仅当站点在配置期间明确启用它时,此功能才可用。如果未设置,您必须完成无法识别屏幕阅读器的图像挑战。 即使初始过程有效,后续身份验证也依赖于第三方跨站点 cookie,而大多数浏览器会自动阻止该 cookie。此外,代码会在短时间内过期,因此如果您需要很长时间才能进入下一步,则必须重做整个过程。 为什么团队使用验证码和类似的身份验证方法? 验证码很常见,因为它很容易设置。开发人员可以对其进行编程使其出现,并且它会自动进行测试。这样,他们可以专注于更重要的事情,同时仍然防止垃圾邮件、欺诈和滥用。这些工具本应让人类更容易安全地使用互联网,但它们常常阻止真实的人登录。 这些测试总体上导致用户体验很差。一项研究发现,截至 2023 年,用户在超过 5120 亿次 reCAPTCHA v2 会话上浪费了超过 8.19 亿个小时。尽管如此,机器人仍然盛行。机器学习模型可以在几分之一秒内解决基于文本的验证码,准确率超过 97%。 2024 年对 Google reCAPTCHA v2 的一项研究(尽管推出了 reCAPTCHA v3,但仍被广泛使用)发现,机器人可以以高达 100% 的准确率解决图像分类验证码,具体取决于它们负责识别的对象。研究人员使用了免费的开源模型,这意味着不良行为者可以轻松复制他们的工作。 为什么 Web 开发人员应该停止使用验证码? 像 CAPTCHA 这样的身份验证方法存在可访问性问题。机器学习的进步迫使这些服务变得越来越复杂。即便如此,它们也并非万无一失。机器人得到它比人们做的更正确。研究表明,他们可以在 17.5 秒内完成 reCAPTCHA,准确率达到 85%。人类需要更长的时间并且不太准确。 许多人未能通过验证码测试,并且不知道自己做错了什么。例如,提示用户“选择所有有交通灯的方块”看起来很简单,但如果一根杆子在另一个方块中,事情就会变得复杂。他们应该选择该框,还是算法会这样做? 尽管机器人的能力已经大幅增长,但人类的能力却保持不变。随着测试变得越来越困难,他们不太愿意尝试。一项调查显示,近 59% 的人在经历过几次糟糕的体验后会停止使用某种产品。如果身份验证过于麻烦或复杂,他们可能会完全停止使用该网站。 人们可能会因为各种原因(包括技术原因)而未能通过这些测试。如果他们阻止第三方 cookie、运行本地代理或有一段时间没有更新浏览器,则无论尝试多少次,他们都可能会不断失败。 CAPTCHA 的身份验证问题 由于上述原因,大多数类型的验证码本质上是无法访问的。对于残疾人来说尤其如此,因为这些挑战反应测试的设计并未考虑到他们的需求。一些常见问题包括: 与视觉效果和屏幕阅读器使用相关的问题 屏幕阅读器无法读取标准的视觉验证码,例如扭曲的文本测试,因为混乱、扭曲的单词不是机器可读的。图像分类和滑动拼图方法同样难以访问。 在 2023 年至 2024 年进行的一项 WebAIM 调查中,屏幕阅读器用户认为验证码是最有问题的项目,将其排在不明确的链接、意外的屏幕变化、缺少替代文本、无法访问的搜索和缺乏键盘可访问性之上。十多年来,它的榜首位置基本保持不变,说明了它难以进入的历史。 与听力和音频处理相关的问题 音频验证码相对不常见,因为 Web 开发最佳实践建议不要自动播放音频并强调用户控件的重要性。但是,音频验证码仍然存在。听力困难或耳聋的人在尝试这些测试时可能会遇到障碍。即使使用辅助技术,故意的音频失真和背景噪音也使得这些样本对于患有听觉处理障碍的个人来说难以理解。 与运动和灵活性相关的问题 对于运动障碍或身体残疾的人来说,需要运动和敏捷技能的测试可能具有挑战性。例如,手颤抖的人可能会觉得滑动拼图很困难。此外,图像分类测试会加载更多图像,直到没有符合标准的图像被留下,这可能会带来挑战。 与认知和语言相关的问题 随着验证码变得越来越复杂,一些开发人员开始转向需要创造性和批判性思维相结合的测试。那些要求用户解决数学问题或完成拼图的游戏对于患有阅读障碍、计算障碍、视觉处理障碍或认知障碍的人来说可能具有挑战性。 为什么辅助技术无法弥补这一差距 验证码是专门为人类解释和解决而设计的,因此屏幕阅读器和免提控制等辅助技术可能没有什么帮助。 ReCAPTCHA 尤其会带来问题,因为它会分析后台活动。如果它将辅助设备标记为机器人,它将提供可能无法访问的验证码。 即使这项技术可以弥补这一差距,网络开发人员也不应该指望它能做到这一点。行业标准规定他们应该遵循通用设计原则,以使他们的网站尽可能易于访问和实用。 如果验证码是一种有效的安全工具,它的可访问性问题是可以原谅的,但它远非万无一失,因为机器人比人类更能正确识别。为什么要继续使用一种无效且给残疾人造成障碍的方法? 有更好的选择。 可访问身份验证的原则 人类应该始终胜过算法的想法已经过时了。存在更好的身份验证方法,例如多重身份验证 (MFA)。到 2027 年,双因素身份验证市场的价值预计将达到 267 亿美元,凸显了其受欢迎程度。这个工具比验证码更有效,因为它可以防止未经授权的访问,即使使用合法凭据也是如此。
确保您的 MFA 技术易于使用。您应该发送推送通知或短信,而不是让网站访问者转录复杂的代码。依靠验证码自动填充来自动捕获并输入代码。或者,您可以引入“记住此设备”功能来跳过受信任设备上的身份验证。 苹果的双因素身份验证方法就是这样设计的。受信任的设备会自动显示六位数的验证码,因此他们无需搜索它。出现提示时,iPhone 用户可以点击移动键盘上方显示的建议进行自动填充。
单点登录是另一种选择。这种会话和用户身份验证服务允许人们使用一组登录凭据登录多个网站或应用程序,从而最大限度地减少重复身份验证的需要。 一次性“魔术链接”是 reCAPTCHA 和临时 PIN 码的绝佳替代品。用户无需记住代码或解决难题,而是单击按钮。避免强加最后期限,因为根据 WCAG 成功标准 2.2.3,用户不应面临时间限制,因为残障人士可能需要更多时间来完成特定操作。 或者,您可以使用 Cloudflare Turnstile。它无需显示验证码即可进行身份验证,大多数人甚至不需要选中复选框或点击按钮。该软件的工作原理是在幕后发出一个小的 JavaScript 挑战,以自动区分机器人和人类。 Cloudflare Turnstile 可以嵌入到任何网站中,使其成为标准分类任务的绝佳替代方案。 可访问的身份验证设计的测试和评估 测试和评估可访问的替代身份验证方法至关重要。许多设计在纸面上看起来不错,但在实践中却行不通。如果可能,收集实际用户的反馈。公开测试版可能是最大化可见性的有效方法。 请记住,一般的无障碍注意事项不仅适用于残疾人。他们还包括那些神经分化、无法使用移动设备或使用辅助技术的人。确保您的替代设计考虑到这些人。
实际上,你不可能创建一个完美的系统,因为每个人都是独一无二的。许多人很难遵循多步骤流程、解方程、处理复杂指令或记住密码。虽然通用的网页设计原则可以提高灵活性,但没有单一的解决方案可以满足每个人的需求。 无论您使用哪种身份验证技术,您都应该预先向用户提供多个身份验证选项。他们最了解自己的能力,因此让他们决定使用什么,而不是试图过度设计适用于每种边缘情况的解决方案。 通过设计变更解决可访问性问题 手部颤抖的人可能无法完成滑动拼图,而患有音频处理障碍的人可能无法处理失真的音频样本。但是,您不能简单地用替代方案替换验证码,因为它们通常同样难以访问。 例如,对于那些精细运动控制能力较差的人来说,QR 码可能很难扫描。视障人士可能很难在屏幕上找到它。同样,生物识别技术可能会给面部畸形或运动范围有限的人带来问题。解决可访问性问题需要创造性思维。 您可以首先访问 Web Accessibility Initiative 的辅助功能教程,以便开发人员更好地理解通用设计。尽管这些教程更关注内容而不是身份验证,但您仍然可以利用它们来发挥自己的优势。 W3C 集团关于验证码无法访问的注释草案提供了更多相关指导。 入门就像研究最佳实践一样简单。了解基础知识至关重要,因为无障碍网页设计没有通用的解决方案。如果您想优化可访问性,请考虑从实际访问您网站的人那里获取反馈。 进一步阅读
“验证码:前景与挑战”,Darko Brodić 和 Alessia Amelio “在图像上设计可访问的文本:最佳实践、技术和资源”,Hannah Milan “寻找最好的验证码”,David Bushell “WCAG 3.0 提议的评分模型:转变无障碍评估”,米哈伊尔·普罗斯米茨基 (Mikhail Prosmitskiy)