X

当你输入验证码之后,这个世界发生了什么?

当代生活,每个用户的手中都会有或多或少的账号,而在你登录的时候总会有几个讨厌的弹出窗口,尤其是验证码。起码春运时节,很多朋友应该看 12306 的验证码已经看到要疯了……

有关他的故事可以看看电影《模仿游戏》,「卷福」本尼迪克特主演。

而验证码的全称是全自动区分计算机和人类的公开图灵测试(Completely Automated Public Turing test to tell Computers and Humans Apart,简称 CAPTCHA),由卡内基梅隆大学的路易斯·冯·安于 2002 年提出。

我们都知道不管是网站还是 App 是建立在服务器上的,而服务器的容量和带宽是有限的,如果大量的非人流量涌进了服务器中,会造成服务器的荷载过量,影响正常用户的使用。这些非人流量中既有机械劳作的机器人,也有抓取页面信息的爬虫。

就像这段时间春运买火车票,和你一起抢票的除了众多和你一样归家心切的同路人之外,还有抢票机器人、挂着抢票脚本的黄牛和各大出行 App。而后面这几个的抢票能力可比单个购票用户强太多了……

英文 + 数字

问答

更难的还有语音电话验证码、短信上传式验证码等等,可以说破解难度是一步一登天。

???

而在这些复杂的验证码背后,则是不断进步的验证码破解方式:从最早的暴力破解、 OCR 文字识别、撞库识别到最先进的 Tensorflow 深度学习识别验证码,双方就在你来我往中不断升级自己的战斗力,实现螺旋式上升。

事实上,相较于不断升级的验证码,与之相对的验证码破解技术这些年进步幅度并不大,这其实主要是因为对于愈发复杂的验证码破解者可以使用的手段并不多。

拿到一段验证码之后,首先算法要自动提取验证码中的文字,紧接着要去降低验证码中的「噪声元素」对识别算法的影响,然后要分割单个文字元素,进而提取出验证码。并且在不同字体和干扰噪声的基础、识别准确率和时间限制的情况下,很难开发出一套具有普适性的破解算法。

但是对于传统验证码来说,破解者们还有一招终极大招 —— 人力打码,网上有众多打码平台,发布任务之后就会有人过来人力打码,这就相当于是用人力这个作弊的方式通过了图灵测试。

因此在移动时代,减少输入、主要依靠点击滑动等互动操作的验证码就成为了最符合用户使用习惯的验证码。目前滑块式验证码和图片元素识别式的验证码是各大网站最主要的验证码。

而在简单一点的背后,则是 Google 风险分析引擎在发挥作用,这个引擎会在用户点击验证码前、点击中和点击后分析用户是否是真人,这个引擎会上传用户的 IP、国家、点击时间、鼠标轨迹、网页滚动记录等用户使用条件到服务器中,进而分析用户的真实身份是人还是机器人。

目前这项技术国内也出现了一些仿效者。