向服务器证明自己是个人类这事儿,代价似乎越来越高了。上周,知名 CDN 供应商公司 Cloudflare 服务崩溃,导致全球大半网页或者应用出现 Internal server error 的报错。根源就是 Cloudflare 数据库权限变更导致机器人管理系统(Bot Management)的配置文件异常增大,超出系统预设限制,引发核心代理服务崩溃。没错,Cloudflare 除了做 CDN 这种资源分发工作,也承包阻止 DDoS 攻击,管理机器人爬虫的业务。这些都是为了防止服务器资源被这些人机恶意占用,从而保障正常真人用户的使用。所以你网上冲浪的时候也能看见它们家的人机验证环节。而在AI盛行的今天,网站验证码是如何区分出你是个真人呢?验证码环节的逻辑非常简单,跟考试一样,无非就是设置题目嘛。但这个题目要让人类很容易通过,机器人(自动化程序)基本通过不了。早期的验证码一般长这样,由一些歪曲的字符以及干扰的因素组成。人类在信息视觉识别和信息过滤上要比机器人强多了,所以很容易通过。就如比这话句,我打乱符字序顺你也看能懂。不过随着技术发展越来越快,这种普通的验证码已经拦不住机器人了。那就加大难度,用上更难识别的背景以及更加歪曲字符来阻挡机器人。或者 12306 在当初为了防黄牛设置的比较难判断的语义转图片的验证码方式,涵盖 581 种物品。能充分检测你是不是个认知健全的人类。而谷歌也掏出了被大家深恶痛绝的第二代 reCAPTCHA 验证码,听上去很陌生没关系。玩 Steam 的游戏或者喜欢出海的同学应该不陌生下面这种验证码吧。它就是第二代 reCAPTCHA。之所以基本是红绿灯、交通工具、斑马线这类东西,是因为这时候谷歌正吭哧吭哧搞AI自动驾驶呢。这种被无数人吐槽的验证码,挡住多少机器人不知道,反正挡住的人类是不少。而在这时候,当初类似黄牛抢票、网页爬虫、视频文章自动评论、批量发广告这部分群体还得继续下去,但此时的验证码机制机器人也确实很难越过,怎么办呢?在当时就衍生出破解验证码黑产,叫验证码农场,或者叫打码平台。机器人通不过的验证码就发给打码平台,然后由平台的人工去通过。这类平台通常会雇佣廉价的第三世界国家的工人,由《中国互联网地下产业链分析白皮书》指出估计有超过 100 万人在从事 CAPTCHA 打码工作,一名熟练的打码工人 每分钟能输入 20 个以上验证码。某知名的打码平台表示,每天就能接收至少 100 万个打码任务。每破解 1000 个验证码的成本大致在 7-21 元左右。甚至有人想到用白嫖的破解方案,这就是建立免费的成人网站,让在线用户识别验证码然后换取内容,双方在这之中一毛钱也没有花,各取所需。AI识别的准确率达到了 70.8%,平均耗时 19.2 秒就完成,而人类的识别准确率只有可怜的 33%,而且很容易破防。那怎么办呢?继续提高难度也不合适,这样很容易把真人拦在外面。比如谷歌的 reCAPTCHA 另一种验证方式,你只需要点击「我不是人机」这个按钮就可以通过了。验证码本质是要拦住大量的机器人的第一环,除此之外还有其他账户注册、密码 IP 检测等手段防御。而在你点击「我不是人机」这个环节中,后台会检测你的鼠标轨迹是否平滑、加速度是否匀速,以及你的 IP、Cookies、位置等综合因素判断你是不是真人。因为机器人一般会有线性、匀速、匹配度高这种特性,反而会被挡在门外。看到这有同学可能要举手了,那要是我天赋异禀就是又快又稳呢?但这也不是没有破解的方法,随着 AI 不断进化,这类检测手段也出现漏洞了,AI目前已经可以模仿人类的行为了,在 LLM 模型中,ChatGPT 可以在训练中模仿人类写作出现语法故意错误。这一技术很快也被应用到破解验证码中,如 GPT4o Captcha Bypass 就是这其中的产物,它可以很轻松越过第二代 reCAPTCHA。这意味着上述的检测手段也将面临失效。所以,新兴的 CAPTCHA 也对应出现了——IllusionCAPTCHA,它是利用视觉错觉、诱导性提示让人类能够很容易通过判断,但 AI 很难做出正确选择。比如题目让你选择一个鸟窝,但是却把一只半隐藏的猫放在上面,或者用类似的颜色,从而让 AI 做出错误判断。并且为了防止 AI 利用现有案例学习,出题会用 AI 生成,以保证出现的题目不会重现而被 AI 记住。不过就是不知道这种形式的验证码又能在日新月异的 AI 手中坚持多久了。数据素材来源:reddit、谷歌、arxiv、铁路12306、Cloudflare、《中国互联网地下产业链分析白皮书》,部分图源网络。
本文编辑:@ 阿红
©本文著作权归电手所有,未经电手许可,不得转载使用。