领域专家系列第三代验证码研究有哪些突破?
摘要:原创文章,转载请标明出处!https:www.cnblogs.comboyceleep11363611.html 本文配合其他文章一起服用效果更好,能更全面体会安全产品的设计。 (1)《第三代验证码研究》https:www.c
原创文章,转载请标明出处!https://www.cnblogs.com/boycelee/p/11363611.html
本文配合其他文章一起服用效果更好,能更全面体会安全产品的设计。
(1)《第三代验证码研究》https://www.cnblogs.com/boycelee/p/11363611.html(推荐)
(2)《顶象验证码破解与研究》https://www.cnblogs.com/boycelee/p/14269941.html(推荐)
(3)《极验验证码破解与研究》https://www.cnblogs.com/boycelee/p/14021048.html(推荐)
(4)《极验无感验证破解》https://www.cnblogs.com/boycelee/p/13951819.html
(5)《同盾小程序指纹破解》https://www.cnblogs.com/boycelee/category/1819211.html
随着机器学习与图像识别技术的发展,第一代、第二代验证码已经失去了安全验证的作用。为了增加识别难度,网站暴力升级图片验证码,严重破坏了用户体验。第三代验证码的诞生解决了这一痛点,第三代验证码已经不再是狭义上的验证码,它通过多场景多维度进行数据收集,为网站提供立体式安全保障。
声明
本文内容仅限于研究,不涉及各安全厂商具体源码与风控策略。维护网络安全,人人有责。
背景
前段时间分析了市面上一些安全厂商的第三代验证码协议,以下内容不针对任何厂商,仅聊聊自己对第三代验证码的理解。
验证码划代
(一)第一代验证码
定义:主要利用简单知识构建验证码。如中文、英文、数字等。
(二)第二代验证码
定义:以第一代验证码为基础,以创新交互方式的思想构建验证码。如看题选字、看图选物等。
(三)第三代验证码
定义:多场景多维度收集数据信息,为网站提供立体式安全防护。
第一第二代验证码退出历史舞台的原因
以下是我总结的两点原因
(1)随着机器学习与图像是被技术的发展,第一代、第二代验证码已经失去了安全验证的作用;
(2)为了增加识别难度,网站暴力升级图片验证码,严重破坏用户体验。
举个例子
以上类型验证码我们通过肉眼识别准确率大约为30%,但我们拿到图片打码平台(魔镜)上用训练后发现准确率能超过90%。机器能做得比人好,其实这已经失去的验证码的意义。
第三代验证码“很简单”
最近常常会有人问我,研究的第三代验证码是不是就是滑块验证码?不就是把滑块滑动到指定位置吗?这有什么难的?这让我想起,在还没加入Qunar前,小王子在InfoQ上的分享。有人问他,机票价格为什么不能做成一张巨大的哈希表?有必要设计得这么复杂吗?从产品的角度来说,无论是Qunar机票报价还是第三代验证码都是非常成功的,因为优秀的产品就是让普通用户觉得“很简单”。
第三代验证码网上方案可行吗
在google或百度上搜索,就会发现很多文章分享如何通过机器模拟人的行为进行滑动验证码、点选验证码校验。解决方案无非就是一下两种形式:
(1)Selenium + Headless
(2)chrome插件模拟点击
注:
Selenium是一种用于Web应用程序测试工具。使用Selenium能够模拟真正用户操作浏览器的行为,例如模拟鼠标操作、模拟键盘操作等。
PhantomJS是一个”无界面"(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器更高效。
可行吗?我觉得在用户层面上是可行的,无非就是用户怎么操作,机器就怎么操作。但是一旦请求数达到某个阈值后,滑块就再也无法成功。这是什么原因导致的呢?下面我们来分析分析。
第三代验证码是什么?
以下是我对第三代验证码的概括
(一)立体防护
第三代验证码,已经不再是狭义上的验证码。多场景多维度进行数据收集,给网站提供立体的安全保障。
(二)无感验证
以无感、无知识的形式存在,极大提升用户体验。
(三)数据分析
利用机器学习对机器信息、行为数据等进行高维度地分析。
