吐槽N次“奇葩”验证码 你真正懂它的作用吗?
金蝶云社区-天冥异
天冥异
69人赞赏了该文章 923次浏览 未经作者许可,禁止转载编辑于2018年12月13日 14:53:41


转自: 互动百科 

每当春运抢票时……


image.png


掀桌!

快来个人告诉我1和2哪个才是紫砂壶!!!


image.png


还有登录一些专业网站时……


image.png


image.png


image.png


image.png


哼!

欺负宝宝读书少!

宝宝找人打你!


image.png


但是你有没有想过,为什么程序猿们要设计出介种奇葩验证码呢?


下面我们就结合腾讯来了解验证码“冤屈”的前世今生。


不能为了拦住坏人,而拦住所有人



在2008年之前,凡是在网页上登录QQ都得输入验证码。当时的策略是“一视同仁”,给所有用户下发验证码。


经过一段时间的摸索,团队开始意识到一个问题:


验证码的初衷,是为了拦住“坏人”,而不是拦住“所有人”。


举个例子,你在家里开个Party,为了防止不怀好意的人趁机混进来,你请了保安在门口进行安检。

可是,有没有必要对所有来客都进行安检呢?如果是认识多年的好友,或是常来你家串门的邻居呢?

如果你全都同等对待,友谊的小船肯定说翻就翻。


image.png


因此,腾讯开始尝试对那些明显是正常用户的行为免去下发验证码。

也就是通过安全大数据的能力,自动区分机器与正常用户,向机器下发验证码拦截,对好人则免验证码直接登录,以此提升用户体验。

在腾讯,这项平衡安全和体验的策略工作称之为“免验”。


image.png

对可疑行为下发验证码


在下发“免验”策略初期,只能免掉10%的验证码。


随着数据积累和能力的提升,免验比例也在不断提高,力求免去正常用户辨别验证码的苦恼。直到现在,免验策略还在持续优化。


验证码更新,要比坏人“更快”



道高一尺,魔高一丈


电商、团购、互联网金融崛起,黑产从业者的可图之利增多,验证码的战场正式进入了一段破解与抗破解的持久博弈。


image.png

早期的密码暴力破解软件


业界普遍把验证码设计得越来越复杂。


长久下来,就形成了机器人和用户都看不懂的尴尬局面。


image.png


显然

这条路是走不通的


在长期的试错和斗争中,腾讯的研究人员发现坏人在破解验证码时存在一大死穴——时间。


从一套新的验证码出现,到坏人成功破解,再集成到自动化软件流入黑市,整个过程需要一个周期。


那么,如果我们更新验证码的速度快于坏人的工作周期,问题不就迎刃而解了?


基于这种对抗理念,在2011年7月,“魔术师”验证码诞生了。如同魔术师快得让人看不清的手法,魔术师验证码采用了高频的切换策略,不停的更换字体,使对抗形成了“敌方未破我先变”的局面。


image.png

原有验证码 vs 魔术师验证码


果然,敌人自动机大军的步伐被成功遏制,铩羽而归。


字库都用枯竭了,还有啥办法?



但为了巨大的潜在利润

敌人永远不会消停


由于魔术师的字体库已经跑了一年,再加上图像识别技术的发展,坏人几乎遍历研究。


以前,只要验证码的字体一切换,破解率立马就会刷刷地往下掉。而后来,破解率仅小掉一下马上又反弹了。


换字体策略失效!该怎么办?




研究人员发现,任何一种自动机,对验证码的识别率都不可能达到100%,有验证成功的图片,肯定也有验证失败的图片。


做个假设,某种自动机的破解率是10%,也就是指在100张图片里,有90张无法识别。那么我们把这90张图片收集起来,每次都给它下发这些图片,10%的破解率会瞬间掉到0%。


因为此时,自动机已陷入了绕不开的死结。


根据这个思路,2013年元旦前,“猜你喜欢”验证码诞生了。“猜你喜欢”通过分析自动机行为特征,自动寻找、收集自动机的弱点,反复攻敌之弱。


image.png

原有验证码 vs 猜你喜欢验证码


在体验上,“猜你喜欢”摆脱了对图片复杂性的依赖,做到了“高清无码”,正常用户的识别率也大幅提高。在安全性上,防破解效果立竿见影.


当坏人学会了人工智能



坏人永远不停歇

对抗也越发激烈


黑产也运用起了人工智能,推出验证码的杀手锏–打码平台,从设计原理上突破验证码。


image.png


他们招募大批的打码工人,进行流水线作业。


而让这个情况更糟糕的是打码和深度学习结合,打码平台和使用打码平台的开发者给自动机破解程序提供样本,通过神经网络学习,破解程序可以很快做到较高的破解率。


再加上OCR(文字识别技术)的发展,字符验证码对抗非常艰难。


此时,许多新型的验证码出现了:


image.png


image.png


image.png


世界上没有绝对破不了的验证码。


随着机器学习的不断发展,程序猿遇到的挑战也将越来越多。


不断尝试和跟坏人斗智斗勇,更多新型验证码也正在研究当中。


验证码团队不会采用一成不变的单一验证手段,而是配合策略,组合下发,快速迭代。


可以肯定的是,无论是过去、现在,亦或是不远的将来,对抗黑产,这都注定是一场没有硝烟的血战。


赞 69