前沿的基于机器学习建模、多维判断的 滑动验证码,不是简单计算滑块偏移量和按键精灵所能应付的,而图形验证码在当前不断发展的OCR、神经网络面前却越来越容易失守。
图形验证码的原理和识别,在三四年前就已经有深刻的分析,利用机器学习和机器视觉,把验证码的文字和背景分离,去除干扰线,分割字符,扭曲还原,机器就可以做到自动识别。K-Means、SVM(支持向量机)的分类效果就不错,对于扭曲,神经网络方法更是提供了很高的成功率。不过那时候节点多的大型网络,运算是比较慢的。但现在,数据量积累越来越丰富,深度神经网络模型越来越好,计算能力越来越强,最重要的是机器学习算法的从业者越来越多,不管是重叠粘连的字符,或者是物体识别,识别率的提升是自然的。
参考:
常见验证码的弱点与验证码识别
http://blog.csdn.net/problc/article/details/22796971
机器自动识别验证码的原理是怎么样的?
https://www.zhihu.com/question/22479139
据说,有了深度学习,传统字符型验证码被破解的最大概率已经达到98%。
参考:
网易云安全(易盾)推"新一代行为式验证码"
http://news.yesky.com/hotnews/205/115428705.shtml
拖动滑块分两种情况。其余答案说的前端拼接,就不用说了,确实不容易防不住有心人。新的滑块验证码方案,验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果。针对这种方式,单纯分析调用JS是破解无效的。原因如同
@闫先森
所说,深度学习判别策略是黑盒。当然,理论上行为轨迹也可以用深度学习破解,不过还是要积累足够多的训练样本,和足够多的训练时间。
题外话,攻与防技术都是在对抗中不断升级的,无解的验证码还不存在,但防的一方可以不断提升破解成本。应用选择滑块验证,也有部分因素是因为竞争激烈的互联网很看重用户体验,拖动毕竟是趣味性交互且容易完成,而图形验证码既容易被黑客攻破,对用户也并没有那么友好——肉眼识别无趣(可能还很艰难),键盘手动输入更浪费时间,体验比较大。
这里分享网易云安全(易盾)的验证码方案:
易盾验证码抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;
文章来源:网易云
相关导读:
来源:CSDN
作者:w97531
链接:https://blog.csdn.net/w97531/article/details/80450828