您的位置:402cc永利手机版 > 互联网动态 > 我们越来越方便,你选对12306的验证码了么

我们越来越方便,你选对12306的验证码了么

2019-10-30 13:22

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

图片 1

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

即使现在互联网已经渗透到我们生活的方方面面,但它依然只是现实的物理世界在虚拟的网络空间上按比特信息编码后的投射。

图片 2什么,你一个都不认识?图片来源:sinotf.com

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

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

图片 3

验证码的起源

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

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

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

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

图片 4流程图:随机生成字符库→选取随机字符串→随机改变外观→添加背景→提交最终效果

它就是验证码的雏形。

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

区分人与机器的验证码

图片 5

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

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

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

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

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

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

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

自动生成的扭曲的文字和图案是最常见的验证码,虽然它可以有效地识别出很大一部分自动化程序,但它对真人用户的体验并不好。而且随着机器学习的发展,它的破解也越来越容易。

程序员们智力的角逐

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

|-|3|_|_()

)-(3££0”

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

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

图片 6

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

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

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

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

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

图片 7

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

图片 8

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

图片 9

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

图片 10图片来源:zhihu.com

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

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

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

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

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

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

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

图片 11

更多的……验证码?

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

图片 12输入正确的验证码就可以将图片中的码去掉……图片来源:ticbeat.com

图片 13我的数学是体育老师教的,你们呢?图片来源:buzzedtip.com

图片 14会画画,走遍天下都不怕……然而手残怎么办?图片来源:twitter

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

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

Google 的验证码团队做了很多创新,比如创造性地把验证码用于纸质典籍数字化。而在扭曲文字、图片的主流路线之后,Google 的团队还尝试了新的思路,通过追踪点击行为等来识别用户是否是真人,用户只需要点击「我不是机器人」的复选框进行验证即可。

验证码还能干啥?

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

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

图片 15

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

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

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

在最新版本的 Google 验证码 reCAPTCHA v3 中,你甚至什么都不用做,系统就在悄悄核验当前的用户是不是机器人。技术正在让「验证码」越来越隐形,人类不必再为了自证身份去做「反向图灵测试」,但验证码的进步也带来了一些新的问题。

验证码的未来

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

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

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

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

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

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

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

卡内基梅隆大学校舍不大,学校排名也和常春藤盟校也有一定差异,但它有全美排名第一的计算机科学专业。

这所学校出了 13 名图灵奖得主,其中的一位,Herbert Simon 还因为把计算机科学和系统理论、运筹学结合用于管理决策问题,开创了「决策理论」而在 3 年后获得了诺贝尔经济学奖。

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

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

图片 17

图灵测试由计算机先驱人物,「人工智能之父」阿兰·图灵提出,如果一台计算机能和人类对话而不被识别出是机器人即被认为通过图灵测试。验证码也是一种图灵测试,不过它的目的不是为了筛选出人工智能,而是识别出真实的人类用户。

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

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

图片 18

图片验证码也大行其道,包括要求用户识别图片的物体,以及把缺失的部分拖到正确的位置和拼图等。

图片 19

不管形式如何,这些验证码有一个共同的原则:人类很容易识别,但对计算机来说非常困难。一位人工智能研究者在自己的播客中有一个更详细的解释,为避免 CAPTCHA 过难而使网站损失用户,通常要求人类用户通过测试的时间小于 30 秒,用户通过率大于 90%(引用自CSDN 用户 luolan9611)。

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

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

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

CAPTCHA 机制的研究是一个双赢的局面。CAPTCHA 的设计和破解研究呈现出「设计 – 识别 – 再设计 – 再识别」的互相攀升现象,促使 CAPTCHA 研究不断向前发展,从而带来 CAPTCHA 机制的鲁棒性和可用性的不断提升。

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

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

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

本文由402cc永利手机版发布于互联网动态,转载请注明出处:我们越来越方便,你选对12306的验证码了么

关键词: www.402.com 402cc永利手机版