购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 验证码介绍

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart,区分计算机和人类的完全自动化公共图灵测试)验证码技术是一种阻止自动化程序访问网站的保护措施。因为CAPTCHA验证码技术的主要目的是区分程序和真实人类,本质上是一种挑战-应答机制,所以CAPTCHA验证码技术在实现上一般遵循的原则是:易于人类识别与处理,但自动化程序不容易识别与处理。目前,很多网站在不同阶段使用CAPTCHA验证码技术来保护自身的正常业务流程免受自动化程序的影响。例如,在用户登录阶段,使用CAPTCHA验证码技术防止恶意软件暴力破解用户密码;在提交表单时,使用CAPTCHA验证码技术确保表单数据来自真实用户。

实际上,类似于CAPTCHA算法的思想在互联网应用的早期就已经被广泛使用。在20世纪80年代,互联网论坛成为人们交流讨论的热门场所。当讨论敏感话题时,用户担心论坛的自动监控系统会根据关键词进行内容过滤或屏蔽,因此他们开始采用视觉上相似的字符来替换原文字母。这种字符替换使得自动过滤系统难以识别这些变形词,而人类用户却能够正常阅读和理解这些内容。这种使用替代字符的写法后来被称作Leetspeak。

Gausebeck-Levchin测试是一种早期的验证码系统,最早由Max Levchin和Peter Gausebeck于1997年开发。该测试旨在区分人类用户和计算机程序,以防止自动化软件对网站进行恶意攻击或滥用。这种测试要求用户识别和输入扭曲的文本或图像中的字符,以证明使用者是真实的人类而非自动程序。

2000年,idrive.com成为首家商业网站采用Gausebeck-Levchin测试来保护它的注册页面,使它免受恶意活动的影响。2001年,PayPal将此类测试作为它预防欺诈策略的一部分。

随后,Gausebeck-Levchin测试被广泛应用于各种网站和在线服务中,成为防止机器人和恶意软件攻击的重要工具之一。

2003年,来自卡内基梅隆大学的研究团队完善了相关的验证码算法和理论,并且正式将它命名为CAPTCHA。

自从验证码技术首次被创建并应用以来,它的实现技术和形式一直在不断完善和改进。

目前,基于文本识别的验证码、基于图片识别的验证码和基于声音识别的验证码是当前三种主流的验证码实现技术。除上述三种传统的验证码技术外,Google公司还开发了基于用户行为分析的智能验证码。

3.1.1 基于文本识别的验证码

文本验证码是一种传统的验证码形式,其表现形式通常要求用户根据一串扭曲变形的数字或字母图形输入对应的文本字符,如图3-1所示。

图3-1 文本验证码示例

文本验证码中的字符通常包含扭曲变形、旋转、缩放等特性,有些文本验证码中还会包含背景噪声和干扰线条等,以进一步阻碍自动化程序的识别。

3.1.2 基于图片识别的验证码

基于图片识别的验证码近年来开始流行,形式多样。在基于图片识别的验证码中,用户通常会看到一系列图片,要求他们执行特定的任务,例如识别图片中的物体、滑动图片完成拼图任务、选择与特定主题相关的图片等。用户需要根据提示完成这些任务,以证明自己为真实人类。

基于图片识别的验证码不仅提高了安全性,还提升了用户体验,因为相比传统的文本验证码,用户更容易理解和完成与图片相关的任务,如图3-2所示。这种验证码系统在当前互联网应用中被广泛使用。

图3-2 多种类型的图片验证码

3.1.3 基于语音识别的验证码

在基于语音识别的验证码中,用户通常会收到一个包含语音指令或短语的音频文件,要求他们听取并正确识别其中的内容。用户需要在规定的时间内听取并输入正确的语音内容,以证明其为真实人类。播放的音频内容通常包含背景噪声,从而加大了自动化程序识别处理的难度。

3.1.4 基于行为识别的智能验证码

NoCAPTCHA是由Google推出的一种验证码系统,旨在提高用户体验并减少对用户的干扰。与传统的验证码系统不同,NoCAPTCHA采用了一种更简单、更直观的验证方式,使用户能够更轻松地通过验证而无须输入复杂的文本或执行复杂的任务。

NoCAPTCHA的核心特点是“点选复选框”(Click-based Checkbox),用户只需简单地点击一个复选框来证明自己是真实的人类用户,而无须输入任何文本或执行其他任务。这个复选框通常会伴随着一条简短的提示,例如I’am not a robot,如图3-3所示。

图3-3 NoCAPTCHA

在用户点击复选框后,NoCAPTCHA会通过复选框后面的隐藏机制来验证用户的真实性。如果系统认为用户的点击行为符合真实用户的特征,验证过程将顺利通过,而如果系统怀疑用户可能是机器人,则会要求用户进一步进行验证,例如通过图像识别或其他方式。 i1HCx0tGLiL8014JpBszZDScX7lSFekxLKaCrBj3wXp6w+bYJys5dudatay6pI8u

点击中间区域
呼出菜单
上一章
目录
下一章
×