滑动验证码居然是用来验“蠢”的?
本文经授权转载自
壹读
(ID:yiduiread)
作者:敏敏 秋秋
你知道吗,滑动验证码居然是为了验证人类比机器人蠢而设计的。
你以为自己快速、准确地滑动拼图、对齐图案,才被允许通过,系统还说你超越了99%的用户,夸你“比闪电还快”,但实际上,机器人画得比你又快又好,系统觉得你“这么笨,肯定不是机器人”,才通过验证。
很多得知此消息的网友表示“谢谢有被侮辱到”“显得我以前小心翼翼对准的样子很心酸”。
为什么滑动验证是验蠢设计?既然人类在进行滑动验证时滑得慢,为什么还要使用这种验证码呢?
这么简单的滑动验证码,是怎么区分出人类和机器人的呢?
(图/微信账号安全验证截图)
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是现在很多网站通行的方式,主要是为了防止用户利用机器人恶意破解密码、登录、灌水、刷票等。验证码由计算机生成,评判用户做出的回答,从而区分出当前访问者是人类还是机器人,并做出让行或阻拦的反应。
增加验证码这一道门槛,可以有效地防止网站被恶意访问,保证网页的正常秩序和安全。
验证码的形式很多,除了看图输入文字和数字,验证码还有各种各样奇奇怪怪的形式,比如依次点击正确图案、算数学题、输入历史事件日期等等,内容涉及天文地理、高数历史,于是有着庞大数据库作支撑、不断学习发展的机器人没被拦住,人却被难住了。
但随着科技的发展,再高难度的验证码,机器人都能够轻松破解,而且在准确率和速度上都吊打人类。
2023年,加州大学欧文分校的研究员在《密码学与安全》发表的研究显示,破解各种类型验证码的时间和准确度上,机器人的表现几乎都优于人类。
最简单的点击识别,人类最快需要3.1秒,准确率最高为85%,而机器人只需1.4秒就能通过,且准确率高达100%;扭曲文本的识别,人类最快需要9秒时间,准确率最低50%,最高也不过84%,而机器人在不到1秒的时间内就能完成,准确率为99.8%;难度较大的图片验证,机器人的速度虽然稍有下降,需要17.5秒,但人类也没快多少,是15-26秒,准确度上机器人也与人类相当,均在80%以上。而滑动验证码,相比机器人5.3秒的时间,人类也慢得多,平均是28-30秒。
(图/参考资料[3])
既然和机器人比聪明比不过,科学家们另辟蹊径,选择和机器人比“蠢”。
以滑动验证码为例,它由背景图片和滑块图片组成,在验证过程中,用户按住滑块沿着轨道将其滑动到背景图片的指定位置,这一轨道通常是有一定长度的直线。
表面上来看,滑动验证码的验证方式是“滑块是否被正确拖放到缺口处”,但实际上其校验的信息是“拖放轨迹是否符合真实用户的行为特征”,因此有时滑块和缺口没有对齐也能够验证成功。
对机器人来说,模拟鼠标画出直线并不是一件难事,难的是模拟真实用户的拖放轨迹。
人类难以快速地画出规定长度的完美直线,在移动滑块的过程中会手抖、速度变慢,呈现出的光标轨迹也会发生无规律的抖动。每段光标轨迹下真实用户所表现出的鼠标的移动方向、停顿时间、位移速度和按压力度等特征均不相同,这种无规律性正是程序设定下的机器人难以模仿和出现的。所以一旦滑块移动得快又速度均匀,用户就会被认定为是机器人,无法通过验证。
问题来了,人怎么这么“笨”,连条直线都画不好?
所谓震颤,指的是在滑动验证过程中我们的手部发生抖动的现象。
人体任何部位产生动作,都需要两组以上的肌群协调完成,当肌群不能协调同步运动时,其所支配的部位就会出现不受控制的有节律的抖动或颤抖,这就是震颤,最常见的部位是双手,也常见于头部、躯干和腿等。
震颤分为生理性震颤和病理性震颤。前者与生俱来,主要是因为身体的协调能力和细微控制能力有限。人在精神紧张、情绪激动、剧痛及极度疲劳时,生理性震颤会更加明显。病理性震颤是肢体由于疾病而产生的一种运动型障碍,主要有帕金森综合征和小脑性震颤等。
此外,震颤还可分为静止性震颤和动作性震颤。静止性震颤是肢体重量得到充分支撑且处于放松状态下出现的震颤,比如手放松地放在膝盖上会不由自主地发生颤抖。这种类型的震颤在帕金森病患者中较为典型。动作性震颤发生在肌肉收缩时,包括运动性震颤、意向性震颤等等,这也是人们在滑动验证时导致拖放轨迹抖动的主要原因。
点击识别,人类没有机器人快(图/QQ邮箱登录验证截图)
对相应肌群进行有效锻炼,人是可以减弱震颤的,比如拉直线是美术生的一项基本功,通过不断练习,美术生徒手画出的直线,相较普通人来说更为笔直。
虽然使用鼠标跟握笔又有不同,但也都可以通过借助哑铃等工具锻炼手部肌肉,提高控制力。
不过要想通过练习打败机器人,依然很难。
因为除了震颤,注意力有限、反应延迟也是人类在滑动验证过程中体现出独特行为特征的原因。
人的手眼脑协调能力,是在眼、脑、手之间形成一个信号闭环。眼睛看到物体后,发出信号,经由神经系统调动骨骼,由手完成构想的动作。在背景图片内容过多的情况下,既要确定缺口的位置,又要观察滑块的运动状态,注意力分散,加之手眼脑协调能力不够精细,导致画出的线条轨迹抖动、扭曲。
此外,整个手眼脑信号反馈系统有延迟。从眼睛观察到光标偏离路线,发出修正信号,到大脑识别到信号并命令肌肉做出反应,其中存在着神经传导信号的时间延迟,这个反应延时是天然存在的。戴维·伊格尔曼在文章《大脑时间》里解释不同感官信息在不同神经结构里处理的速度不同,其中,视觉大脑获得事件信息,必须等待最多大约0.1秒的时间。
人类虽然能够通过后天训练提高反应速度,但上升空间有限。反应越快,观察到的参考信息对肢体运动的修正控制就越精确,如果反应不够快,信号被手部肌肉接收之前,抖动动作就已完成。除非刻意练习多次,否则大部分人,还是会以为自己画了一条完美的规定长度的直线,实际上已经抖得不行了。
除了滑动图块,类似的验证方式还有旋转图片、手势轨迹验证等,其本质与滑动验证是一样的。
图源:百度账号安全验证截图
这些验证码,通过运用人类的行为特征,让机器人难以精确模仿,既安全又不容易误伤,给真实用户提供了良好的体验。
看到这里,再在完成滑动验证后,得到“打败99%的人”“比闪电还快”的夸奖,希望你还能保持从前的开心和自豪,毕竟这起码说明了,机器人没办法取代人类。
微信扫码关注该文公众号作者