揭秘滑动拼图验证码背后的故事

文章正文
发布时间:2024-07-27 23:39

  对传统验证码而言,便捷和安全长期以来一直是鱼与熊掌的关系。

  这可从 12306 与黄牛多年的斗争史中看出。

  最先开始,买火车票只需要输入简单数字或数字加字母即可,后来有了加减法算式,以宅宅的数学水平勉强可以应付。

  直到出现一闪一闪的动态码和变形字母,第一次体会到眼睛都快看瞎了,还是输不对的抓狂情况↓↓↓

  但这些与后来推出的图片验证码相比,还只是小儿科,一大波网友用自己的 PS 技能大开脑洞,以此吐槽12306 反人类的验证码设计↓↓↓

▲网友戏称不懂娱乐圈、不看动作片的人,没资格买票回家

  越复杂的验证码越能保障安全?

  12306 拼命把验证码弄复杂的原因,目的就是识别出背后同你一起抢票的机器。

  作为区分计算机和人类的一种程序算法,验证码可有效对抗机器的大批量自动化访问,这也催生了从事识别验证码的各路黑产。

  有关验证码的黑色产业链,雷锋网此前曾做过相关报道一秒分辨出杨臣刚、王大治和孙楠,这个黑产居然用AI 来"打码",其中提到的“撞库”便是黑产惯用的伎俩。

  在网络黑产中,不法分子窃取网站数据库后,需要确认帐号对应的密码是否正确,将有价值的数据通过验证的方式筛选出来,这一过程叫“晒密”,即撞库。

  那这与验证码有何关系?

  “晒密”最核心的障碍就是互联网公司设置的验证码安全体系。每天面对数以亿计的“晒密”需求,黑产分子不可能人工逐个识别,而是需要提高“晒密”效率,批量识别。

  如果闯过了验证码这关,黑产就可以使用海量的账号密码去“薅羊毛”、进行垃圾注册、抢票等。

  在巨大的利益面前,“打码平台”这一专业服务便应运而生,下图就是机器识别数字字母验证码的过程。

  为了提高黑客的攻击成本,我们的验证码变得越来越复杂,便捷和安全在很长时间中,只能二选一。

  但是,近年来随着人工智能在图像识别领域的飞速发展,当机器 PK 肉眼时,还真不一定谁占上风。

  在雷锋网对“快啊答题”的报道中就提到:

  其打码平台基于主流 AI 深度学习 Caffe 框架,使用 vgg16 卷积核神经网络模型,可以直接输入原始图像(避免了对图像的复杂前期预处理),并能通过深度的机器学习来获得较高的验证码识别率。

  当机器可以理解图像的含义时,传统的验证码就不再安全了。

  揭秘行为式验证码背后的故事

  那有没有一种方法可以同时兼顾安全和用户体验?

  一家名为极验的公司,正尝试通过深度学习,构建生物行为特征模型来解决上述问题。

  创始人张振宇曾用电影中的一个例子来讲他们正在做的事情:

  在阿汤哥主演的《碟中谍5》中,有个剧情是他们要进入安全机构拿档案,最开始有指纹识别,后来是人脸识别,但是最终极的安全措施是通过你的步伐来识别进行认证,这就是行为式验证。

  张振宇所提到的验证方式之一,就是我们所见到的滑动模块验证,过程有些像拼图。

  其实这种滑动模块验证很多人早已体验过,相比传统的验证码要识别字母、数字或者点选文字图像等方式,这种方式的便捷性是可以直接感受到的,那这种方式是如何来保障安全性的?

  张振宇向雷锋网解释,滑动模块时,可以根据鼠标或是触摸的时间、加速度、上下浮动的频率等维度来进行分析,然后通过深度学习的方式去建模,找出其中更多维度之间的关联。

  这就是极验行为式验证服务的核心技术原理,据雷锋网了解,今年行为式验证进行了一次升级,由滑动模块验证升级为点选认证。

  简单来说,这款名为“Test-button”验证产品,不需要经过滑动模块的动作也可以完成识别,绝大部份正常用户直接点击登录、注册等按钮后直接就能完成操作。

这是如何实现的?

  张振宇解释,这是把原来在滑动验证中才开始识别的过程提前了,网站主将 Test-button 隐藏部署到登陆、注册等按钮中,当你点击这些按钮时,就能同步就会完成验证过程。

  在和许多客户深入交流的过程中发现,不论是批量垃圾注册还是撞库登录,薅羊毛还是刷帖刷票等,他们其实真正需要解决的是系统性的业务安全问题,验证码是帮助客户解决问题的一个重要工具,但不是全部。

  基于这个诉求,张振宇和团队结合之前在生物特征与交互安全上的积累,希望做出针对不同企业的整套安全解决方案。

  如果说之前的产品只是针对验证码而言,那之后他们希望将基于生物行为的安全模型带到对整个网络行为的识别中。

  以生物行为特征构建多尺度安全模型

  在最近的2017先知创新大会上,张振宇分享了背后的技术原理。

  在底层生物特征层中,主要专注于非常细微的鼠标行为或者触摸行为,由此来判断产生的数据符不符合生物特征模式。在这个过程中,会用到CNN(卷积神经网络)对鼠标轨迹或触摸进行人机判别;会从群体维度大规模样本进行群体分布或者聚类分析,找出异常群体等。这部分技术是极验之前积累最深厚的。

  在动作交互层中,则不再关注鼠标序列等非常细微的特征,开始和业务有了进一步的接触。其中主要有两种模型,分别是动作模型和交互模型。动作模型就是关注用户跨页面的点击喜好、停顿、速度等行为,交互模型就是关注结构布局、页面内容、甚至目标用户群体等,这个也和生物特征建模密切关联。

  在演讲现场,张振宇用下面这张布满格子的图,来解释动作交互层的一个实践案例。

  ▲格子化的位置预测

  可以把上图看成是一个普通的网页,被分为很多的格子,图中深色的部分,代表这样的格子间的转移概率非常大,即我们的鼠标或是触屏的活动在这些部位很集中。

  这个实验印证了之前他们的想法,即在不同页面结构,不同的内容上会形成生物特征序列的不同模式。利用 RNN(循环神经网络)对这些格子序列进行训练模型,还可以做进一步的预测和分析。

  在第三层场景模型中,就会和企业业务有更紧密的结合。比如像航空等票务网站,会有具体的选座行为,正常人在这样的场景下,有相应的目的和习惯。比如我们进入携程订机票和去斗鱼看直播,会有不同的行为特征,可以以此做分析推测。

  我们认为所有交互动作,在最宏观的层面,都是代表了业务意图的习惯。

  在第四层意图模型中,张振宇更强调通过大规模图计算来做关联分析,发现异常的聚集,通过建立数据之间的关联,可以发现一些传统的方法做不到的异常。

  这四个模型不是单纯累加起来,比如生物特征层的分析,其训练得到的特征可以输入到上一层,去帮助上层建模,同样在上层分析出的结果,可以指导下层学习的目标,这样才能有反馈形成闭环,从而把亿万级的生物行为特征数据所蕴含的‘安全’信息释放出来。

  那通过生物特征识别,真的能保证安全性吗?

  盯着极验的黑客可不少,在知乎中就有“极验验证可以被破解吗”这一话题,雷锋网编辑看到,早在 3 年之前,就有黑客针对当时的产品漏洞,在 github上将破解程序开源,并指出当时极验的前端加密有缺陷。

  针对 3 年前的这个破解,张振宇说当时他们也立马采取了升级模型和前端加密等措施,几年来团队也一直在关注这个话题的更新。

  如今极验的客户数量已经超过20万家,遭遇各路黑客的攻击并不少见。

  目前的体系是非常严密的依靠AI算法进行防御的体系,会以天甚至是小时来更新迭代。

  他坦言,安全永远是攻防对抗升级的过程,只有知道如何攻击,安全模型才会更加可靠。