快捷搜索:

谷歌验证码进化史:我们越来越方便,但也交出

作者: 互联网资讯  发布:2019-10-25

验证码的未来

“反人类”的验证码,从始至终对抗的就不是人类,而是有着庞大计算能力却在模式识别、抽象思维上很弱的计算机。

然而,随着人工智能技术的进步,计算机在模式识别上也越来越强大,验证码也不得不走上越来越“扭曲”、“复杂“、“反人类”的不归路。验证码难度的提升,本质上反应了人工智能技术的进步。

而目前,无论我们多么吐槽12306的验证码,但至少,我们还能够通过它证明我们是真人,而不是机器。这在某种程度上反应了人类在智能上的优越性,至少现在,我们还是比机器智能优越。(或许有一部分小伙伴没法证明?)

目前,Google的算法在扭曲文本类验证码的识别率已经达到了99%,也就是说,这类验证码已经不能作为区分人类和机器的指标了,而总有一天,12306的验证码也会被破解,到那时,为了区分机器和人类,程序猿们又该设计出什么样的验证码呢?

验证码的一生,可以说正是人工智能技术不断进步的一生。而正因为机器越来越聪明,所以人类将不得不面对更多的挑战。或许有一天,人类的造物终将超越人类自己,人工智能终将超越人类,到那一天,验证码或许不复存在了,而人类又该何去何从呢?(编辑:Jerrusalem)

本文由十五言的科学写作训练专栏“科学人的秘密发动机”孵化而成。欢迎科学写作同好加入其中。

再次引用上文提到的研究者的博文:

想必大家最近都被12306坑爹的验证码刷屏了,在这紧张的抢票节奏里,还要忍受验证码对智商的考验,生活也真是不容易。

初代验证码 CAPTCHA:歪歪扭扭的文字是为了故意让机器人看不懂

区分人与机器的验证码

百乐门棋牌 1

想必大家一定见过类似上面的验证码图案。而熟悉的验证码技术背后,隐藏的是这样一个很深奥的问题:

如何区分真人和机器?——即如何证明坐在电脑前的是一个活人而不是一段程序呢?

在这个问题上,一种解决方案是“图灵测试”,即“人类向计算机提问”。而验证码恰好相反,是“机器提问人类解答”,因而验证码也被认为是“反图灵测试”。

2003年,路易斯·冯·安(Luis von Ahn)等人提出了“全自动区分计算机和人类的公开图灵测试”,即CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)。

这个短语,正是验证码的名字。

而这就引发了一个新的问题:机器人向人类提出的问题,能让机器人解答吗?如果机器人能够识别验证码,那不是意味着这个验证码不再能够验证“人类”和“机器”了?

从这以后,各种各样的验证码和验证码破解层出不穷,程序员们的创意和才智在这方寸之间得到了尽情的发挥。而我们,也终于有幸体验到了买火车票之艰难。

百乐门棋牌 2

程序员们智力的角逐

早期的验证码可能只是一串简单的ASCII字符,比如黑客们用

|-|3|_|_()

)-(3££0”

代表“HELLO”。这个后来发展成了火星文(leetspeak),o(╯□╰)o。

后来验证码变成了图片显示字符串或者数字的形式,这也是我们最常见的验证码。

百乐门棋牌 3

早期的验证码采用扭曲字符和梯度背景,然而好景不长,这样的验证码很快就被破解了:

由于图片中字符与背景颜色之间差异较大,于是程序员们可以利用算法将图片中的每一个像素点的值提取出来,然后判断哪些是背景部分,哪些是字符部分。这样将字符与背景分离。

接着,将分离出来的字符与“训练库”——也就是存有这些字符的资料库——里的字符进行最终识别。而且由于英文只有26个字母,而阿拉伯数字只有10个,这样的验证码识别难度也大大降低。

如果一切顺利,根据上面的流程计算机能很容易地识别验证码,并不需要人。这个验证码,也就被破解了。

于是,喜闻乐见的,我们迎来了中文验证码,庞大的中文字符库保证了验证码识别的难度(还混用了拼音):

百乐门棋牌 4

而不会中文的歪果仁则开始逆向思考验证码识别技术并进行针对性的对抗。他们把各个字母粘连起来,这增加了算法上分隔每一个字符的难度。并且每次采用不同的字体也能增加模式匹配的难度。

百乐门棋牌 5

而到了12306这个程度,考验的就不单纯是图案识别了,还有某些抽象思维的能力——比如我得知道“紫砂壶”到底是个啥,或者至少知道它长啥样,我才能选到正确的验证码图案。这,也就是我们俗称的“智商”……

百乐门棋牌 6

然而,这样的图片验证码也并不是一劳永逸的,有人展示了用网络上的识图算法来机器识别12306图片验证码的一种思路。原理大概是这样的:首先将验证码的图片分割成一个个单独的图片,然后将这些图片上传到机器识图的网站上,网站会返回下面的答案。

百乐门棋牌 7图片来源:zhihu.com

接着,只需要让机器识别出验证码的“问题”,也就是需要点击的图片是什么“东西”——在这个例子里是“紫砂壶”——最后让计算机一一匹配就可以了。

并且他认为12306的这一方法其实并不靠谱,存在三个问题:

1、图片过于复杂、混淆过多、条件太诡异时会挡住大部分正常用户

2、容易被枚举,题库太弱,不如字符组合可能性多

3、破解门槛不一定高于字符型Captcha

百乐门棋牌,对于这个分析,我举双手双脚赞成。我买不到票不是智商低,而是因为我们属于被挡住的“大部分正常用户”,嗯,一定是这样的。

然后现在, 铁路总局已经表示,12306网站将调整图形验证码中图片的清晰度和分辨率,而且可能剔除根据后台统计出来大家反映最多的和错误率较高的图片验证码……

在严肃的学术研究之外,卡内基·梅隆大学还有一些对计算机和互联网行业影响深远的「小发明」,比如给了 emoji 产业灵感的第一个笑脸符号 :-),以及「烦人」的验证码。

然而,吐槽归吐槽,在这小小的验证码背后,其实有着许多有趣的故事。屏幕上的方寸之间,其实有着智力上的激烈交锋。在验证码不断发展的背后,是一场场来势汹汹的技术变革。而这场变革,我们每个人都身在其中。

百乐门棋牌 8

百乐门棋牌 9什么,你一个都不认识?图片来源:sinotf.com

reCAPTCHA 的口号也从「别发垃圾信息了,读点书吧」(Stop Spam. Read Books),变成了验证码最初的目的「对人类简单,对机器人困难」(Easy on Humans, Hard on Bots)。

验证码的起源

想必很多人都觉得12306的验证码“反人类”,但其实,“反人类”的验证码最初是用来"反机器"的。

1998年,康柏电脑公司(Compaq Computer Corporation)的四位程序员马克·李李布瑞吉(Mark D. Lillibridge),马丁·阿巴迪(Martin Abadi),克瑞斯那·巴拉特(Krishna Bharat)和安德雷·布罗德(Andrei Broder)向美国专利局提交了一份专利。

在这份专利里,他们提出了一种选择性限制计算机系统访问的办法(Method for selectively restricting access to computer systems)。他们提出这个方法的主要目的,是为了防止脚本机器人(bot)自动向他们的搜索引擎提交网址。

在这篇专利里,他们采用随机生成含有字符串的图片这一方法来生成验证码,并通过扭曲外观和添加背景来避免图片被OCR(光学字符识别)技术破解。

百乐门棋牌 10流程图:随机生成字符库→选取随机字符串→随机改变外观→添加背景→提交最终效果

它就是验证码的雏形。

收购 reCAPTCHA 后,Google 对它进行了改进,以 Google 的方式。

验证码还能干啥?

验证码也并非都是那么奇葩,它也可以用来做一些非常有意义的事情。

例如:卡耐基梅隆大学的路易斯·范安等人(对,就是前面提到的造出CAPTCHA这个短语的人啦)设计了一个名叫 reCAPTCHA 的系统,来进行古籍的数字化。

百乐门棋牌 11

reCAPTCHA将 OCR(光学字符识别)软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回卡耐基梅隆大学。

reCAPTCHA 在 2009 年被 Google 收购,而Google将这一技术发扬光大,不仅用来识别古籍,还用来识别Google街景的街道地址。所以,有一段时间,你会发现google 的验证码变成了某个门牌或者路标:

百乐门棋牌 12谷歌的验证码有时候是街景拍到的门牌号。图片来源:tumblr.com

还有一些更现代的方法包括在字母上加一条曲线、将不同的字母叠在一起或者添加复杂的背景。

看到网站上的奇葩验证码,网友们纷纷献计献策,我个人觉得难度最大的应该是下面这种了:

验证码发明人路易斯·冯·安除了是个计算机科学家,还是一位企业家,但是是那种相信人性美好,希望借助技术,在创造商业价值的同时能附带创造社会价值的人。

更多的……验证码?

当然,还有一些更奇葩的验证码。这些验证码已经变成了一种游戏,而不是单纯的为了区分人类与计算机了:

百乐门棋牌 13输入正确的验证码就可以将图片中的码去掉……图片来源:ticbeat.com

百乐门棋牌 14我的数学是体育老师教的,你们呢?图片来源:buzzedtip.com

百乐门棋牌 15会画画,走遍天下都不怕……然而手残怎么办?图片来源:twitter

面对越来越复杂的验证码,算法可能捉襟见肘,然而还有一种万能的破解方式,那就是:人工识别(Cheap or unwitting human labor)。即将验证码分发给分布式的客户端,客户端人肉识别,返回结果。

还有人专门开发了客户端软件,让没事干的大学生人肉识别验证码赚些小钱。如果在线人数足够多,任务下达后几乎都是秒回的,效率也是不错的。所以,识别好验证码也是一项赚钱的技能(大雾)。

2014 年,冯·安创办了一家更知名的公司——多邻国,这个学外语的应用同样采用「众包」的模式,用户在免费学习一种外语时,也在反过来协助建构多邻国的语言课程,让其他人也能多学习一种语言。

百乐门棋牌 16

还有一个不被普通人知道的点,验证码被称为一种「图灵测试」,所以它在设计之初就有促进人工智能发展的初衷。

百乐门棋牌 17

根据定义,验证码的算法必须公开,这样做的目的是为了让破解验证码的过程是在解决对应的人工智能问题,例如图像识别、准确度更高的 OCR 等,破解者不必花费心思通过逆向工程推演算法。

reCAPTCHA:验证码还能用于纸质典籍数字化

很快,他提出一个新的项目 reCAPTCHA,主要用于把互联网出现前的纸质典籍数字化。思路是这样的:验证码系统会向用户出示两个单词,第一个是正常的自动生成扭曲文字,另外一个则来自纸质典籍的扫描版,它们通常因为年代久远、纸上有污点等原因难以被 OCR 程序识别。

2018 年,Google 再次升级了 reCAPTCHA,在这个被称为 v3 的版本中,用户已经连「我不是机器人」的复选框也看不到了,系统会在背后悄悄分析用户浏览网站的方式,并根据其行为的恶意程度给出一个风险评分。如果用户评分过低,网站可能会要求用户输入更多的信息来证明自己的身份。

一种最常见的验证码是由算法生成的扭曲的文字,这么做是为了防止被光学字符识别程序自动识别出来。

2000 年,从杜克大学数学系毕业,来到卡内基梅隆大学读计算机科学博士的路易斯·冯·安(Luis von Ahn)和导师一起提出了验证码的概念,全称是全自动区分计算机和人类的公开图灵测试(英语:Completely Automated Public Turing test to tell Computers and Humans Apart,简称 CAPTCHA)。

此后,reCAPTCHA 还被用于帮助机器学习系统提高图像识别率,运作原理和前述方法一样,机器难以辨别的门牌号、猫狗照片都被拿来当做验证码考人类。

不要小看这样一个词一个词的积累,推出之初,reCAPTCHA 每天就能录入 3000 万个字符。2011 年,它已经完成了全部的《纽约时报》数字化的工作,这份从 1851 年开始出版的老报纸有大量纯纸质版的内容。

冯·安的博士论文完成于 2005 年,他创造了一个新概念「人本计算」(Human-based Computation),即把人的脑力和计算机的能力结合起来,完成两者都无法单独完成的工作。具体的实现方式上,「众包」是最典型的一种,冯·安也被工人是众包的先驱。

2014 年,Google 推出了新的验证码系统——NoCAPTCHA reCAPTCHA,名字有点拗口,核心是不需要输入验证码的验证系统,用户只需要点击一个「我不是机器人」的复选框,Google 就能判别你是不是真正的人类。

顺便提一下,在 reCAPTCHA 被 Google 收购后,冯·安还有很多基于「人本计算」的项目,比如「带着目的玩游戏」(Games With A Purpose,简称 GWAPs),游戏由两个人同玩,如果两名玩家对一张图片的描述一致即可得分,实际上,游戏的同时也在给人工智能标注数据。

验证码正是为了解决这样的问题而生的。它也是个自动化程序,不过存在目的是区分用户到底是机器人还是真实的人。

百乐门棋牌 18

如果你被误判为机器人,还有一个「申诉」的机会,还是从一堆图片中选出正确的目标。

NoCAPTCHA 的工作机制是跟踪用户点击验证框之前、当时和之后的行为,比如在网页上花费的时间,从而来判断是否是人为操作。

这就意味着自动化程序同样可以模仿人的行为,同时,因为机器速度更快且不知疲倦,它会被用于批量在论坛、网站、app 中发布营销信息。而且,在监管不足的情况下,利润更高的行业往往底线更低,自动机器人发布的垃圾信息经常也和赌博、诈骗、色情等灰色产业有关。一些自动化程序还会尝试以「撞库」的方式窃取用户帐号、密码,给网站带来巨大的安全隐患。

本文由百乐门棋牌发布于互联网资讯,转载请注明出处:谷歌验证码进化史:我们越来越方便,但也交出

关键词: