行业焦点

iOS 16的这项新功能,让你不用再与验证码斗智斗勇


浏览量:82

iOS 16带来的这项新功能,除了便利还有一些隐忧。

如果经常在互联网上冲浪,想必各种稀奇古怪的验证码多多少少都会给你留下深刻的印象。无论是谷歌在九宫格图片里让你识别斑马线、还是在12306让你在“一模一样”的图片里找不同,验证码就是这样一个让人又爱又恨的存在,爱的是其确实让垃圾邮件、机器人变少了,而恨的则是实在是太不人性化。 


在诸多奇葩的验证码里填写出正确答案,如今也越来越成为用户上网时的烦恼。正所谓用户有需求,就会有人拿出解决方案。继WWDC22上苹果方面推出iOS 16后,日前来自XDA开发者论坛的相关消息显示,在iOS 16的开发者预览版中,官方悄然提供了一个名为Automatic Verification(自动验证)的功能,可以让iCloud代替用户处理APP或网站中的验证码(CAPTCHA)。 


简单来说,苹果在iOS 16中带来的这个功能,等于说是用机器来帮人验证自己不是机器。为什么会这么说呢?其实这就要从验证码的起源说起。早期的互联网其实是自由开放以及混乱无序的,作为当时全球最为知名的产品,雅虎邮箱也是上世纪末绝大多数用户连接网络世界的窗口,因此自然也成为了黑产眼中的香饽饽,他们编写脚本自动注册了大量的雅虎邮箱、用于发送垃圾邮件。 


彼时,这一问题被雅虎的研究人员写到了《我们无法解决的十大问题》这篇文章中,而在2001年卡耐基梅隆大学学生Luis von Ahn参加雅虎的主题讲座时,听到垃圾邮件泛滥一事后设计出了“CAPTCHA”(全自动公共图灵测试),也就是如今大家熟知的“验证码”体系。而验证码技术的核心理论,就是区分正常人与机器,所提出的问题要容易被人解答、并且让机器无法解答。 


最终,Luis von Ahn发现人类可以用肉眼,轻易地识别出在图片中、被扭曲过、污染过的文字信息,而当年电脑并不能做到这一点。随即在Luis von Ahn这一方案的基础上,雅虎方面推出了EZ-Gimpy字符验证码机制。早期验证码中往往会出现一条不规则横线覆盖在需要识别的词汇上,这其实就是在借助早期计算机视觉技术不发达的缺陷,让机器识别不出被“污染”的词汇。 


作为一个反向的“图灵测试”,在PC互联网时代早期其确实起到了不小的作用,遏制了黑产利用自动化程序实现暴力破解、恶意注册、刷票、批量操作的目的。毕竟黑产是一个典型讲究成本收益的“生意”,只要收益不能覆盖成本就自然会知难而退。彼时,黑产粗糙的自动化脚本面对字符验证码确实是一筹莫展,例如当时百度贴吧使用的反“爆吧”工具就有发贴需要验证码的步骤。 


但随着OCR(光学字符识别)与计算机视觉技术的发展,机器在图像识别上的能力升级,使得单纯基于字符的验证码逐渐失效。特别是在二十一世纪的第二个十年,机器学习技术上了一个台阶后,卷积神经网络(CNN)以及生成对抗网络(GAN)在业界大规模应用后,在海量的数据样本的“喂养”下,让图片验证码也已经落伍了。 


无论字符的变形程度再高、再厉害,只需用图像分割技术切到一定的颗粒度,再用卷积神经网络算法就能准确地识别出来。甚至根据一项腾讯安全在多年前的爆料信息表明,国内当时就已有黑产团队实现了对字符验证码98%的“爆破”几率。 


为此,互联网厂商也纷纷升级了验证码相关技术。既然纯粹的字符、图片已被攻克,而其核心又是区分人类与机器,那么验证码与相关知识的结合,也使得“做题家”模式开始出现,让用户需要根据问题去寻找验证码的正确答案。 


这一时期,想必有些玩家可能听过EA旗下Origin平台骰子验证码的大名。这个验证码要求用户从六张骰子图中,找到一张结果相加等于特定数字的图片,而且要求在限定时间里连续答对15次。此外,最“经典”的则莫过于12306的验证码识图了,其不仅让机器束手无策、更是难倒了许多用户。而这些,也使得好好的验证码变成了考验用户知识积累、观察能力,以及手速的玩意。 


显然,验证码技术的问题就出现在了这里,随着攻防双方不断在技术端的升级,使得其对用户的友好性已经逐渐消失,并变得极为“反人类”。同时,也有部分厂商借助验证码技术来实现商业目的,许多朋友可能遇到过谷歌、Meta、Twitter的九宫格图片验证方式,即“选出下图中的xxx”类型的的验证码,虽然表面上是让用户标识出特定物品,但背地里是却借助用户积累数据来训练自己的AI模型。 


因此在相当长的一段时间里,许多用户对于验证码可谓是厌烦透顶。为此,验证码技术再次升级为行为验证模式或者说无知识型验证,如今各平台常用的滑块验证就是其中的典型,其特色就是采集用户数据,并借助基于人类固有的生物特征以及操作环境信息,来综合决策判断屏幕前到底是人还是机器。 


比如说看起来简单的滑块验证,尽管看似就是将拼图拼完整,但是这其中的原理是人类拖动滑块通常是先快后慢,需要先快速拖到缺口附近、再在缺口附近进行精准校验,而机器则往往是匀速拖动这一滑块。 


那么问题来了,既然行为验证更为先进,为什么目前还有许多APP和网站依然在使用传统的图文验证码呢?原因其实很简单,Web前端因为代码都是明文形式的脚本语言,行为验证模式的核心就是将不可信的Web前端打造成可信的客户端,这就需要代码混淆与行为数据加密的支持。然而遗憾的是,很多基于Web的APP或网站并没有这样的技术能力。 


无论如何,过去的二十年间互联网行业关于验证码的攻防,就一直都带有非常明显的身份特征,黑产方面希望攻破验证码系统来实现批量化的推送垃圾广告、机器人等等行为,而互联网厂商则希望用验证码技术来保护账号体系的安全和稳定。尽管苹果方面目前并未公开Automatic Verification这一功能的原理,但其无外乎还是生成对抗网络、卷积神经网络等人工智能技术的应用。 


诚然,这一自动验证功能确实能够在一定程度上,帮助用户从绞尽脑汁填写验证码的苦海中脱离,但从技术伦理的角度出发,这可能是一个非常危险的举措。毕竟在第三方开发者的视角,自动验证功能与黑产的自动化脚本其实并没有本质的区别,同样违反了验证码技术是用于区分人和机器行为的宗旨。 


本文来自微信公众号 “三易生活”(ID:IT-3eLife),作者:三易菌,36氪经授权发布。