以变制变!验证码动态素材在攻防对抗中的重要应用

  验证码作为安全服务中最贴近大众用户的一环,也是任何产品在用户登录环节几乎必备的一环,从最初的文本型验证码到知识型验证码到行为轨迹验证码,再到智能无感验证码,验证码厂商花了十几年的时间。而验证码每一次更新的背后则是验证码厂商们与黑灰产不停的博弈对抗的结果。

  4、客户端收集用户验证数据并发送请求到服务端进行验证,服务端返回验证结果。

  智能无感验证顾名思义就是要让可信用户安全无障碍通过。如用户首次申请验证码时,客户端自动采集设备信息进行上报,服务端通过风控策略、人机识别模型、行为特征模型等判断出当前用户风险信息,无风险用户则不需要验证码即可通过,疑似风险用户则需要再次验证方可通过。当然,在一些高风险业务场景,用户也可以修改智能无感验证为强校验模式,来满足业务安全的需求。

  目前,旋转验证码、乱序拼图类验证码都是效果比较好的反爬虫验证码类型,此类验证码需要一定联想能力,而机器识别很难具备这种能力,且验证过程类似游戏,不仅提升了用户体验,并且实现了不错的防御效果。

  综上,不难看出,无论是旋转类验证码还是拼图类验证码,收集图片素材都是其必要条件,但要想实现防御效果,仅靠图片是不行的。

  我们可以简单的把解空间理解为一个概率问题,即用户或者爬虫在通过验证码时的难度。

  如传统文字验证码,如果是4位数字,解空间则为104。而旋转验证码使用滑块平移长度转换为旋转角度,滑验证码长度一般为300px,随机的长度有300个px的可能,那么解空间大约为300~400。

  以语序点选验证码为例,在不考虑文本库的情况下,解空间就变成了从五个字中找出既定顺序的四个字的概率,即A(5,4)=5*4*3*2=120。也就是说爬虫有1/120的概率通过验证码。

  需要注意的是,解空间也会随着破解方案不断退化,当解空间退化为1时,也就意味着爬虫每次都可以顺利通过验证码。

  一成不变的防御策略无法永远有效,用来解释解空间最合适不过,但要想保证解空间的难度则需要动态素材(素材的更新频率)来配合。

  解决方案之一是采用OpenGL进行绘图,并生成图片输出到素材库。OpenGL在依赖模型的情况下绘制图片可以进行模型、数量、大小、旋转、着色、纹理、光线的组合,并渲染成三维图片,理论上可以生成近似于无穷多的图片。在此基础上,使用动态生成的、几乎不会重复的图片作为旋转验证码的素材支撑,可以有效防御打码团队收集图片素材的破解方式,极大地提升验证码的防御能力。

  根据验证码动态背景图的需要,

留下评论