验证码防破解的原理是什么?

验证码是保护网络应用和服务安全的有效且必要的手段之一,因此验证码防破解是业务安全非常重要的问题。本文介绍了验证码防破解的原理以及新型行为验证码。

1.验证码防破解的原理

随着互联网的发展,网站会面对很多的在线攻击,在线攻击是利用“穷举法”不断向登录的页面填写一组又一组的用户名和密码,然后自动提交,直到进入系统为止。穷举法也可以叫排除法,穷举法攻击最重要的条件是:用户名和密码在攻击期间内不能变化,相对静止。它通过不断地尝试字母或数字功的组合,直到找到正确的密码。

如果在验证的时加人动态的验证内容,使每一次验证时都加人动态信息来就可以防止类似的攻击,验证码就是这种动态的信息。验证码在服务器上随机产生并记下来,再以图片文字的形式告诉用户,用户照着图片文字手动输人然后提交,服务器对提交的验证码与先前记下来的验证码判断是否相同,从而完成验证。由于每次产生的验证码字串是随机的,所以那些简单的暴力攻击工具就无能为力了,从而抵御来自页面提交的穷举法攻击。  

2.传统码式验证的问题

(1)破解率高:传统字符验证的验证安全思想是基于图灵测试,建立在人类可以理解图像的意义,但是计算机程序无法理解图片的意义的前提条件下产生。但随着计算机技术特别是人工智能、机器学习等技术的不断发展,此类验证码非常容易遭到暴力破解、穷举破解、建立映射表和图像识别等方法的破解。 字符的问题在于最终的判别只是简单的答案比对过程,所以从计算机程序的角度出发,只要能找到这个答案就可以进行破解,而找到验证码的答案对于验证破解者来说是有思路可循的,实现也相当简单,因此如今码式验证可谓形同虚设了。


(2)用户体验差:为了防止验证码被破解,通常会不断提字符验证的难度,于是大大降低了一些网站的交互体验,越来越多的用户开始诟病这一反人类的设计发明,每天都要花部分时间浪费在无趣的识别晦涩的验证码上。

于是,新型的行为验证码出现,并逐步成为人机识别防恶意攻击主流的验证码方式。

3.行为式验证码防破解

行为式验证码抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;同时验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果,优化了传统验证码基于单一字符维度容易被暴力破解的问题。使恶意程序无法侵入,有效抵挡网络攻击,帮助用户守卫网站安全的第一道防线。


网易易盾行为验证码,提供智能无感知、滑动拼图、文字点选、图标点选、推理拼图验证、短信上行等验证方式。一行代码极速接入,点击免费试用。

参考文献:【1】洪伟铭,《验证码的原理及实现方法》