0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

验证码到底在验证啥?聊一聊验证码是怎么为难我们人类的

dyquk4xk2p3d 来源:科技狐 2023-08-12 10:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在文章开头,老狐先给大家玩一个验证码的游戏,猜出图中验证码字母。

f7ca94e4-38b4-11ee-9e74-dac502259ad0.png

请计算出图中验证码的结果。

f7d6bc7e-38b4-11ee-9e74-dac502259ad0.png

好了,我们还是回到标题上来,聊一聊验证码是怎么为难我们人类的。

验证码的由来

2000年,雅虎当时还是全球最大的网络邮箱服务商,雅虎邮箱的用户经常收到许多垃圾和诈骗短信。

f81a939a-38b4-11ee-9e74-dac502259ad0.gif

这种经历放在今天,就是你下班回到家,发现自己门口摆满了快递。

但注意,其中只有一个快递是你自己购买的,其他的快递都是别人发的垃圾。 你为了找到自己的快递,只好拆了全部的快递。

这时,你恐怕只会后悔自己有这一个快递。

当时受到影响的不止雅虎,还有许多互联网公司。 黑客们利用脚本机器人大量注册账户,进行评论注水、黄牛抢票、撞库扫号等影响互联网企业运营的行为。

现如今,“ 天下苦验证码久矣 ”,而在二十年前,则是“ 天下苦脚本机器人久矣 ”。

后来雅虎找到在卡内基梅隆大学的路易斯·冯·安(验证码之父)等人,与他们合作。

他们利用当时的人机验证机制,为雅虎设计了一套防御机器人的程序,并首次提出了“验证码”的概念。

验证码,更专业的名字是“全自动区分计算机和人类的图灵测试”,简称 CAPTCHA。

验证码的作用是让计算机区分人类和计算机。

大家熟知的图灵测试是让人区分人和计算机,与验证码作用刚好相反。

因此,有些人也将验证码叫做“反向图灵测试”。

文本类验证码

然而,一切没有那么容易。 早期的验证码非常简单,只是普通的字母组合,干扰的信息很少,而文字识别技术( OCR )的应用甚至要比验证码早 30 年。 没过多久,黑客利用 OCR 成功破解了验证码。

fea495da-38b4-11ee-9e74-dac502259ad0.png

于是,计算机科学家们继续寻找更好的防御机制。 他们在验证码的字符中加入更多的干扰因素,将字符连接、变形、空心,变成动态,加入更复杂的背景。

总之,一切都是为了降低脚本机器人的识别成功率。

然而降低机器人识别正确率的效果是暂时的,降低用户的识别成功率却是永久的。

我经常遇到无法识别的验证码,要么需要刷新,要么输入错误。

此时计算机对我的判定是:你不 是 个 人! 这句话听起来是不是好像是在骂人。

2008 年,两位英国纽卡斯尔大学的计算机研究人员发布了一篇论文。

在论文中,他们用新的字符分割法来识别微软、雅虎和谷歌的验证码。

微软和雅虎的验证码识别正确率超过 60%,谷歌的验证码识别率较低,为 8.7%。

ff6ab4a4-38b4-11ee-9e74-dac502259ad0.png

虽然谷歌这个数字看起来比雅虎和微软优秀,但脚本机器人可以发动大量攻击,100 万次尝试就将有 8.7 万个验证码被破解。

因此,这个结果仍然是无法令人满意的。

在这份论文中,研究人员还列出了用户会混淆的几个验证码:

ffca088c-38b4-11ee-9e74-dac502259ad0.png

比如:

f7ca94e4-38b4-11ee-9e74-dac502259ad0.png

开头是字母 “ d ” 还是 “ cl ”?

004045e2-38b5-11ee-9e74-dac502259ad0.png

这是哪几个字符? 别问我答案,我也不知道。 虽然变形扭曲的字符能提升拦截脚本机器人的效率,但真人用户同样难以辨别验证码,也被阻挡在外。

甚至有研究表明,通过卷积神经网络模型( CNN ),机器识别扭曲字体的正确率还要高于人类。

验证码杀敌一千,自损一万。

简单文本内容的验证码已经无法满足需要,于是,又出现了答题类的验证码。

00553812-38b5-11ee-9e74-dac502259ad0.png

验证码成了考题,用户输入正确的答案才能通过验证,这种形式的验证码虽然能暂时有效阻挡脚本机器人,但却对用户不友好,受到许多吐槽。

因此,答题验证码并不常见。

毕竟,当你遇到文章开头这种验证码,你可能不会愿意计算出答案,而是直接关闭页面。

006cdd1e-38b5-11ee-9e74-dac502259ad0.png

文本类验证码面对脚本机器人的攻击,渐渐招架不住,研究人员决定调转方向,开发采用图像选择类的验证码。

图像选择类验证码

相比于文本类的验证码,图像选择类验证码对用户友好很多,只需点击图像,不再依赖键盘输入,而且图像验证码趣味性更强。

例如根据题目要求在几张照片中找出符合要求的照片即可,体验起来像是玩连连看。

2007 年,研究人员提出了图像选择类验证码,之后迅速受到研究人员和用户的欢迎。

毕竟,谁会喜欢考试而不喜欢游戏呢?

2015 年 3 月,12306 为了防止黄牛抢票引入了图片验证码,引发热议。 抢过火车票的小伙伴对此肯定不陌生,为了不被 12306 的验证码难住,不得不调闹钟提早登录 12306。

刚开始,图像选择类验证码还能起到不错的保护效果。 然而,随着图像识别技术的发展,特别是 AI 技术的进步,人们可以训练机器学习分类图片,破解图像。

例如,国外的研究人员就利用 SVM 分类器和卷积神经网络模型等方式,来破解部分图像选择验证码。

来自卡内基梅隆大学的一个团队在 2017 年发布论文表示: 他们通过收集 260 万个验证码和短语,以及 2100 万张图片,经过卷积神经网络的训练,最终可以使机器在 2 秒内以 77% 的正确率通过 12306 的验证码。 019b2650-38b5-11ee-9e74-dac502259ad0.png 为了阻挡脚本

机器人的攻击,维护人员不得不制作更多新的验证码图片,利用新的验证码图片还未被机器学习,以此来降低机器的识别正确率。 于是更多奇怪的验证码被制作出来。

然而,我们普通用户成了最大的受害者,各种奇葩的图片验证码让人难以区分,连登录自己的账户,都变成了一件难事。

不过一些研究统计表明,在图片验证码的正确率上,机器在某些方面的图像感知能力也已经领先人类。

既然图像选择验证码也干不过机器,研究人员再次使出绝招:调转方向!

行为轨迹类验证码

无论文本还是图像都是以问答的形式来验证人和脚本机器人,脚本机器人通过学习,表现比人类还要稳定。

于是,研究人员发明了行为轨迹类的验证码,而它的原理就是利用人类在行为轨迹上不如机器稳定。

以我们熟悉的滑动验证码为例: 当我们将左边的滑块向右拖动,后台服务器不仅验证用户能否正确地将滑块填进空缺位置,还要记录用户的鼠标位置,滑块的移动轨迹等信息。

通常来说,相对于脚本机器人,人类的滑动轨迹都是非匀速的,不准确的。

尤其是像我这样肢体不灵活的人,越接近空缺位置,速度越慢,直到合上滑块。

这个过程有很多不稳定的因素,正是通过不稳定的轨迹,后台服务器才会识别该操作来自于人,而不是稳定的脚本程序。

虽然滑动验证码相比之前的验证码是一个进步,但破解验证码的方式也在跟着进步。

2010 年,日本京都大学的研究人员向外界公布了滑动验证码,并于 2012 年投入商用。

2014 年,马德里康普斯顿大学的研究人员就宣布他们破解了滑动验证。

如今,加入了学习模型的智能脚本机器人也能通过学习人的滑动轨迹,通过做出变速,折返、抖动等行为轨迹来模仿人类,骗过服务器。

行为轨迹类的验证码还有更简单无感的方式,点击验证,直接点击按钮,服务器通过收集检测用户的环境信息来判断是真人还是脚本机器人。

这无疑是目前所有验证码中用户体验最好的,但它也并非绝对安全,而且还存在用户隐私泄露的风险。

短信验证和扫脸认证

现在,短信验证已经成为最常见的验证方式之一。 在老狐的手机短信中,两类短信最多。

一类是验证码短信,一类是需要发送“ TD ”才能退订,但退订后又还能收到新短信的垃圾营销短信,而最实用的快递签收短信只能排在第三。

短信验证通过绑定手机号码来确认该用户是否是本人,跳出了网络这一维度,调用了外部设备,安全程度比以上几种验证码有所提升。

但验证码短信恰恰成了这种验证方式的薄弱环节。

不法分子可以通过建立伪基站,截取用户短信验证码,获得登录甚至交易权限。

又或者,通过诈骗获取用户的验证码。

另一方面,短信验证码又是最不友好的验证方式之一,尤其是手机不在的时候,还要找手机,解锁、记住验证码,再输入验证码,这是我最讨厌验证码的时刻。

如今,一些对安全要求较高的验证通道已经卷向了扫脸验证,需要对着手机前后移动,调整角度,眨动眼睛才能登录。

然而这种看似安全的方式也不是绝对安全,百度搜索可看到许多扫脸认证被破解的信息。

验证码的另类敌人

这时老狐不禁想:我们普通用户登录个账号怎么就这么麻烦。

本质上而言,验证码技术的战争是网站维护人员与黑客攻击者之间的竞争。

双方你追我赶,验证码的技术在 20 年里已经多次迭代。

从最简单的输入字母到需要调动用户摄像头的刷脸验证,破解技术也从曾经的 OCR 发展到如今的 AI。 然而,最受伤的却是我们这些普通用户,验证方式逐渐复杂,意味着我们要在验证码上花更多时间和更多手段。

验证码要面对的敌人,并不仅仅是脚本机器人或技术顶级的黑客,还有毫无技术含量的人类。

一些不法分子建立了验证码破解平台,将验证码打包发送至平台,以非常低廉的价格雇佣一批人。

人工输入正确验证码答案,并建立数据库,用来破解验证码,这个方法简单粗暴却有效。

AI 也学会了这一方式。 据媒体报道,一个测试 AI 的机构发现 OpenAI 的 GPT4 会假装成一个视障人员,让人类帮他输入验证码。 没错,AI 甚至学会了欺骗人类免费帮它劳动。

面对越来越接近人类的 AI,区分人类和机器人将会变得越来越困难,验证码只会更加复杂繁琐。

而作为一个普通的网络用户,老狐只希望输入验证码的方式能简单一点。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    213

    文章

    30590

    浏览量

    219632
  • 计算机
    +关注

    关注

    19

    文章

    7764

    浏览量

    92688
  • OCR
    OCR
    +关注

    关注

    0

    文章

    170

    浏览量

    17052
  • 图像识别技术

    关注

    1

    文章

    30

    浏览量

    6638
  • 卷积神经网络

    关注

    4

    文章

    371

    浏览量

    12719

原文标题:变态的验证码,到底在验证啥?

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    置信度验证对于自动驾驶来说重要吗?

    [首发于智驾最前沿微信公众号]就在最近,听到了置信度验证的相关概念,作为名自动驾驶行业小白,智驾最前沿听到这个概念后,便去了解下这个内容,今天智驾最前沿就跟大家来简单聊聊置信度验证
    的头像 发表于 11-12 08:54 610次阅读
    置信度<b class='flag-5'>验证</b>对于自动驾驶来说重要吗?

    如何验证电能质量在线监测装置的抗干扰能力?

    验证结果既符合行业规范,又贴近真实应用场景。以下是具体可落地的验证方法、标准依据及量化判据: 、第步:实验室标准 EMC 测试(核心合规验证
    的头像 发表于 10-11 16:39 619次阅读
    如何<b class='flag-5'>验证</b>电能质量在线监测装置的抗干扰能力?

    如何验证硬件冗余设计的有效性?

    验证” 的全流程方案实现。以下是具体验证方法、关键指标及实施步骤: 验证前的核心准备:明确目标与范围
    的头像 发表于 09-18 16:36 766次阅读
    如何<b class='flag-5'>验证</b>硬件冗余设计的有效性?

    文讲解】汽车生产DV与PV验证

    汽车开发和生产过程中,DV(DesignVerification,设计验证)和PV(ProductionValidation,生产验证)是两个关键的质量控制环节,分别针对设计可靠性和生产
    的头像 发表于 09-16 16:59 3059次阅读
    【<b class='flag-5'>一</b>文讲解】汽车生产DV与PV<b class='flag-5'>验证</b>

    NVMe高速传输之摆脱XDMA设计24: UVM 验证包设计

    UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析与统计。 验证包包含个NoPHAE_env
    的头像 发表于 09-14 11:29 4500次阅读
    NVMe高速传输之摆脱XDMA设计24: UVM <b class='flag-5'>验证</b>包设计

    芯盾时代智能风控决策平台助力金融机构守好反诈防线

    旦开启屏幕共享,受害者的手机屏幕便暴露在诈骗分子眼前。银行卡号、密码、手机验证码……都将和诈骗分子实时共享。随后,诈骗分子便能登录受害者的金融账户,实施盗转盗刷,瞬间清空受害者的账户余额。
    的头像 发表于 08-20 10:32 816次阅读

    自动化测试如何绕过Cloudflare验证码?Python + Selenium 脚本实战指南!

    01什么是Cloudflare验证码Cloudflare提供网络工具,并提供套全面的安全功能,以保护网站免受各种在线威胁。Cloudflare验证码种用于区分
    的头像 发表于 08-15 10:01 893次阅读
    自动化测试如何绕过Cloudflare<b class='flag-5'>验证码</b>?Python + Selenium 脚本实战指南!

    Kawaiimqtt如何使用mbedtls双向验证

    Kawaiimqtt如何使用mbedtls双向验证
    发表于 06-13 08:23

    Veloce Primo补全完整的SoC验证环境

    在芯片构建之前完成。虽然硬件加速器和桌面原型板是这项验证中两个众所周知的参与者,但企业原型同样具备重要的意义。 尽管仿真设计的早期阶段占据主导地位,但由于性能的原因,其更多的适用于模块级验证
    的头像 发表于 06-12 14:39 1177次阅读
    Veloce Primo补全完整的SoC<b class='flag-5'>验证</b>环境

    HarmonyOS5云服务技术分享--登录邮件功能整理

    ;gt; { console.log(\"验证码登录成功!\"); }); 4. 敏感操作处理​​ ​​修改邮箱/密码需先进行重认证​​(用户需5分钟内登录
    发表于 05-22 16:04

    HarmonyOS5云服务技术分享--手机号登录教程

    ;手机号+密码\"还是\"手机号+验证码\",这篇保姆级教程都会手把手带你实现。准备好了吗?Let\'s go~ ? 、为什么选择手机号认证? 开始代码之前,先说
    发表于 05-22 15:37

    硬件辅助验证(HAV) 对软件验证的价值

    硬件辅助验证 (HAV) 有着悠久的历史,如今作为软件驱动验证的必备技术,再度受到关注。 RISC-V 可能是说明这点的最好例子。HAV 能够执行多个周期的软件驱动验证,是加速 RI
    的头像 发表于 05-13 18:21 1656次阅读

    FPGA EDA软件的位流验证

    位流验证,对于芯片研发是个非常重要的测试手段,对于纯软件开发人员,最难理解的就是位流验证FPGA芯片研发中,位流验证是在做什么,在哪些
    的头像 发表于 04-25 09:42 2064次阅读
    FPGA EDA软件的位流<b class='flag-5'>验证</b>

    秒验:重构APP用户体验与运营效率

    秒验:重构APP用户体验与运营效率 移动互联网竞争日益激烈的今天,APP用户对便捷性和安全性的需求持续升级。传统短信验证码的“输入-等待-验证”流程,因延迟、操作繁琐等问题,已成为用户流失的重要
    的头像 发表于 02-28 10:40 641次阅读

    新思科技推出基于AMD芯片的新代原型验证系统

    近日,新思科技宣布推出全新基于AMD Versal™ Premium VP1902自适应系统级芯片(SoC)的HAPS®原型验证系统,以此进步升级其硬件辅助验证(HAV)产品组合。 此次推出的全新
    的头像 发表于 02-19 17:12 1153次阅读