验证码其实不简单
2022-09-21文|马迪
文| 马 迪
每输入一个验证码,你可能都付出了一次义务劳动,而且是能改变未来的那种。
你是否关注过我们每天都“破解”好几次的各类验证码,其实它一点都不简单。
早期的互联网是一片蛮荒丛林,黑客编写的恶意程序横行霸道。它们伪装成人类,制造了大量的马甲用户、垃圾信息甚至诈骗邮件,网站被恶意灌水,邮箱被塞满垃圾邮件,人们不胜其扰。那么,该如何把伪装成人类的程序机器人鉴定出来呢?
2000年,从杜克大学数学系毕业,来到卡内基梅隆大学读计算机科学博士的路易斯·冯·安第一次提出了验证码的程序概念。该程序是指,向请求的发起方提出问题,能正确回答的即是人类,反之则为机器,全称是“全自动区分计算机和人类的公开图灵测试”。
这个程序基于一个重要假设:提出的问题要容易被人类解答,且让机器无法解答。其具体设计是将随机生成的字符加上随机的扭曲、重叠、污染等效果—对人来说只是增加了一点点辨认难度,却足以阻挡当时最高级的黑客程序了。饱受困扰的免费邮箱巨头雅虎第一个应用了这个产品,很快解决了垃圾邮件的问题,图形类验证码开始了大发展时期,国内外各大网站纷纷在关键的业务点上增加了验证码,成为验证用户真实性的重要手段。
道高一尺魔高一丈。破解验证码的技术也随之不断地进化,两者的战争升级,让验证码的花样越来越多,从最常见的扭曲文字、堆叠文字,到要求用户识别图片的物体、把缺失部分拖到正确位置的拼图、在规定时间内按顺序完成多次点击等等,堪比一场场小型考试,因此也常常遭到用户的吐槽和抱怨。
你相信吗?每输入一个验证码,你可能都付出了一次义务劳动,而且是能改变未来的那种。
2005年,路易斯·冯·安完成了他的博士论文,创造了一个新概念“人本计算”,即把人的脑力和计算机的能力结合起来,完成两者都无法单独完成的工作。
彼时,验证码已经广泛普及,每天都会有近亿次的海量识别数据,闲置不用显然是对人力的巨大浪费;另一方面,当时的人们正在试图将纸质资料全部数字化,却遇到了程序无法识别老报纸上模糊文字的问题等等。
这不巧了吗?冯·安团队开发了reCAPTCHA技术,把老旧文献中难以识别的词作为验证码,让全世界用户一起“帮忙”辨认。验证分为两步,用户需要两次输入验证码,如果第一个词输入正确即被判别为人类,而第二次输入就完全是“义务劳动”了—如果多名用户的答案一致,这个词就算被认出来了。
2009年,谷歌收购了reCAPTCHA,不到两年就完成了超过2500万本书、《纽约时报》全部1300万篇文章的数字化。2012年起,谷歌又推出了reCAPTCHA的图像识别版本,让用户识别街景中的门牌号码和其他标志。对此,官方曾经表示这种合作“让街景地图更加精确,也让验证码更安全、更有效”。
粗略统计,今天全世界每天都有2 亿个字符通过reCAPTCHA录入,相当于一个人15万小时的工作量。这些数据也被不断地“投喂”给人工智能,帮助机器学习系统更精确地辨认文字、数字和图形,堪称世界上最大规模、最成功的众包项目。
经历过早期12306抢火车票的人可能还记得那些五花八门甚至匪夷所思的图片验证码,尤其是在十万火急的时候被要求“请点击下图中所有的喷气式飞机”,那一刻的体验简直糟糕透顶,有没有简单又安全的验证码呢?
答案当然是肯定的。无知识型验证码,顾名思义就是无需思考、判断,只需要点击或滑动即可完成验证的方法。比如,谷歌的新验证码系统reCaptcha V3,会自动记录使用者在网站中浏览的行为特征,根据这些记录来给用户打分,只有用户分数过低时才会被要求识别复杂的验证码,否则不会打扰到用户,上网体验很丝滑。
表面上虽然不用再输入验证码,本质却是AI模型时时刻刻地“观察”用户的行为,从中寻找自动化的迹象,是一种“持续身份验证”。这需要读取尽可能多的用户信息,也可能涉及侵犯隐私的问题。
到底应该让渡隐私、节省时间,还是继续一笔一划地填写答案呢?人在网络,身不由己,普通用户只能接受结果。只要还有虚假账户、垃圾邮件、骚扰信息,我们就必须将人类用户与机器人分开,某种形式的验证码技术也将始终存在。