不知道从什么时候开始想在B站上找个视频学习一下,登录时发现验证码变成了这样:

下午六点结束了一天的工作,天气炎热,想着点个外卖吃完了再回家免得自己做饭,点开KFC发现验证码又变成了这样:

那些曾经让我们一度“怀疑人生”不好辨认的扭曲字符验证码好像在我们的日常生活中出现得越来越少。

究其根本,还是要从验证码这一让人又爱又恨的发明开始讲起。

现在国内大家最常见的营销方式是什么?你可能会想到:广告、短信、电话等等。但在第一批“00后”出生的那个年代,互联网行业商业化正式萌芽发展,最常被用来当作营销工具的当属邮件,在当时的互联网邮箱服务提供商中以Yahoo(雅虎)最为出名。

像现在大多数人一天会接收到3~5条垃圾短信一样,那时每个人的邮箱里也必不可少的存在大量的垃圾邮件。这些大部分来源于一群会敲代码、写自动程序的人,垃圾邮件无休止地发送给雅虎带来了用户体验差,邮件打开率低,邮件成本消耗高等问题。除此之外,还有一些不法分子利用邮件进行网络诈骗,他们无所不用其极,甚至还引起了白宫的注意。

2002年,一个来自卡内基梅隆大学的学生提出了“验证码”的概念,即全自动区分计算机和人类的图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart),简称CAPTCHA。经实践证明,验证码在当时有效地解决了以上问题,正确地区分了使用雅虎邮箱的是机器还是人类。

但后来时代变迁,科技进步,20年多前发明的“字符验证码”不能顺应时代发展的潮流必将遇到重重困难,安全性也便不言而喻。

脚本外挂泛滥,人与机器的对抗

“以毫秒级识别网站上的英文+数字验证码省去手敲烦恼,准确率高达90%”这是某网站的传统字符验证码自动输入脚本的功能说明。当在百度搜索“验证码脚本”的关键词后,我们发现类似这样的自动输入英文、数字的验证码脚本近年来一直层出不穷。

这些自动输入的验证码脚本准确率不仅高而且识别速度很快,从上面动图我们能看到输入速度基本是一秒一个。当羊毛党、黄牛、水军等利用这些脚本进行登录、注册或者抢购验证时,巨大的危机便在配置了这类验证码的网站或软件上悄然而至。而后,这些互联网平台的所有者们面临的将是巨额损失。

那脚本又是如何准确识别出这些字符验证码的呢?

卷积神经网络击溃字符验证码

卷积神经网络(Convolutional neural network,以下简称“CNN”),一种广泛应用于图像和视频识别、图像分类、自然语言处理等任务的神经网络。

早在 2003 年就有研究人员利用图像识别算法对字符验证码进行识别并得到了一个令人满意的识别效果。而CNN这个早就实际应用于银行支票等图像识别场景的利器,自然也会被放到验证码的角斗场中。在这两者之间的对抗中,字符验证码从一开始就处于被碾压的状态。

在各种深度学习框架和开源项目变得唾手可得的今天,训练一个 CNN 模型并在某一款字符验证码上快速得到可观的识别率也变得特别简单。

在2021年6月的一项实验中,我们随机生成了3000张图片,共 29726 个标签/目录(因为有的标签生成了 2 张或者多张图片)以如下方式组织了数据集:

CAPTCHA 库默认配置下生成了包含常见的字符扭曲、重叠和点、线的干扰的字符验证码:

实践结果发现本次测试模型对新生成的样本的识别准确率接近80%,且本次训练耗时仅用了11分钟。(实验详情:https://mp.weixin.qq.com/s/jAa1cw6f3QmwPrjttiw8Ow)由此可见,用卷积神经网络识别验证码的方法尤为高效,此次实验用时不到一刻钟便训练出了准确率近80%的模型。当黑灰产想要牟取利益时,机器条件允许,加长训练的时间,准确度完全可以达到95%以上,在这种情况下卷积神经网络便可毫不费力地逐渐击溃本就安全性不高的字符验证码。

廉价打码工人,人与人之间的对决

“验证码是为了区分‘人类’和‘机器’,如果我不使用脚本程序而是就通过真正的人进行验证那不就没办法把我阻拦在外了?”没错,那些黑灰产也是这样想的。但是,怎么能取得跟用自动程序一样的效果呢?永远不把聪明用在正途的黑灰产们想出了一个好办法:以极低的价格雇佣一些贫困国家或者地区的廉价劳动力并让他们在某些平台上进行人工识别字符验证码。这些平台被称为“CAPTCHA farms”也就是“打码平台”,那些劳动力也有个统一的名字叫做“打码工人”。

据研究调查得出全球打码人力输出大国排名分别是:印度、巴基斯坦、委内瑞拉、菲律宾、印尼、越南、肯尼亚、坦桑尼亚、新加坡。中国作为全球人口最多的国家虽然未曾榜上有名,从事打码工作的人也不在少数,大多集中于全职主妇、大学生这样的低收入或零收入人群。

只需要一台电脑,输入几个数字或是字母,按下空格键就能提交,验证码自动更换,鼠标这时甚至都不用派不上任何用场。这样没有技术含量的机械工作显然让传统的验证码不再具有任何安全性。不过现在大多数网站或者软件都会采用不同于字符验证码的滑动拼图、文字点选等应用了新技术的行为式验证码,打码平台对这些形式的验证码来说威胁要比字符验证码小得多。

鱼与熊掌二者皆不可得

人们常说“鱼与熊掌不可兼得”,一款好的验证码必定是同时满足两个条件:一是安全性高,二是用户体验感好,但在字符验证码面前,鱼和熊掌都没有。就像上文中提到的那样,卷积神经网络的应用使字符验证码的破解率和识别率变得越来越高,当时的验证码厂商们也清楚地意识到这一问题。于是他们通过扭曲或使数字和字母部分重叠,图片上加噪点、线条等方式意图让机器难以回答出正确的答案,殊不知这些操作也加大了真正的人类用户识别验证码的难度,给用户造成了不好的体验。直至20年后的今天我们仍能听见大家对这类字符验证码体验不好的吐槽。

结语

显然,安全性低、体验感差的传统字符验证码逐渐消失在人们的视野中是时代的选择。现在的验证码形式已经开始多样化发展,比起字符验证码安全性和体验感都有质的提升。尽管仍有很多人在使用验证码的时候仍然觉得麻烦,但验证码真真切切能保护我们的账号和信息安全。我们都知道事物都是在实践中不断发展进步的,从字符验证码到行为式验证码就是最好的证明。所以多给验证码厂商们一点时间吧,相信不久的将来就会有更安全更好用的验证码

为什么传统的验证码不再安全相关推荐

  1. 传统数据库辉煌不再,云数据库迎来黄金时代

    传统数据库辉煌不再,云数据库迎来黄金时代 这几日,甲骨文一直处于舆论漩涡之中.甲骨文决定裁撤部分中国研发中心员工,首批中国有900人被裁.对于裁员的原因,甲骨文的解释是要对现有研发体系和商业模式进行适 ...

  2. 传统网吧风光不再 玩家上座率不足50%

    短短几年时间就从令人羡慕的"摇钱树"变成"鸡肋",并且经营状况还在继续下滑,苏州传统网吧在守旧消亡或转型生存中面临艰难抉择. 三大现象,传统网吧风光不再 下午三 ...

  3. 两种方式识别“传统”图片验证码

    目前,很多网站为了反爬都会采取各种各样的策略,比较简单粗暴的一种做法就是图片验证码,随着爬虫技术与反爬技术的演变,目前验证码也越来越复杂,比较高端的如Google的I'm not a robot,极验 ...

  4. 传统图形验证码文字获取,字体工整

    黑白图片文字获取,字体必须工整 from PIL import Imageimport pytesseractimage = Image.open('./images/tesseracttest.jp ...

  5. 12306验证码已不再安全 机器准确率99.8%

    4月13日,中国科学院科技战略咨询研究院与腾讯研究院在北京联合举办了"2017人工智能:技术.伦理与法律研讨会". 会议邀请了中国科学院科技战略咨询研究院院长潘教峰.腾讯研究院院长 ...

  6. 模仿黑产破解12306验证码,验证码产品的未来是?

    导读:12306验证码,长时间高居反人类产品排行榜第一名(据某网站调查),普通人一次通过率仅8%,人也识别不清的图片就能成功阻挡自动机了吗?谷歌街景验证码完全取自自然环境确保图片的不重复不被爆破,但是 ...

  7. 乱序图片 极验_极验验证吴渊:传统图片验证方式已经无效了!

    吴渊,极意网络CEO 黑五月频发的宕机门告诉我们:数据安全,所有创业者都应该关注! 让我们来听听IDG资本的两位投资人大佬的深刻分析,以及5家创业公司CEO/CTO大拿的深切呼吁吧!--这里不止有干货 ...

  8. 验证码防薅羊毛技术的解读

    薅羊毛这三个字大家都非常熟悉了,典故出自 1999 央视春晚小品<昨天 今天 明天>中的"薅社会主义羊毛". 而现在的薅羊毛主要发生在互联网上,尤其集中在电商平台.P2 ...

  9. 验证码的前世今生(今生篇)

    看完<验证码的前世今生(前世篇)>也许第一感觉就是Winter is coming,互联网的人机对抗到了最黑暗的时刻.柳暗花明又一村,最黑暗的时刻也是光明即将来临的时刻--在传统验证码的末 ...

  10. Spring Security 实战干货:从零手写一个验证码登录

    1. 前言 前面关于Spring Security胖哥又写了两篇文章,分别图文并茂地介绍了UsernamePasswordAuthenticationFilter和 AuthenticationMan ...

最新文章

  1. Android -- Fragment注意事项
  2. 搜狗分身技术再进化,让AI合成主播“动”起来
  3. MPLS基本结构是怎样的?—Vecloud微云
  4. 阿里巴巴右侧6滑块VS雅虎右侧6滑块VS自定义6滑块
  5. Java多线程学习总结(3)——Java线程的6种状态及切换
  6. mysql的驱动connect放在哪里_十年测试解析:ddt结合excel,csv,mysql实现自动化测试数据驱动...
  7. chrome浏览器提示“adobe flash player不是最新版本!”
  8. 色散原理中涉及到的物理概念 折射率 波数 相速度 传播常数
  9. Android 指南针校正
  10. Linux内核4.14版本——DMA Engine框架分析(2)_功能介绍及解接口分析(slave client driver)
  11. [PAT A1028]List Sorting
  12. 京瓷p5021cdn快速复印_功率实测 节能出色_京瓷 P5021cdn_办公打印评测试用-中关村在线...
  13. 使用最小二乘法和最大似然法估计非线性模型
  14. 服务器上面显示横杠,系统开机左上角显示一横杠一直闪没法系统
  15. windows 重新启动 postgresq
  16. 【LOJ】#2568. 「APIO2016」烟花表演
  17. 网络变压器供不应求 新型网变救市刻不容缓
  18. 准备选型直播SDK产品,ChatGPT竟然这么说...
  19. 移动端手机浏览器页面出现上下滑动页面是涩的感觉,不流畅
  20. Bundle管理Vim插件

热门文章

  1. 商业智能系统在税务行业的应用
  2. 成功解决 ARP项添加失败:请求的操作需要提升
  3. 你还在用 format 格式化字符串?
  4. MySQL查询不同年份母亲节_日期习俗大不同,走近七个国家的母亲节!
  5. python画平行四边形_Python中最小的封闭平行四边形
  6. 普通文档怎么换成php,wps只读文档怎么修改为普通文档
  7. 【量亿数据-level2】唐奇安趋势跟踪系统
  8. 离线地图for arcgis tpk
  9. 虾皮店铺如何快速上传商品
  10. Linux命令 - /etc/passwd文件详解