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 这一功能的原理,但其无外乎还是生成对抗网络、卷积神经网络等人工智能技术的应用。
诚然,这一自动验证功能确实能够在一定程度上,帮助用户从绞尽脑汁填写验证码的苦海中脱离,但从技术伦理的角度出发,这可能是一个非常危险的举措。毕竟在第三方开发者的视角,自动验证功能与黑产的自动化脚本其实并没有本质的区别,同样违反了验证码技术是用于区分人和机器行为的宗旨。