当你守在电脑前,为买到一张期待已久的演出票摩拳擦掌,正打算点击鼠标激情抢购时,电脑突然跳出来一个验证码输入框……
▲ 请输入中间图片里的字母…… 你这字母呢?丨 larrysworld.com
这是在抢票还是在测视力啊!谁能想到努力了半天结果败给了验证码。这验证码要是像这样痛快地让人看不懂也就罢了,更让人迷惑的是图片选择。让我选出所有包含汽车的图片,那这一块占了一点点,我到底该不该选上?
▲ 我看你是在欺负近视的人!丨 apify.com
被这些离谱验证码“气笑了”的人,把嘲讽技能直接拉满,整出了不少梗图。你们这些验证码不是想难为我吗?有本事直接整这些啊!
▲ 一团乱麻、解数学题,甚至可以让别人选择代码里的 bug?丨 devrant.com
最近,有公司对烦人的验证码出手了!苹果在今年的开发者大会上,提到了新系统里的一个功能:自动验证。他们想让系统代替人为操作,自动通过验证码核验。这么多年过去了,我们终于能和验证码说拜拜了吗?
▲ iOS16 测试版中的功能丨作者供图
你不是机器人吧?
验证码很“难”这件事,光是从自身的全名就能体现出来。2000 年,来自卡内基梅隆大学的一群博士创造了 CAPTCHA。这一串字母代表了全自动区分计算机和人类的公开图灵测试 (Completely Automated Public Turing test to tell Computers and Humans Apart)。这个听起来非常高端的测试,落到用户的手里,就是“输入验证码”。
不过最开始,这个验证码并不想为难人类,而是想为难机器人。互联网上始终充满了机器人,而这些机器人本质上是一行行自动运行的计算机代码。这些代码可以在不同的网站注册海量账户。之后,机器人账户便可以四处发布垃圾信息、自动刷票、甚至攻击网站。
人工审核很难能快过重复运行的代码,所以网站需要一个有效的方法来识别机器人和真人。验证码成了一个理想方案。
早期的验证码一般通过扭曲正常的文字或者给它们加上一些干扰的线条,来区分机器人和真人。这种简单的变化对于人类阅读而言不成问题,但对于只能识别标准文字的机器人来说,却是一个十足的难题。
人类就这样岁月静好了一阵子,可机器人却越来越“聪明”。随着深度学习技术进一步发展,机器人可以轻松地识别这些扭曲的文字。这样的恶性循环导致用以验证的文字也变得越来越难。
怎么才能造出机器人铁定看不懂的词呢?卡内基梅隆大学的研究团队这时又想了一个好方法:用 AI 扫描几本旧书,那些扫不出来的单词不就是好的验证码素材了吗?于是,这些 AI 无法识别的单词和另一个已经确定的单词被一起放入了验证码框中。当你输入这两个单词的时候,如果已经确定的单词输入正确,系统就会偏向于判定另一个词是有效的。
▲ 验证码,你没事吧?丨 webadictos.com
这样的方法不仅阻止了机器人,还让人类在不知不觉中干了份外包工作:当超过一定人数输入这个 AI 无法识别的单词后,单词就会被确认并收回,从而完成旧书的电子化。
后来谷歌收购了这个项目,把它用在了谷歌图书和谷歌街景等图片的识别中。不过,比起程序生成的简单变形字符,人类想要识别这些 AI 都看不出来的模糊书籍字符和图片,难度变得更大了。
▲ 请选择图中所有的麦芬面包…… 丨 memezila.com
满世界都恨验证码
不论是文字识别还是图片选择,这些复杂恼人的验证码都成了正常人类上网的一种阻碍。
▲ 谷歌安全博客下,评论区的人认为验证码终将消失。因为这些“狗屎”阻碍了正常用户在评论区留言。丨 Googleblog.com
2012 年的一项调查报告显示,超过 90% 的人都认为使用这些验证码有点困难或是非常困难。有人不满于此,甚至成立了验证码艺术小组来为离谱的验证码作画。
▲ 验证码 sconce killed 直译为“烛台被杀”,用户为此作画(?)丨 prodlly / reddit
这些验证码还惹到了一些“无辜人士”。有些人为了攻破这些 AI 难以识别验证码,将验证码分发到色情、游戏等网站上,要求用户在看到详细内容之前先输入验证码。用户在不知情的情况下,帮助别人“破解”了验证码。
▲ 一个虚假验证码出现在解密游戏上的例子丨参考文献 [11]
不仅用户反感,网站也对验证码非常头痛。一项研究邀请了 210 位参与者,超过一半的人需要输入两次甚至两次以上验证码才能输入正确。这对网站来说简直就是灾难:用户体验这么差,得流失多少用户啊!
为了解决引起众怒的验证码,厂商也一直在努力。谷歌在新版的验证码系统中,使用了点击按钮代替之前的辨字和辨图。你只需要点击一下“我不是机器人”的选框,系统就可以根据你的操作信息验证你是不是机器人。滑动验证、拼图验证等方式,也会通过分析用户拖拽行为来判断是否是机器人操作。
▲ 你以为只点了个按钮,但其实系统收会整合浏览行为和鼠标路径等信息,综合判断你“是不是人”。丨 Google Developers
隐式验证码也不断在发展,系统会通过收集用户的操作行为,自动对使用者进行综合评定。不过人们也对隐私性产生了疑问:我在浏览网页时,系统到底要收集多少我的信息?
苹果这次更进一步,推出了私人访问令牌(Private Access Tokens),计划直接在使用手机这个阶段就完成真人判断:通过密码或生物识别解锁了手机、打开了浏览器、又精准输入了网站…… 这些足以说明是个真人在使用手机了。当完成判定后,系统就会自动向网站发送“真人通知”,从而自动完成相关验证。
苹果与合作的科技公司计划将相关的标准进行开源,也就是说,不只是苹果用户,或许未来越来越多的人都可以摆脱这些烦人的验证码了!
参考文献
-
[1]ReplaceCAPTCHAswithPrivateAccessTokensWWDC22. https://developer.apple.com/videos/play/wwdc2022/10077/
-
[2]This new iOS 16 feature will rid the web of pesky CAPTCHA verification puzzles. https://9to5mac.com/2022/06/20/ios-16-bypass-captchas/
-
[3]CAPTCHA: Telling Humans and Computers Apart Automatically. http://www.captcha.net/
-
[4] Human or Computer? Take This Test. https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/mori-nyt/page1.html
-
[5]Are you a robot? Introducing “No CAPTCHA reCAPTCHA”. https://security.googleblog.com/2014/12/are-you-robot-introducing-no-captcha.html
-
[6]reCAPTCHA protects your website from fraud and abuse without creating friction. https://www.google.com/recaptcha/about/
-
[7]Moradi, M., & Keyvanpour, M. (2015). CAPTCHA and its Alternatives: A Review. Security and Communication Networks, 8(12), 2135-2156.
-
[8]Screen Reader User Survey #4 Results.
-
https://webaim.org/projects/screenreadersurvey4/#captcha/
-
[9]CaptchaArt – Reddit. https://www.reddit.com/r/CaptchaArt/
-
[10]Fidas, C. A., Voyiatzis, A. G., & Avouris, N. M. (2011, May). On the necessity of user-friendly CAPTCHA. In Proceedings of the SIGCHI conference on human factors in computing systems (pp. 2623-2626).
-
[11]Kang, L., & Xiang, J. (2009, December). CAPTCHA phishing: A practical attack on human interaction proofing. In International Conference on Information Security and Cryptology (pp. 411-425). Springer, Berlin, Heidelberg.
-
[12]CAPTCHA Effectiveness. https://blog.codinghorror.com/captcha-effectiveness/
-
[13] Private Attestation Token:使用开源标准消灭 iPhone 和 Mac 上的验证码. https://blog.cloudflare.com/ zh-cn / eliminating-captchas-on-iphones-and-macs-using-new-standard-zh-cn/
本文来自微信公众号:果壳 (ID:Guokr42),作者:Owl 编辑:窗敲雨