多说两句图片验证码

伯乐在线注:本文来自文章作者 @某L_ 的投稿(原文链接)。如果其他朋友也有投稿,请先这个页面的介绍。

—————————————————-

早上看神经网络的材料,遇到了个有意思的演示,于是发了微博,at了 @程序员的那些事 ,然后小火了一下,人民群众纷纷表示:

  1. 示例太简单了,不能体现现有技术;
  2. 字符识别不难,分区比较难;
  3. 现在的验证码人都认不出来,还机器呢……

这按顺序一看有意思,1被2推翻了,示例是简单,但对各种变体的识别也没有那么复杂;

至于2,在某种意义上被3推翻了,根据传闻,对微软Live Mail验证码的分区成功90%,总体破解超过60%。

关于3,就不引用传闻机器算法的识别率比人高;但是,大家有木有被轻微花眼的老爸老妈叫去输验证码的经历,我是经常啊,而且现在很多验证码自己都要输几次,严重怀疑是不是眼睛也快挂了。至于逆天的中文验证码,特别是还没有规律的,输不了词组,那是要敲键盘多少次啊!

更糟糕的是,图片验证码越来越复杂,用户体验越来越糟糕;

Paybal安全官预言靠密码的身份验证要消失,个人看来,图片验证码应该消失的更快。

再说说那个关于用户真实需求的笑话:

图片验证码应用的常见场景是:防止暴力破解 和 防止恶意注册。为此带来的用户利益/用户成本如果到了不合理的地步,就没有必要存在了。

原本是一时好玩POST的微博,大家讨论一下,忽然觉得应该认真点讨论下这个问题,个人看法,欢迎指正。

 

退一步看图片验证码

图片验证码,作为差不多最早和最简单易行的CAPTCHA,被广泛采用。

1
CAPTCHAs Completely Automated Public Turing test to tell Computers and Humans Apart

全自动区分计算机和人类的图灵测试这个问题可以由计算机生成并评判,但是必须只有人类才能解答。或许人可以问出只有人类能够回答的问题,但让计算机问出只有人类能回答的问题?木有能力证明,直觉有点不靠谱。

绝对做不到,相对做到也很有用。怎样才能让问题更适合人而不是机器,就能更适合我们的应用场景。

机器比较难以处理什么:演绎、规划、知识表达,学习、知觉、创造等等。
这些领域了解有限,Google的猫的科学家们或许能够解释更多。

图片验证码基本上可以归为知觉部分,随着技术的进步,越来越依赖更复杂更大信息量的感知,机器处理难了,人处理也难了。

 

能不能换个办法

改进方案是很多的,有些效果还不错,引用一个介绍:替代验证的六种办法

其中几个感觉比较典型和有意思的分析一下:

技能测试

解个微分方程 这个例子极端了点,不过常见简单运算的还是人人都可以的。类似的还可以问same这个单词的第一个字母是啥。这个方法使用了知识表达演绎能力,如果做成图片方式,则更加安全且易于使用。

简单任务

井字游戏 和解方程原理差不多,不过有趣很多。困难的是,或许有的人真的不会…… 应用了感知知识表达演绎

第三方认证

这是回避问题,不过如果没有足够的资源实现安全的方式,通过第三方是个解决防止暴力破解,转移责任的好方法。

什么都不做

是的,用户什么都不做。但后台要做的更多。

可以根据行为:是否重复尝试?

根据上下文:是否先访问了登录页,再输入账户密码?是否有先阅读用户须知,再注册?

根据内容:类似Akismet阻止垃圾评论的方式。

这些方法,通过实时欺诈检测手段,在基本不影响用户的基础上实现保护。

 

后记

抛砖引玉,期待指正。

By: 某L_

收藏 1 评论

关于作者:某L

微博 @某L_做有人情味的IT。为了更加智能的金融互联网,努力研究搜索,统计,算法,心理学,社会学和行业知识。 个人主页 · 我的文章

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部