温馨提示:这篇文章已超过346天没有更新,请注意相关的内容是否还可用!
不得不感概,现在网上冲浪干个啥都需要验证码,难道我就这么像机器人吗?甚至有些验证码的难度真人都认不出来,弄那么复杂是图啥?
其实,随处可见的验证码除了在验证我们是不是人之外,还在让用户免费为其打工,并且人们还没有意识到这个「骗局」。
验证码是一个低成本高收益的方案,它可以从根本上防止机器、脚本的恶意攻击,因为它只要验证你是不是一个真人,不是的话直接拒绝。
并且它也可以复制到任何系统中,以致于现在任何地方你都能见到它,也分化出了各种有意思或者高血压的验证码类型。比如最简单的数字、字母、文字,以及衍生出来的简单数学计算,这些都算是字符识别类。
移动滑块、旋转图像,可以归为位置识别类。
识别物体、识别红绿灯斑马线这些属于物体识别类。
21世纪信息时代刚刚来临时,大量纸质资料、书籍需要进行数字化,手工录入肯定是不可能的,但机器扫描又很容易出现扫描不出来的情况。
面对这个问题, reCAPTCHA 的创始人之一提出了一个很好的想法:我们能不能利用验证码系统来让人类帮助识别那些机器扫描不出来的文字?
这样就能结合人类与机器的长处,提高工作效率。
而同时,验证码又要满足用于区分人机的最基本需求,所以就有了一个很巧妙的方法:
用户看到的验证码中有一部分是正常用于验证的文字、而另一部分是机器无法识别的文字。用户输对了用于验证的部分,机器就会假设另一部分也正确识别,再结合多个用户的交叉验证,就成功帮助机器识别了那些不能识别的文字。
也就是说,人们在输验证码时,其实前半段就已经完成验证,而后面则是在义务劳动。借助这个系统,每天都能录入几亿字符,大量书籍完成了数字化工作,可以说为人类文明做出了巨大贡献。
恰逢人工智能和机器学习的发展,这套系统开始有了新的工作:辅助训练 ai 。
这下验证码也从字符识别发展成了更加复杂的物体识别,我们又在无形之中为 ai 的发展出了一份力。
天天区分红绿灯、斑马线的无偿劳动,谷歌自动驾驶出来是不是得一人发一辆车啊?
原来我在填验证码的时候,不仅仅是证明了我是一个人,同时也在辅助训练 ai 。
这让我不禁想到了一个问题:ai 学会了识别字符、图片,那是不是可以用 ai 来破解验证码?Google 通过 API 本身向开发人员开放了 TensorFlow,意味着可以使用 TensorFlow 来欺骗训练 TensorFlow 的验证码系统。
这就好比,师父为了防止徒弟打开自己的宝箱而上了一把锁,但是师父教给徒弟的技能就是去开这种锁,最终徒弟也能打开师父的锁,但师父最不能忍受的就是徒弟能打开自己的锁。
矛盾吧?
reCAPTCHA 推出了更加有效的验证系统,通过直接记录识别用户操作轨迹来区分人与机器,提高机器模拟成本。
相比于传统验证系统,它并不需要用户进行点图片、输文字验证,它的工作机制是跟踪用户点击验证框之前、当时和之后的各种行为。比如在网页上花费的时间、点击滑动次数,综合分析给出评分,从而来判断是否是人为操作。

但经过训练的 ai 还是可以突破这道验证,未来甚至会有更多的方案。
只能说,ai 对抗训练 ai 的验证码系统是无法避免的,虽然可以不断提高机器模拟成本来不断延后这个结果。但最终对用户来说,我们可能更难向服务器证明「我是人」了。
还没有评论,来说两句吧...