“你永远不知道,坐在网络对面的人还是一条狗。”
——网友开玩笑说
视频、旅游、购物等网站的用户一定是人类吗?会不会是伪装成“人”的电脑?
为了识别人类和计算机,“验证码”应运而生。
01
先了解什么是图灵测试
自从1946年世界上第一台计算机出现以来,聪明人就考虑计算机发展取代人类的可能性。被称为计算机科学和人工智能之父的艾伦·麦吉森·图灵(Alan mathison turing)专门设计了一个著名的“图灵测试”,以确定计算机在智力行为上是否能表现得与人无差别。
图灵测试由人类来评判:计算机是谁?谁是人类?
最重要的目的是识别电脑。
02
反向图灵测试就是验证码
然后“验证码”由计算机判断:谁是人类?谁是电脑?
最重要的目的是识别人类。
这从验证码的中英文全称就可以看出来:Captcha(区分计算机和人类的全自动公共图灵测试),又称HIP(人类交互证明)。
最典型的验证码,如下图所示。
但在计算机技术还不发达的时代,这样的验证码足以识别人类:
基于该验证码,在各种计算机系统(例如网站、邮箱等)之后。)成功识别出真正的人类,人类被允许继续操作,比如登录邮箱和投票。
03
用于“保护”的验证码
当各种计算机系统无法识别人类和计算机时,计算机技术也会给人类带来麻烦,比如:
于是有人写了一个电脑脚本批量刷票:每次投票后换一个IP地址,然后继续投票。这样,几千个IP地址代表几千个不同的人,就可以投出几千张选票。
这种电脑技术无疑影响了整个投票的公平性。
因此,各种计算机系统都需要一个强大的“盾牌”来保护自己。
第一个验证码(字符型)的出现其实是为了对抗“自动刷票”的计算机技术。
04
越来越坚固的“盾牌”
那么你知道有哪些奇怪的“验证码”吗?
01
字符类型
A型验证码是我们日常生活中最常见的验证码。通常是字母和数字的组合,而为了增加识别难度,这些字符往往被变形、扭曲、翻转。
02
计算类型
I类验证码,通常是一些数学公式,需要人类发动聪明的大脑进行复杂的计算,才能得到正确的结果。
03
点击类型
点击验证码最大的特点就是用户只需要通过鼠标点击,不需要输入任何东西。通过这种人类特有的行为和动作,以及用户在浏览器中的一些操作数据和浏览数据,共同识别出真正的人类。
在一些重要的计算机系统中,如动车售票网站、大型购物网站、大型视频网站等用户量大、数据安全要求高的场所,点击验证码可以有效识别人类,避免其他计算机的攻击。
04
滑动式
滑动验证码可以通过收集用户的动作来判断是否是人。比如人拖动滑块的轨迹会是一个先快后慢的过程:先快后慢的拖动,再慢慢对齐,然后瞬间释放。
05
短信
短信验证码是最常用的方式。各类app一般都采用这种方式,简单直接,通过运营商发短信也很安全。
06
扫描代码类型
扫码验证码其实是为了保证你先在手机上成功登录,然后通过扫描二维码继续在PC上登录。这是当今各大视频网站和购物网站常用的方法。
07
生物特征
各种人脸识别、指纹识别、声纹识别甚至虹膜识别都可以算作生物验证码。它更容易使用,并且由于这些生物特征在每个人类身上的唯一性,它就像一把专属的钥匙,具有很高的安全性。
05
夏普尔的矛
虽然“盾”很强,但随着计算机技术的不断进步,锋利的“矛”层出不穷。
为了突破验证码的保护,开发了以下计算机技术:
01
OCR技术
OCR(光学字符识别)技术可以直接将图片和照片上的文字内容转换成可编辑的文本。
2003年,有人利用图像识别算法(形状上下文)自动识别简单字符验证码,成功率93%。
02
机器学习模型
2005年,有人利用机器学习模型(CNN)自动识别单个字符的验证码,计算机识别的成功率甚至高于人类。
03
伪装手机基站
为了破解短信验证码,伪装的手机基站需要先屏蔽目标手机的信号,然后尝试用这个手机号登录网站,能够伪装目标手机接收短信。
04
终极“伪装”
“能打败人类的人,最终会是他自己”!
当人类有了走出宇宙文明的计算机技术,我们能不能克隆一个人类,让克隆出来的人类破解各种验证码?岂不是得心应手?!
当然,这只是边肖的一个失落的幻想,可能在科幻片里看到。粉丝们,别当真!
好了,今天的内容就到这里。让我们和边肖一起回顾一下:
计算机技术作为“矛”,如何突破验证码的严密防御?
这些问题都需要有智慧的人类和更智能的计算机技术来回答。
可以预见,作为“人类与计算机角斗场”的验证码,它将迎来更多的攻防机会,同时给我们的社会带来更多的改变。让我们拭目以待!
转载内容仅代表作者观点。
不代表中国科学院物理研究所的立场。
来源:中兴文件
编辑:加勒特