An Empirical Study & Evaluation of Modern CAPTCHAs
Andrew Searles, Yoshimichi Nakatsuka, Ercan Ozturk, Andrew Paverd, Gene Tsudik, Ai Enkoji
cs.CR
2023-07-22
1400名被试共解1.4万道线上真实验证码。点选reCAPTCHA中位3.7秒最快;嵌进注册后平均变慢26.7%,最高57.5%;约三成被试中途放弃。
验证码跟机器学习打了二十年:扭曲文字 2014 年就被自动工具打到 99% 以上,站点改成选图、滑块、小游戏、行为分析。旧的用户研究多半测自研方案或重实现的文字码,测的不是用户此刻在网上撞到的那一套。UC Irvine、ETH Zürich、Microsoft、LLNL 这组人要回答的是更土的问题:现在线上这些未改动的验证码,人要解多久、爱不爱解、会不会直接关掉页面。
先人工看 Alexa Top 200。185 个站有注册流程,142 个能走完。Chrome 无痕和 Tor 各走一遍。reCAPTCHA 出现在 68 个站(34%),滑块和扭曲文字各 14 个(7%),游戏类 9 个(4.5%),页面源码里藏着 captcha 字样但看不见挑战的 12 个(6%),hCAPTCHA 只见到 1 个。BuiltWith 那份 6.73 亿站点扫描里,reCAPTCHA 占验证码部署的 97.3%,hCAPTCHA 1.4%,所以后续用户实验覆盖了市场上绝大多数形态。
主实验 1000 人,每人解 10 种未改动的真实验证码,顺序随机。种类包括 reCAPTCHA v2 的「对用户最易」和「最安全」、Arkose 旋转和扶正、hCAPTCHA 易/难、Geetest 滑块、三种扭曲文字。一半人被直接告知来解验证码(direct),另一半以为在填注册表,点提交后才弹出验证码(contextualized)。另外 400 人专门测弃答。合计 1400 人、约 1.4 万次求解。报酬事后加倍到约每小时 7.80 至 8.20 美元。求解时间定义为验证码显示到提交。
点选 reCAPTCHA 中位 3.7 秒,是全场最快;易、难两档差距很小。扭曲文字紧随其后。游戏和滑块中位更高,方差也更大。全体平均求解时间跨度 3.6 到 42.7 秒。
偏好打分均值落在 2.76 到 3.94。点选最快也最受欢迎,但游戏和滑块解得慢,分数却高。hCAPTCHA 总分最低,仍有超过 31% 的人打 4 或 5;最受欢迎的点选也有 18.9% 打 1 或 2。时间跟好感对不上。
实验场景会改时间。除个别类型外,direct 都更快。reCAPTCHA 简单点选从 3.1 秒升到 4.9 秒,多 57.5%;Arkose 旋转多 10 秒(56.1%);所有类型平均多 26.7%。hCAPTCHA 困难档中位全场最高,两种场景没有显著差。年龄每增加一岁,平均多花 0.09 秒,比 Bursztein 等人 2010 年文字码上的 0.03 秒/岁更陡。学历跟速度对不上,跟当年「博士更快」的结论相反。
| 类型 | 人(秒 / 正确率) | 文献中的机器人 |
| reCAPTCHA 点选 | 3.1-4.9 / 71-85% | 1.4 秒 / 100% |
| 扭曲文字 | 9-15.3 / 50-84% | 不到 1 秒 / 99.8% |
| reCAPTCHA 选图 | 15-26 / 81% | 17.5 秒 / 85% |
| hCAPTCHA | 18-32 / 71-81% | 14.9 秒 / 98% |
| Geetest | 28-30 / 无 | 5.3 秒 / 96% |
弃答实验 574 人开始、174 人没做完,总弃答率 30%。看到第一个验证码就走的比例,direct 约 25%,contextualized 近 50%。contextualized 弃答可能性高 120%。注册场景里加薪能把弃答砍半,也能让平均求解快 21.5%;direct 里加薪反而让人解得更慢(+27.4%)。
站点把验证码挂在注册或支付上,付的是转化。30% 的人连有偿任务都会中途离开,注册情境下更严重。点选几乎无感,选图和滑块是秒级到半分钟的税。安全侧更尴尬:文献里的自动攻击在多数类型上已经比人更快、更准。验证码还在挡一部分脚本,挡不住的是打码平台和专用模型。
对要做人机验证或做安全的人,这篇的方法教训比排行更有用:直接让被试「来解验证码」,测出来的时间会偏乐观,最多能差一半。以后的可用性论文如果还只用 direct,数字不好拿去跟线上比。
作者自己列了一串。direct 和 contextualized 同时改了工作量、报酬、注意力和任务意义,分不清到底是哪一项在拉动那 57.5%。MTurk 没做知情同意测验,主实验没记下多少人点进来又走,只能用后续 30% 去估。未改动的第三方验证码拿不到细粒度正确率,Geetest 和 Arkose 的准确率是空的。163 人把偏好写成了 1-5 以外的数,被丢掉。Alexa Top 200 是 2023 年的一次快照,且只走了注册路径,是下界。结果描述的是「肯把验证码做完的人」,不是全体网民。机器人数字全部引自前人,这篇没有自己打一遍。