在线手机号验证码(验证码的前世今生)

“你永远不知道,坐在网络对面的人还是一条狗。”

——网友开玩笑说

视频、旅游、购物等网站的用户一定是人类吗?会不会是伪装成“人”的电脑?

为了识别人类和计算机,“验证码”应运而生。



今天我们就来了解一下验证码的前世吧!

01

先了解什么是图灵测试

自从1946年世界上第一台计算机出现以来,聪明人就考虑计算机发展取代人类的可能性。被称为计算机科学和人工智能之父的艾伦·麦吉森·图灵(Alan mathison turing)专门设计了一个著名的“图灵测试”,以确定计算机在智力行为上是否能表现得与人无差别。




当主持人提出一个问题,从两个答案中分辨不出谁是人类,谁是计算机时,说明计算机的智能水平和人类没有区别。

图灵测试由人类来评判:计算机是谁?谁是人类?

最重要的目的是识别电脑。

02

反向图灵测试就是验证码

然后“验证码”由计算机判断:谁是人类?谁是电脑?

最重要的目的是识别人类。

这从验证码的中英文全称就可以看出来:Captcha(区分计算机和人类的全自动公共图灵测试),又称HIP(人类交互证明)。

最典型的验证码,如下图所示。




从目前来看,这个验证码确实有点粗糙。

但在计算机技术还不发达的时代,这样的验证码足以识别人类:

  • 只有人类才能识别验证码中严重扭曲的字母或数字;

  • 另一方面,计算机无法被识别。

    基于该验证码,在各种计算机系统(例如网站、邮箱等)之后。)成功识别出真正的人类,人类被允许继续操作,比如登录邮箱和投票。

    03

    用于“保护”的验证码

    当各种计算机系统无法识别人类和计算机时,计算机技术也会给人类带来麻烦,比如:

  • 邮箱注册泛滥,导致垃圾邮件满天飞;

  • 野蛮投票,导致投票结果不公平;

    车票的插件被抢占,导致无法买到返程票。

    1999年,某网站发起网上投票评选美国最好的计算机科学学校时,一人投票是合理的。但是在设计投票网站的时候,我们并没有考虑太多,只以投票人电脑的IP地址作为判断依据。

    于是有人写了一个电脑脚本批量刷票:每次投票后换一个IP地址,然后继续投票。这样,几千个IP地址代表几千个不同的人,就可以投出几千张选票。

    这种电脑技术无疑影响了整个投票的公平性。

    因此,各种计算机系统都需要一个强大的“盾牌”来保护自己。

    第一个验证码(字符型)的出现其实是为了对抗“自动刷票”的计算机技术。

    04

    越来越坚固的“盾牌”

    那么你知道有哪些奇怪的“验证码”吗?

    01

    字符类型

    A型验证码是我们日常生活中最常见的验证码。通常是字母和数字的组合,而为了增加识别难度,这些字符往往被变形、扭曲、翻转。




    随着计算机技术的发展,字符验证码的安全性在降低,逐渐被其他类型的验证码所取代。

    02

    计算类型

    I类验证码,通常是一些数学公式,需要人类发动聪明的大脑进行复杂的计算,才能得到正确的结果。




    不幸的是,这种验证码可以提供很高的安全性。虽然计算机很难识别,但大部分人类都觉得很难。因此,计算验证码还没有得到广泛应用。

    03

    点击类型

    点击验证码最大的特点就是用户只需要通过鼠标点击,不需要输入任何东西。通过这种人类特有的行为和动作,以及用户在浏览器中的一些操作数据和浏览数据,共同识别出真正的人类。




    点击式验证码安全性更高,用户体验更好。

    在一些重要的计算机系统中,如动车售票网站、大型购物网站、大型视频网站等用户量大、数据安全要求高的场所,点击验证码可以有效识别人类,避免其他计算机的攻击。

    04

    滑动式

    滑动验证码可以通过收集用户的动作来判断是否是人。比如人拖动滑块的轨迹会是一个先快后慢的过程:先快后慢的拖动,再慢慢对齐,然后瞬间释放。




    这个验证码的用户体验还是不错的。虽然计算机技术突破的成功率在60%以上,但是计算机技术模拟人类行为的成本很高,得不偿失。

    05

    短信

    短信验证码是最常用的方式。各类app一般都采用这种方式,简单直接,通过运营商发短信也很安全。



    每个验证码对应一个手机号,一般有效期只有60 ~90秒,不给别人留下钻空的机会。

    06

    扫描代码类型

    扫码验证码其实是为了保证你先在手机上成功登录,然后通过扫描二维码继续在PC上登录。这是当今各大视频网站和购物网站常用的方法。




    让人类来验证自己。嘿,这是一个伟大的方法。

    07

    生物特征

    各种人脸识别、指纹识别、声纹识别甚至虹膜识别都可以算作生物验证码。它更容易使用,并且由于这些生物特征在每个人类身上的唯一性,它就像一把专属的钥匙,具有很高的安全性。

    05

    夏普尔的矛

    虽然“盾”很强,但随着计算机技术的不断进步,锋利的“矛”层出不穷。

    为了突破验证码的保护,开发了以下计算机技术:

    01

    OCR技术

    OCR(光学字符识别)技术可以直接将图片和照片上的文字内容转换成可编辑的文本。

    2003年,有人利用图像识别算法(形状上下文)自动识别简单字符验证码,成功率93%。




    OCR技术只能突破一些简单的字符验证码,稍微复杂一点的字符(比如扭曲、翻转)会花费更多的时间,一般在字符验证失败之前无法识别成功。

    02

    机器学习模型

    2005年,有人利用机器学习模型(CNN)自动识别单个字符的验证码,计算机识别的成功率甚至高于人类。

    手机验证码收不到是怎么回事




    但是如果要用机器学习模型识别字符验证码,需要准备很多高性能的计算机和大量的训练数据,所以模型识别的成本太高,普通人用不上。

    03

    伪装手机基站

    为了破解短信验证码,伪装的手机基站需要先屏蔽目标手机的信号,然后尝试用这个手机号登录网站,能够伪装目标手机接收短信。




    每个环节都要在短时间内完成,这简直是不可能完成的任务,而且每一步都是违法的,破解成本高如天价。

    04

    终极“伪装”

    “能打败人类的人,最终会是他自己”!

    当人类有了走出宇宙文明的计算机技术,我们能不能克隆一个人类,让克隆出来的人类破解各种验证码?岂不是得心应手?!

    当然,这只是边肖的一个失落的幻想,可能在科幻片里看到。粉丝们,别当真!

    好了,今天的内容就到这里。让我们和边肖一起回顾一下:

  • “图灵测试”是为了区分谁是计算机;

  • “验证码”是为了区分谁是人类;

    奇怪的“验证码”保护各种电脑系统;

    层出不穷的“计算机技术”不断提高着伪装成人类的能力。

    作为“挡箭牌”,验证码如何更安全易用?

    计算机技术作为“矛”,如何突破验证码的严密防御?

    这些问题都需要有智慧的人类和更智能的计算机技术来回答。

    可以预见,作为“人类与计算机角斗场”的验证码,它将迎来更多的攻防机会,同时给我们的社会带来更多的改变。让我们拭目以待!


    转载内容仅代表作者观点。

    不代表中国科学院物理研究所的立场。


    来源:中兴文件

    编辑:加勒特

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友